This PR adds an end-to-end prototype DB that uses both record caching and page grouping.
Main changes
I moved the persistence related code out of RecordCache and refactored it so that the user now passes in a function that persists a batch of records.
I created a new database class PageGroupedDB which is analogous to our DB class. This is the end-to-end prototype that uses record caching and page grouping. The PageGroupedDB interface is implemented by PageGroupedDBImpl, which mostly delegates to pg::Manager.
I thought it would be useful to have both the old version (DB) and the page-grouped version (PageGroupedDB) available in the same codebase if we need to compare the two in experiments.
Other supporting changes
Moved the page grouping related tests into the main tests directory and got rid of the separate pg_test executable.
Updated the run_custom related code to integrate with the new page-grouped LLSM.
Updated the YCSB experiments to run against page-grouped LLSM and RocksDB (for now). The experiments are under scripts/e2e_custom/ycsb_v2/. We'll likely retire most of the existing experiment definitions under scripts/e2e_custom/ycsb/.
This PR adds an end-to-end prototype DB that uses both record caching and page grouping.
Main changes
RecordCache
and refactored it so that the user now passes in a function that persists a batch of records.PageGroupedDB
which is analogous to ourDB
class. This is the end-to-end prototype that uses record caching and page grouping. ThePageGroupedDB
interface is implemented byPageGroupedDBImpl
, which mostly delegates topg::Manager
.I thought it would be useful to have both the old version (
DB
) and the page-grouped version (PageGroupedDB
) available in the same codebase if we need to compare the two in experiments.Other supporting changes
tests
directory and got rid of the separatepg_test
executable.run_custom
related code to integrate with the new page-grouped LLSM.scripts/e2e_custom/ycsb_v2/
. We'll likely retire most of the existing experiment definitions underscripts/e2e_custom/ycsb/
.