mirror of
https://github.com/facebook/rocksdb.git
synced 2026-07-07 14:47:40 +08:00
Initial version of an external table reader interface (#13401)
Summary: This PR introduces an interface to plug in an external table file reader into RocksDB. The external table reader may support custom file formats that might work better for a specific use case compared to RocksDB native formats. This initial version allows the external table file to be loaded and queried using an `SstFileReader`. In the near future, we will allow it to be used with a limited RocksDB instance that allows bulkload but not live writes. The model of a DB using an external table reader is a read only database allowing bulkload and atomic replace in the bottommost level only. Live writes, if supported in the future, are expected to use block based table files in higher levels. Tombstones, merge operands, and non-zero sequence numbers are expected to be present only in non-bottommost levels. External table files are assumed to have only Puts, and all keys implicitly have sequence number 0. TODO (in future PRs) - 1. Add support for external file ingestion, with safety mechanisms to prevent accidental writes 2. Add support for atomic column family replace 3. Allow custom table file extensions 4. Add a TableBuilder interface for use with `SstFileWriter` Pull Request resolved: https://github.com/facebook/rocksdb/pull/13401 Reviewed By: pdillinger Differential Revision: D69689351 Pulled By: anand1976 fbshipit-source-id: c5d5b92d56fd4d0fc43a77c4ceb0463d4f479bda
This commit is contained in:
committed by
Facebook GitHub Bot
parent
a0edca32cf
commit
920d25e34e
@@ -214,6 +214,7 @@ cpp_library_wrapper(name="rocksdb_lib", srcs=[
|
||||
"table/cuckoo/cuckoo_table_builder.cc",
|
||||
"table/cuckoo/cuckoo_table_factory.cc",
|
||||
"table/cuckoo/cuckoo_table_reader.cc",
|
||||
"table/external_table_reader.cc",
|
||||
"table/format.cc",
|
||||
"table/get_context.cc",
|
||||
"table/iterator.cc",
|
||||
|
||||
Reference in New Issue
Block a user