facebook / rocksdb

A library that provides an embeddable, persistent key-value store for fast storage.
http://rocksdb.org
GNU General Public License v2.0
27.85k stars 6.2k forks source link

Support ingesting SST files generated by a live DB #12750

Open cbi42 opened 3 weeks ago

cbi42 commented 3 weeks ago

Summary: ... to enable use cases like using RocksDB to merge sort data for ingestion. A new file ingestion option IngestExternalFileOptions::from_live_db is introduced to allows users to ingest SST files generated by live DBs instead of SstFileWriter. For now this only works if the SST files being ingested have zero as their largest sequence number.

Since the feature if not forward-compatible, marked the option as experimental for now in case we want a more explicit opt-in, e.g., introduce MANIFEST versioning and require setting a new MANIFEST version.

Main changes needed to enable this:

Rest of the change is mostly new unit tests and stress test changes.

A previous attempt is in #5602.

Test plan:

facebook-github-bot commented 3 weeks ago

@cbi42 has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

facebook-github-bot commented 3 weeks ago

@cbi42 has updated the pull request. You must reimport the pull request before landing.

facebook-github-bot commented 3 weeks ago

@cbi42 has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

facebook-github-bot commented 3 weeks ago

@cbi42 has updated the pull request. You must reimport the pull request before landing.

facebook-github-bot commented 2 weeks ago

@cbi42 has updated the pull request. You must reimport the pull request before landing.

cbi42 commented 2 weeks ago

Since the feature if not forward-compatible, marked the option as experimental for now in case we want a more explicit opt-in, e.g., introduce MANIFEST versioning and require setting a new MANIFEST version.

facebook-github-bot commented 2 weeks ago

@cbi42 has updated the pull request. You must reimport the pull request before landing.

facebook-github-bot commented 2 weeks ago

@cbi42 has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.