8000 [zkd] Column Family (#13692) · arangodb/arangodb@8cabd6f · GitHub
[go: up one dir, main page]

Skip to content

Commit 8cabd6f

Browse files
author
Lars Maier
authored
[zkd] Column Family (#13692)
* Added a new column family for the zkd index. * Changed write buffer number to 8 + 2.
1 parent 1d4928b commit 8cabd6f

5 files changed

+15
-13
lines changed

arangod/RocksDBEngine/RocksDBColumnFamilyManager.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,13 @@ std::array<char const*, arangodb::RocksDBColumnFamilyManager::numberOfColumnFami
3434
RocksDBColumnFamilyManager::_internalNames = {"default", "Documents",
3535
"PrimaryIndex", "EdgeIndex",
3636
"VPackIndex", "GeoIndex",
37-
"FulltextIndex"};
37+
"FulltextIndex", "ZkdIndex"};
3838
std::array<char const*, arangodb::RocksDBColumnFamilyManager::numberOfColumnFamilies> RocksDBColumnFamilyManager::_externalNames =
39-
{"definitions", "documents", "primary", "edge", "vpack", "geo", "fulltext"};
39+
{"definitions", "documents", "primary", "edge", "vpack", "geo", "fulltext", "zkd"};
4040

4141
std::array<rocksdb::ColumnFamilyHandle*, RocksDBColumnFamilyManager::numberOfColumnFamilies>
4242
RocksDBColumnFamilyManager::_handles = {nullptr, nullptr, nullptr, nullptr,
43-
nullptr, nullptr, nullptr};
43+
nullptr, nullptr, nullptr, nullptr};
4444

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

arangod/RocksDBEngine/RocksDBColumnFamilyManager.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ struct RocksDBColumnFamilyManager {
4747
VPackIndex = 4, // persistent, "skiplist", "hash"
4848
GeoIndex = 5,
4949
FulltextIndex = 6,
50+
ZkdIndex = 7,
5051

5152
Invalid = 1024 // special placeholder
5253
};
@@ -56,8 +57,8 @@ struct RocksDBColumnFamilyManager {
5657
External // for display to users
5758
};
5859

59-
static constexpr size_t minNumberOfColumnFamilies = 7;
60-
static constexpr size_t numberOfColumnFamilies = 7;
60+
static constexpr size_t minNumberOfColumnFamilies = 8;
61+
static constexpr size_t numberOfColumnFamilies = 8;
6162

6263
static void initialize();
6364

arangod/RocksDBEngine/RocksDBEngine.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -699,6 +699,7 @@ void RocksDBEngine::start() {
699699
addFamily(RocksDBColumnFamilyManager::Family::VPackIndex);
700700
addFamily(RocksDBColumnFamilyManager::Family::GeoIndex);
701701
addFamily(RocksDBColumnFamilyManager::Family::FulltextIndex);
702+
addFamily(RocksDBColumnFamilyManager::Family::ZkdIndex);
702703

703704
std::vector<rocksdb::ColumnFamilyHandle*> cfHandles;
704705
size_t const numberOfColumnFamilies = RocksDBColumnFamilyManager::minNumberOfColumnFamilies;
@@ -816,6 +817,8 @@ void RocksDBEngine::start() {
816817
cfHandles[5]);
817818
RocksDBColumnFamilyManager::set(RocksDBColumnFamilyManager::Family::FulltextIndex,
818819
cfHandles[6]);
820+
RocksDBColumnFamilyManager::set(RocksDBColumnFamilyManager::Family::ZkdIndex,
821+
cfHandles[7]);
819822
TRI_ASSERT(RocksDBColumnFamilyManager::get(RocksDBColumnFamilyManager::Family::Definitions)
820823
->GetID() == 0);
821824

arangod/RocksDBEngine/RocksDBOptionFeature.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ RocksDBOptionFeature::RocksDBOptionFeature(application_features::ApplicationServ
118118
_transactionLockTimeout(rocksDBTrxDefaults.transaction_lock_timeout),
119119
_totalWriteBufferSize(rocksDBDefaults.db_write_buffer_size),
120120
_writeBufferSize(rocksDBDefaults.write_buffer_size),
121-
_maxWriteBufferNumber(7 + 2), // number of column families plus 2
121+
_maxWriteBufferNumber(8 + 2), // number of column families plus 2
122122
_maxWriteBufferSizeToMaintain(0),
123123
_maxTotalWalSize(80 << 20),
124124
_delayedWriteRate(rocksDBDefaults.delayed_write_rate),
@@ -634,7 +634,8 @@ rocksdb::ColumnFamilyOptions RocksDBOptionFeature::columnFamilyOptions(
634634
case RocksDBColumnFamilyManager::Family::Documents:
635635
case RocksDBColumnFamilyManager::Family::PrimaryIndex:
636636
case RocksDBColumnFamilyManager::Family::GeoIndex:
637-
case RocksDBColumnFamilyManager::Family::FulltextIndex: {
637+
case RocksDBColumnFamilyManager::Family::FulltextIndex:
638+
case RocksDBColumnFamilyManager::Family::ZkdIndex: {
638639
// fixed 8 byte object id prefix
639640
options.prefix_extractor = std::shared_ptr<rocksdb::SliceTransform const>(
640641
rocksdb::NewFixedPrefixTransform(RocksDBKey::objectIdSize()));

arangod/RocksDBEngine/RocksDBZkdIndex.cpp

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -457,13 +457,10 @@ arangodb::Result arangodb::RocksDBZkdIndexBase::remove(arangodb::transaction::Me
457457
}
458458

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

469466
void arangodb::RocksDBZkdIndexBase::toVelocyPack(

0 commit comments

Comments
 (0)
0