8000 [zkd] Column Family by maierlars · Pull Request #13692 · arangodb/arangodb · GitHub
[go: up one dir, main page]

Skip to content

[zkd] Column Family #13692

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Mar 15, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
8000
Diff view
Diff view
6 changes: 3 additions & 3 deletions arangod/RocksDBEngine/RocksDBColumnFamilyManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,13 @@ std::array<char const*, arangodb::RocksDBColumnFamilyManager::numberOfColumnFami
RocksDBColumnFamilyManager::_internalNames = {"default", "Documents",
"PrimaryIndex", "EdgeIndex",
"VPackIndex", "GeoIndex",
"FulltextIndex"};
"FulltextIndex", "ZkdIndex"};
std::array<char const*, arangodb::RocksDBColumnFamilyManager::numberOfColumnFamilies> RocksDBColumnFamilyManager::_externalNames =
{"definitions", "documents", "primary", "edge", "vpack", "geo", "fulltext"};
{"definitions", "documents", "primary", "edge", "vpack", "geo", "fulltext", "zkd"};

std::array<rocksdb::ColumnFamilyHandle*, RocksDBColumnFamilyManager::numberOfColumnFamilies>
RocksDBColumnFamilyManager::_handles = {nullptr, nullptr, nullptr, nullptr,
nullptr, nullptr, nullptr};
nullptr, nullptr, nullptr, nullptr};

rocksdb::ColumnFamilyHandle* RocksDBColumnFamilyManager::_defaultHandle = nullptr;

Expand Down
5 changes: 3 additions & 2 deletions arangod/RocksDBEngine/RocksDBColumnFamilyManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ struct RocksDBColumnFamilyManager {
VPackIndex = 4, // persistent, "skiplist", "hash"
GeoIndex = 5,
FulltextIndex = 6,
ZkdIndex = 7,

Invalid = 1024 // special placeholder
};
Expand All @@ -56,8 +57,8 @@ struct RocksDBColumnFamilyManager {
External // for display to users
};

static constexpr size_t minNumberOfColumnFamilies = 7;
static constexpr size_t numberOfColumnFamilies = 7;
static constexpr size_t minNumberOfColumnFamilies = 8;
static constexpr size_t numberOfColumnFamilies = 8;

static void initialize();

Expand Down
3 changes: 3 additions & 0 deletions arangod/RocksDBEngine/RocksDBEngine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -699,6 +699,7 @@ void RocksDBEngine::start() {
addFamily(RocksDBColumnFamilyManager::Family::VPackIndex);
addFamily(RocksDBColumnFamilyManager::Family::GeoIndex);
addFamily(RocksDBColumnFamilyManager::Family::FulltextIndex);
addFamily(RocksDBColumnFamilyManager::Family::ZkdIndex);

std::vector<rocksdb::ColumnFamilyHandle*> cfHandles;
size_t const numberOfColumnFamilies = RocksDBColumnFamilyManager::minNumberOfColumnFamilies;
Expand Down Expand Up @@ -816,6 +817,8 @@ void RocksDBEngine::start() {
cfHandles[5]);
RocksDBColumnFamilyManager::set(RocksDBColumnFamilyManager::Family::FulltextIndex,
cfHandles[6]);
RocksDBColumnFamilyManager::set(RocksDBColumnFamilyManager::Family::ZkdIndex,
cfHandles[7]);
TRI_ASSERT(RocksDBColumnFamilyManager::get(RocksDBColumnFamilyManager::Family::Definitions)
->GetID() == 0);

Expand Down
5 changes: 3 additions & 2 deletions arangod/RocksDBEngine/RocksDBOptionFeature.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ RocksDBOptionFeature::RocksDBOptionFeature(application_features::ApplicationServ
_transactionLockTimeout(rocksDBTrxDefaults.transaction_lock_timeout),
_totalWriteBufferSize(rocksDBDefaults.db_write_buffer_size),
_writeBufferSize(rocksDBDefaults.write_buffer_size),
_maxWriteBufferNumber(7 + 2), // number of column families plus 2
_maxWriteBufferNumber(8 + 2), // number of column families plus 2
_maxWriteBufferSizeToMaintain(0),
_maxTotalWalSize(80 << 20),
_delayedWriteRate(rocksDBDefaults.delayed_write_rate),
Expand Down Expand Up @@ -634,7 +634,8 @@ rocksdb::ColumnFamilyOptions RocksDBOptionFeature::columnFamilyOptions(
case RocksDBColumnFamilyManager::Family::Documents:
case RocksDBColumnFamilyManager::Family::PrimaryIndex:
case RocksDBColumnFamilyManager::Family::GeoIndex:
case RocksDBColumnFamilyManager::Family::FulltextIndex: {
case RocksDBColumnFamilyManager::Family::FulltextIndex:
case RocksDBColumnFamilyManager::Family::ZkdIndex: {
// fixed 8 byte object id prefix
options.prefix_extractor = std::shared_ptr<rocksdb::SliceTransform const>(
rocksdb::NewFixedPrefixTransform(RocksDBKey::objectIdSize()));
Expand Down
9 changes: 3 additions & 6 deletions arangod/RocksDBEngine/RocksDBZkdIndex.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -457,13 +457,10 @@ arangodb::Result arangodb::RocksDBZkdIndexBase::remove(arangodb::transaction::Me
}

arangodb::RocksDBZkdIndexBase::RocksDBZkdIndexBase(arangodb::IndexId iid,
arangodb::LogicalCollection& coll,
const arangodb::velocypack::Slice& info)
arangodb::LogicalCollection& coll,
arangodb::velocypack::Slice const& info)
: RocksDBIndex(iid, coll, info,
/* TODO maybe we want to add a new column family? However, we can not use VPackIndexes because
* they use the vpack comparator. For now use GeoIndex because it uses just the 8 byte prefix.
*/
RocksDBColumnFamilyManager::get(RocksDBColumnFamilyManager::Family::GeoIndex),
RocksDBColumnFamilyManager::get(RocksDBColumnFamilyManager::Family::ZkdIndex),
false) {}

void arangodb::RocksDBZkdIndexBase::toVelocyPack(
Expand Down
0