mirror of
https://github.com/ceph/ceph
synced 2025-02-24 19:47:44 +00:00
Ceph is a distributed object, block, and file storage platform
* 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 |
||
---|---|---|
branches | ||
trunk |