[RFC]About GenericObjectMap in KeyValueStore

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

KeyValueStore is a implementation of ObjectStore which use KeyValueDB as main
data access interface. It discard FileJournal and reply to the backend of
KeyValueDB to get the atomic of transaction.

KeyValueStore make a object composed of multi key/value pair in the side of
KeyValueDB. Much like DBObjectMap, each object has a header to manage the
metadata such as size, bitmap.

As I mentioned in previous mail, DBObjectMap has some defect in KeyValueStore.
GenericObjectMap is aimed to provide more generic KeyValueDB wrapper. The main
differences between GenericObjectMap and DBObjectMap contains:
1. add "coll_t" field to the key of header
2. expose Header to successor and all write operations are accessed via header
3. expose key prefix to caller

I think point 2 is the primary change may confuse. KeyValueStore use
GenericObjectMap to implement ObjectStore interfaces. it will combine all
operations in the same transaction and apply in to the time. Like
OSDMap::Incremental, here we need to make the former operation visible to the
following operations in the same transaction. The header and data
created/modified should be know by the following operations. So
GenericObjectMap will expose "header" to caller among write operations.

StripObjectMap is the successor of GenericObjectMap and used by KeyValueStore
directly. It encapsulate the interface of GenericObjectMap and make more
suitable for KeyValueStore.

Best regards,
Haomai Wang, UnitedStack Inc.

--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux