* config.cc (g_conf): set `bdbstore_cachesize' to 0 (== use
default BDB cache size).
(parse_config_options): handle `--bdbstore-cachesize'.
* config.h (md_config_t): add `bdbstore_cachesize.'
* osbdb/OSBDB.cc (binary_search): reimplemented, non-dumb like.
(OSBDB::opendb): new method.
(OSBDB::mount): handle db opening here.
(OSBDB::umount): close the DB, dispose of Db pointer.
(OSBDB::mkfs): handle db opening here.
(OSBDB::pick_object_revision_lt): implemented.
(OSBDB::stat): handle split between object data and object
"inode."
(OSBDB::remove): likewise; also remove attributes.
(OSBDB::truncate): likewise; don't worry about large objects
here.
(OSBDB::read): handle data/inode split; only use DB_DBT_PARTIAL if
we have to.
(OSBDB::write): likewise.
(OSBDB::clone): handle data/inode split; just read in the whole
object.
(OSBDB::create_collection): fix collections list move.
(OSBDB::collection_add): fix objects list move.
(OSBDB::_setattr): handle attribute key changes; fix attribute
names move.
(OSBDB::_getattr): new method.
(OSBDB::getattr): new method.
(OSBDB::getattrs): new method.
(OSBDB::rmattr): new method.
(OSBDB::listattr): fix attribute key types; fix reading
attributes.
(OSBDB::collection_setattr): implemented.
(OSBDB::collection_rmattr): implemented.
(OSBDB::collection_getattr): implemented.
(OSBDB::collection_listattr): implemented.
* osbdb/OSBDB.h: enforce POD types for DB keys; add << operator
for DB key types. Make an "inode" type for object metadata, so we
don't need to prepend an object length to the object data.
(OSBDB::env, OSBDB::mounted, OSBDB::opened): new fields.
(OSBDB::OSBDB): don't initialize `db' here.
(OSBDB::~OSBDB): handle db closure.
git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@1111 29311d96-e01e-0410-9327-a35deaab8ce9
* config.cc (g_conf): add `bdbstore' variables.
(parse_config_options): handle `bdbstore' arguments.
* config.h (struct md_config_t): add `bdbstore' fields.
* ebofs/Ebofs.cc: fix includes for Darwin.
* Makefile (CFLAGS): add `-DUSE_OSBDB' if `want_bdb' is `yes'.
(OSBDB_LIBS, OSBDB_OBJS, OSBDB_OBJ): define if `want_bdb'.
(cosd): link in `osbdb.o'.
(testos): new target.
(osbdb.o): new target.
* test/testos.cc: new file.
* osd/OSD.cc: include `osbdb/OSBDB.h' if `USE_OSBDB' is defined.
(OSD::OSD): create an OSBDB store if requested.
* osbdb/OSBDB.h: new file.
* osbdb/OSBDB.cc: new file.
git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@1110 29311d96-e01e-0410-9327-a35deaab8ce9
new build targets for standalone monitor and mds: cmon and cmds.
it's now possible to start up a distributed fs without mpi and newsyn.
some cleanup in other messenger code.
client boot process modified to contact montior explicitly for client id.
git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@1029 29311d96-e01e-0410-9327-a35deaab8ce9