rocksdb/utilities/blob_db
Yi Wu c293472908 Add ValueType::kTypeBlobIndex
Summary:
Add kTypeBlobIndex value type, which will be used by blob db only, to insert a (key, blob_offset) KV pair. The purpose is to
1. Make it possible to open existing rocksdb instance as blob db. Existing value will be of kTypeIndex type, while value inserted by blob db will be of kTypeBlobIndex.
2. Make rocksdb able to detect if the db contains value written by blob db, if so return error.
3. Make it possible to have blob db optionally store value in SST file (with kTypeValue type) or as a blob value (with kTypeBlobIndex type).

The root db (DBImpl) basically pretended kTypeBlobIndex are normal value on write. On Get if is_blob is provided, return whether the value read is of kTypeBlobIndex type, or return Status::NotSupported() status if is_blob is not provided. On scan allow_blob flag is pass and if the flag is true, return wether the value is of kTypeBlobIndex type via iter->IsBlob().

Changes on blob db side will be in a separate patch.
Closes https://github.com/facebook/rocksdb/pull/2886

Differential Revision: D5838431

Pulled By: yiwu-arbug

fbshipit-source-id: 3c5306c62bc13bb11abc03422ec5cbcea1203cca
2017-11-02 23:02:50 -07:00
..
blob_db_impl.cc Make it explicit blob db doesn't support CF 2017-11-02 22:29:42 -07:00
blob_db_impl.h Make it explicit blob db doesn't support CF 2017-11-02 22:29:42 -07:00
blob_db_test.cc Add ValueType::kTypeBlobIndex 2017-11-02 23:02:50 -07:00
blob_db.cc Fix memory leak on blob db open 2017-11-02 17:37:40 -07:00
blob_db.h Make it explicit blob db doesn't support CF 2017-11-02 22:29:42 -07:00
blob_dump_tool.cc Update all blob db TTL and timestamps to uint64_t 2017-08-03 17:57:30 -07:00
blob_dump_tool.h Change RocksDB License 2017-07-15 16:11:23 -07:00
blob_file.cc Update all blob db TTL and timestamps to uint64_t 2017-08-03 17:57:30 -07:00
blob_log_format.cc Update all blob db TTL and timestamps to uint64_t 2017-08-03 17:57:30 -07:00
blob_log_format.h Update all blob db TTL and timestamps to uint64_t 2017-08-03 17:57:30 -07:00
blob_log_reader.cc Fix blob DB transaction usage while GC 2017-08-11 12:43:17 -07:00
blob_log_reader.h Fix blob DB transaction usage while GC 2017-08-11 12:43:17 -07:00
blob_log_writer.cc Update all blob db TTL and timestamps to uint64_t 2017-08-03 17:57:30 -07:00
blob_log_writer.h Update all blob db TTL and timestamps to uint64_t 2017-08-03 17:57:30 -07:00
ttl_extractor.cc Move blob_db/ttl_extractor.h into blob_db/blob_db.h 2017-07-28 14:28:21 -07:00