Skip to content

Commit 362c0a4

Browse files
author
Lars Maier
authored
Rename ZKD to MDI (arangodb#20423)
* Renamed tests. * Renaming zkd to mdi in source. * More renaming. * Added tests for creation with `zkd`.
1 parent 8626ea5 commit 362c0a4

38 files changed

+351
-339
lines changed

arangod/ClusterEngine/ClusterIndex.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@
3434
#include "Indexes/SortedIndexAttributeMatcher.h"
3535
#include "Logger/LogMacros.h"
3636
#include "Network/NetworkFeature.h"
37+
#include "RocksDBEngine/RocksDBMultiDimIndex.h"
3738
#include "RocksDBEngine/RocksDBPrimaryIndex.h"
3839
#include "RocksDBEngine/RocksDBVPackIndex.h"
39-
#include "RocksDBEngine/RocksDBZkdIndex.h"
4040
#include "StorageEngine/EngineSelectorFeature.h"
4141
#include "VocBase/LogicalCollection.h"
4242
#include "VocBase/ticks.h"
@@ -89,7 +89,7 @@ ClusterIndex::ClusterIndex(IndexId id, LogicalCollection& collection,
8989
_fields,
9090
Index::parseFields(info.get(StaticStrings::IndexStoredValues),
9191
/*allowEmpty*/ true, /*allowExpansion*/ false));
92-
} else if (_indexType == TRI_IDX_TYPE_ZKD_INDEX) {
92+
} else if (_indexType == TRI_IDX_TYPE_MDI_INDEX) {
9393
_coveredFields =
9494
Index::parseFields(info.get(StaticStrings::IndexStoredValues),
9595
/*allowEmpty*/ true, /*allowExpansion*/ false);
@@ -115,7 +115,7 @@ ClusterIndex::ClusterIndex(IndexId id, LogicalCollection& collection,
115115
_estimates = s.getBoolean();
116116
}
117117
} else if (_indexType == TRI_IDX_TYPE_TTL_INDEX ||
118-
_indexType == TRI_IDX_TYPE_ZKD_INDEX) {
118+
_indexType == TRI_IDX_TYPE_MDI_INDEX) {
119119
_estimates = false;
120120
}
121121
}
@@ -141,8 +141,8 @@ void ClusterIndex::toVelocyPack(
141141
_indexType == Index::TRI_IDX_TYPE_SKIPLIST_INDEX ||
142142
_indexType == Index::TRI_IDX_TYPE_PERSISTENT_INDEX ||
143143
_indexType == Index::TRI_IDX_TYPE_MDI_PREFIXED_INDEX ||
144-
_indexType == Index::TRI_IDX_TYPE_ZKD_INDEX) {
145-
TRI_ASSERT(_indexType != TRI_IDX_TYPE_ZKD_INDEX || !_estimates || _unique)
144+
_indexType == Index::TRI_IDX_TYPE_MDI_INDEX) {
145+
TRI_ASSERT(_indexType != TRI_IDX_TYPE_MDI_INDEX || !_estimates || _unique)
146146
<< oldtypeName(_indexType) << std::boolalpha
147147
<< " estimates = " << _estimates << " unique = " << _unique;
148148
builder.add(StaticStrings::IndexEstimates, VPackValue(_estimates));
@@ -251,7 +251,7 @@ bool ClusterIndex::hasSelectivityEstimate() const {
251251
_indexType == Index::TRI_IDX_TYPE_SKIPLIST_INDEX ||
252252
_indexType == Index::TRI_IDX_TYPE_PERSISTENT_INDEX ||
253253
_indexType == Index::TRI_IDX_TYPE_MDI_PREFIXED_INDEX ||
254-
(_indexType == Index::TRI_IDX_TYPE_ZKD_INDEX && _unique)));
254+
(_indexType == Index::TRI_IDX_TYPE_MDI_INDEX && _unique)));
255255
#ifdef ARANGODB_USE_GOOGLE_TESTS
256256
} else if (_engineType == ClusterEngineType::MockEngine) {
257257
return false;
@@ -388,9 +388,9 @@ Index::FilterCosts ClusterIndex::supportsFilterCondition(
388388
itemsInIndex);
389389
}
390390

391-
case TRI_IDX_TYPE_ZKD_INDEX:
391+
case TRI_IDX_TYPE_MDI_INDEX:
392392
case TRI_IDX_TYPE_MDI_PREFIXED_INDEX:
393-
return zkd::supportsFilterCondition(this, allIndexes, node, reference,
393+
return mdi::supportsFilterCondition(this, allIndexes, node, reference,
394394
itemsInIndex);
395395

396396
case TRI_IDX_TYPE_UNKNOWN:
@@ -435,7 +435,7 @@ Index::SortCosts ClusterIndex::supportsSortCondition(
435435
break;
436436
}
437437

438-
case TRI_IDX_TYPE_ZKD_INDEX:
438+
case TRI_IDX_TYPE_MDI_INDEX:
439439
case TRI_IDX_TYPE_MDI_PREFIXED_INDEX:
440440
// Sorting not supported
441441
return Index::SortCosts{};
@@ -490,9 +490,9 @@ aql::AstNode* ClusterIndex::specializeCondition(
490490
reference);
491491
}
492492

493-
case TRI_IDX_TYPE_ZKD_INDEX:
493+
case TRI_IDX_TYPE_MDI_INDEX:
494494
case TRI_IDX_TYPE_MDI_PREFIXED_INDEX:
495-
return zkd::specializeCondition(this, node, reference);
495+
return mdi::specializeCondition(this, node, reference);
496496

497497
case TRI_IDX_TYPE_UNKNOWN:
498498
break;
@@ -520,7 +520,7 @@ ClusterIndex::coveredFields() const {
520520
case TRI_IDX_TYPE_FULLTEXT_INDEX:
521521
case TRI_IDX_TYPE_TTL_INDEX:
522522
case TRI_IDX_TYPE_IRESEARCH_LINK:
523-
case TRI_IDX_TYPE_ZKD_INDEX:
523+
case TRI_IDX_TYPE_MDI_INDEX:
524524
case TRI_IDX_TYPE_MDI_PREFIXED_INDEX:
525525
case TRI_IDX_TYPE_NO_ACCESS_INDEX: {
526526
return Index::emptyCoveredFields;

arangod/ClusterEngine/ClusterIndexFactory.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ void ClusterIndexFactory::linkIndexFactories(ArangodServer& server,
193193
static const PrimaryIndexFactory primaryIndexFactory(server, "primary");
194194
static const DefaultIndexFactory skiplistIndexFactory(server, "skiplist");
195195
static const DefaultIndexFactory ttlIndexFactory(server, "ttl");
196-
static const DefaultIndexFactory zkdIndexFactory(server, "zkd");
196+
static const DefaultIndexFactory mdiIndexFactory(server, "mdi");
197197
static const DefaultIndexFactory mdiPrefixedIndexFactory(server,
198198
"mdi-prefixed");
199199
static const IResearchInvertedIndexClusterFactory invertedIndexFactory(
@@ -209,7 +209,7 @@ void ClusterIndexFactory::linkIndexFactories(ArangodServer& server,
209209
factory.emplace(primaryIndexFactory._type, primaryIndexFactory);
210210
factory.emplace(skiplistIndexFactory._type, skiplistIndexFactory);
211211
factory.emplace(ttlIndexFactory._type, ttlIndexFactory);
212-
factory.emplace(zkdIndexFactory._type, zkdIndexFactory);
212+
factory.emplace(mdiIndexFactory._type, mdiIndexFactory);
213213
factory.emplace(mdiPrefixedIndexFactory._type, mdiPrefixedIndexFactory);
214214
factory.emplace(invertedIndexFactory._type, invertedIndexFactory);
215215
}

arangod/Indexes/Index.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -344,8 +344,8 @@ Index::IndexType Index::type(std::string_view type) {
344344
if (type == "geo2") {
345345
return TRI_IDX_TYPE_GEO2_INDEX;
346346
}
347-
if (type == "zkd") {
348-
return TRI_IDX_TYPE_ZKD_INDEX;
347+
if (type == "mdi" || type == "zkd") {
348+
return TRI_IDX_TYPE_MDI_INDEX;
349349
}
350350
if (type == "mdi-prefixed") {
351351
return TRI_IDX_TYPE_MDI_PREFIXED_INDEX;
@@ -395,8 +395,8 @@ char const* Index::oldtypeName(Index::IndexType type) {
395395
return iresearch::StaticStrings::ViewArangoSearchType.data();
396396
case TRI_IDX_TYPE_NO_ACCESS_INDEX:
397397
return "noaccess";
398-
case TRI_IDX_TYPE_ZKD_INDEX:
399-
return "zkd";
398+
case TRI_IDX_TYPE_MDI_INDEX:
399+
return "mdi";
400400
case TRI_IDX_TYPE_MDI_PREFIXED_INDEX:
401401
return "mdi-prefixed";
402402
case TRI_IDX_TYPE_INVERTED_INDEX:

arangod/Indexes/Index.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ class Index {
104104
TRI_IDX_TYPE_PERSISTENT_INDEX,
105105
TRI_IDX_TYPE_IRESEARCH_LINK,
106106
TRI_IDX_TYPE_NO_ACCESS_INDEX,
107-
TRI_IDX_TYPE_ZKD_INDEX,
107+
TRI_IDX_TYPE_MDI_INDEX,
108108
TRI_IDX_TYPE_MDI_PREFIXED_INDEX,
109109
TRI_IDX_TYPE_INVERTED_INDEX
110110
};

arangod/Indexes/IndexFactory.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ std::vector<std::string_view> IndexFactory::supportedIndexes() const {
355355
"persistent",
356356
"geo",
357357
"fulltext",
358-
"zkd",
358+
"mdi",
359359
"mdi-prefixed",
360360
arangodb::iresearch::IRESEARCH_INVERTED_INDEX_TYPE};
361361
}
@@ -834,14 +834,14 @@ Result processIndexSortedPrefixFields(VPackSlice definition,
834834

835835
} // namespace
836836

837-
/// @brief enhances the json of a zkd index
838-
Result IndexFactory::enhanceJsonIndexZkd(VPackSlice definition,
837+
/// @brief enhances the json of a mdi index
838+
Result IndexFactory::enhanceJsonIndexMdi(VPackSlice definition,
839839
VPackBuilder& builder, bool create) {
840840
if (auto fieldValueTypes = definition.get("fieldValueTypes");
841841
!fieldValueTypes.isString() || !fieldValueTypes.isEqualString("double")) {
842842
return Result(
843843
TRI_ERROR_BAD_PARAMETER,
844-
"zkd index requires `fieldValueTypes` to be set to `double` - future "
844+
"mdi requires `fieldValueTypes` to be set to `double` - future "
845845
"releases might lift this requirement");
846846
}
847847

@@ -868,11 +868,11 @@ Result IndexFactory::enhanceJsonIndexZkd(VPackSlice definition,
868868
}
869869

870870
return res;
871-
} /// @brief enhances the json of a zkd index
871+
} /// @brief enhances the json of a mdi
872872
Result IndexFactory::enhanceJsonIndexMdiPrefixed(VPackSlice definition,
873873
VPackBuilder& builder,
874874
bool create) {
875-
auto res = enhanceJsonIndexZkd(definition, builder, create);
875+
auto res = enhanceJsonIndexMdi(definition, builder, create);
876876
if (res.ok()) {
877877
res = processIndexSortedPrefixFields(definition, builder, 1, 32, create,
878878
true);

arangod/Indexes/IndexFactory.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -207,8 +207,8 @@ class IndexFactory {
207207
velocypack::Builder& builder,
208208
bool create);
209209

210-
/// @brief enhances the json of a zkd index
211-
static Result enhanceJsonIndexZkd(arangodb::velocypack::Slice definition,
210+
/// @brief enhances the json of a mdi
211+
static Result enhanceJsonIndexMdi(arangodb::velocypack::Slice definition,
212212
arangodb::velocypack::Builder& builder,
213213
bool create);
214214
static Result enhanceJsonIndexMdiPrefixed(

arangod/RocksDBEngine/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
add_library(arango_rocksdb STATIC
22
RocksDBBackgroundThread.cpp
3+
ReplicatedRocksDBTransactionCollection.cpp
34
RocksDBBuilderIndex.cpp
45
RocksDBChecksumEnv.cpp
56
RocksDBCollection.cpp
@@ -28,6 +29,7 @@ add_library(arango_rocksdb STATIC
2829
RocksDBMetadata.cpp
2930
RocksDBMethods.cpp
3031
RocksDBMethodsMemoryTracker.cpp
32+
RocksDBMultiDimIndex.cpp
3133
RocksDBOptimizerRules.cpp
3234
RocksDBOptionFeature.cpp
3335
RocksDBOptionsProvider.cpp
@@ -45,8 +47,8 @@ add_library(arango_rocksdb STATIC
4547
RocksDBRestWalHandler.cpp
4648
RocksDBSavePoint.cpp
4749
RocksDBSettingsManager.cpp
48-
RocksDBSyncThread.cpp
4950
RocksDBSortedRowsStorageContext.cpp
51+
RocksDBSyncThread.cpp
5052
RocksDBTempStorage.cpp
5153
RocksDBTransactionCollection.cpp
5254
RocksDBTransactionMethods.cpp
@@ -57,8 +59,6 @@ add_library(arango_rocksdb STATIC
5759
RocksDBVPackIndex.cpp
5860
RocksDBValue.cpp
5961
RocksDBWalAccess.cpp
60-
RocksDBZkdIndex.cpp
61-
ReplicatedRocksDBTransactionCollection.cpp
6262
ReplicatedRocksDBTransactionState.cpp
6363
SimpleRocksDBTransactionState.cpp
6464
SortedRowsStorageBackendRocksDB.cpp)

arangod/RocksDBEngine/RocksDBCollection.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1397,14 +1397,14 @@ void RocksDBCollection::figuresSpecific(
13971397
db, RocksDBKeyBounds::GeoIndex(rix->objectId()), snapshot,
13981398
true);
13991399
break;
1400-
case Index::TRI_IDX_TYPE_ZKD_INDEX:
1400+
case Index::TRI_IDX_TYPE_MDI_INDEX:
14011401
count = rocksutils::countKeyRange(
1402-
db, RocksDBKeyBounds::ZkdIndex(rix->objectId()), snapshot,
1402+
db, RocksDBKeyBounds::MdiIndex(rix->objectId()), snapshot,
14031403
true);
14041404
break;
14051405
case Index::TRI_IDX_TYPE_MDI_PREFIXED_INDEX:
14061406
count = rocksutils::countKeyRange(
1407-
db, RocksDBKeyBounds::ZkdVPackIndex(rix->objectId()), snapshot,
1407+
db, RocksDBKeyBounds::MdiVPackIndex(rix->objectId()), snapshot,
14081408
true);
14091409
break;
14101410
case Index::TRI_IDX_TYPE_HASH_INDEX:

arangod/RocksDBEngine/RocksDBColumnFamilyManager.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,19 @@
3030

3131
namespace arangodb {
3232

33+
// `Zkd` is the old designation for an unprefix mdi
3334
std::array<char const*,
3435
arangodb::RocksDBColumnFamilyManager::numberOfColumnFamilies>
3536
RocksDBColumnFamilyManager::_internalNames = {
36-
"default", "Documents", "PrimaryIndex", "EdgeIndex",
37-
"VPackIndex", "GeoIndex", "FulltextIndex", "ReplicatedLogs",
38-
"ZkdIndex", "ZkdVPackIndex"};
37+
"default", "Documents", "PrimaryIndex", "EdgeIndex",
38+
"VPackIndex", "GeoIndex", "FulltextIndex", "ReplicatedLogs",
39+
"ZkdIndex", "MdiPrefixed"};
3940

4041
std::array<char const*,
4142
arangodb::RocksDBColumnFamilyManager::numberOfColumnFamilies>
4243
RocksDBColumnFamilyManager::_externalNames = {
4344
"definitions", "documents", "primary", "edge", "vpack",
44-
"geo", "fulltext", "replicated-logs", "zkd", "zkd-vpack"};
45+
"geo", "fulltext", "replicated-logs", "zkd", "mdi-prefixed"};
4546

4647
std::array<rocksdb::ColumnFamilyHandle*,
4748
RocksDBColumnFamilyManager::numberOfColumnFamilies>

arangod/RocksDBEngine/RocksDBColumnFamilyManager.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ struct RocksDBColumnFamilyManager {
4646
GeoIndex = 5,
4747
FulltextIndex = 6,
4848
ReplicatedLogs = 7,
49-
ZkdIndex = 8,
50-
ZkdVPackIndex = 9,
49+
MdiIndex = 8,
50+
MdiVPackIndex = 9,
5151

5252
Invalid = 1024 // special placeholder
5353
};

arangod/RocksDBEngine/RocksDBComparator.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ int RocksDBVPackComparator::compareIndexValues(
103103

104104
// index values were identical. now compare the leftovers (which is the
105105
// LocalDocumentId for non-unique indexes)
106-
// For the ZKD index, there is also the curve data, following the vpack.
106+
// For the mdi, there is also the curve data, following the vpack.
107107

108108
constexpr size_t offset = sizeof(uint64_t);
109109
size_t const lOffset = offset + static_cast<size_t>(lSlice.byteSize());

arangod/RocksDBEngine/RocksDBEngine.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1143,8 +1143,8 @@ void RocksDBEngine::start() {
11431143
addFamily(RocksDBColumnFamilyManager::Family::GeoIndex);
11441144
addFamily(RocksDBColumnFamilyManager::Family::FulltextIndex);
11451145
addFamily(RocksDBColumnFamilyManager::Family::ReplicatedLogs);
1146-
addFamily(RocksDBColumnFamilyManager::Family::ZkdIndex);
1147-
addFamily(RocksDBColumnFamilyManager::Family::ZkdVPackIndex);
1146+
addFamily(RocksDBColumnFamilyManager::Family::MdiIndex);
1147+
addFamily(RocksDBColumnFamilyManager::Family::MdiVPackIndex);
11481148

11491149
bool dbExisted = checkExistingDB(cfFamilies);
11501150

@@ -1209,10 +1209,10 @@ void RocksDBEngine::start() {
12091209
RocksDBColumnFamilyManager::Family::FulltextIndex, cfHandles[6]);
12101210
RocksDBColumnFamilyManager::set(
12111211
RocksDBColumnFamilyManager::Family::ReplicatedLogs, cfHandles[7]);
1212-
RocksDBColumnFamilyManager::set(RocksDBColumnFamilyManager::Family::ZkdIndex,
1212+
RocksDBColumnFamilyManager::set(RocksDBColumnFamilyManager::Family::MdiIndex,
12131213
cfHandles[8]);
12141214
RocksDBColumnFamilyManager::set(
1215-
RocksDBColumnFamilyManager::Family::ZkdVPackIndex, cfHandles[9]);
1215+
RocksDBColumnFamilyManager::Family::MdiVPackIndex, cfHandles[9]);
12161216
TRI_ASSERT(RocksDBColumnFamilyManager::get(
12171217
RocksDBColumnFamilyManager::Family::Definitions)
12181218
->GetID() == 0);
@@ -3698,9 +3698,9 @@ void RocksDBEngine::getStatistics(VPackBuilder& builder) const {
36983698
addCf(RocksDBColumnFamilyManager::Family::VPackIndex);
36993699
addCf(RocksDBColumnFamilyManager::Family::GeoIndex);
37003700
addCf(RocksDBColumnFamilyManager::Family::FulltextIndex);
3701-
addCf(RocksDBColumnFamilyManager::Family::ZkdIndex);
3701+
addCf(RocksDBColumnFamilyManager::Family::MdiIndex);
37023702
addCf(RocksDBColumnFamilyManager::Family::ReplicatedLogs);
3703-
addCf(RocksDBColumnFamilyManager::Family::ZkdVPackIndex);
3703+
addCf(RocksDBColumnFamilyManager::Family::MdiVPackIndex);
37043704
builder.close();
37053705

37063706
if (_throttleListener) {
@@ -4078,17 +4078,17 @@ bool RocksDBEngine::checkExistingDB(
40784078
<< "found existing column families: " << names;
40794079
auto const replicatedLogsName = RocksDBColumnFamilyManager::name(
40804080
RocksDBColumnFamilyManager::Family::ReplicatedLogs);
4081-
auto const zkdIndexName = RocksDBColumnFamilyManager::name(
4082-
RocksDBColumnFamilyManager::Family::ZkdIndex);
4083-
auto const zkdVPackIndexName = RocksDBColumnFamilyManager::name(
4084-
RocksDBColumnFamilyManager::Family::ZkdVPackIndex);
4081+
auto const mdiIndexName = RocksDBColumnFamilyManager::name(
4082+
RocksDBColumnFamilyManager::Family::MdiIndex);
4083+
auto const mdiVPackIndexName = RocksDBColumnFamilyManager::name(
4084+
RocksDBColumnFamilyManager::Family::MdiVPackIndex);
40854085

40864086
for (auto const& it : cfFamilies) {
40874087
auto it2 = std::find(existingColumnFamilies.begin(),
40884088
existingColumnFamilies.end(), it.name);
40894089
if (it2 == existingColumnFamilies.end()) {
4090-
if (it.name == replicatedLogsName || it.name == zkdIndexName ||
4091-
it.name == zkdVPackIndexName) {
4090+
if (it.name == replicatedLogsName || it.name == mdiIndexName ||
4091+
it.name == mdiVPackIndexName) {
40924092
LOG_TOPIC("293c3", INFO, Logger::STARTUP)
40934093
<< "column family " << it.name
40944094
<< " is missing and will be created.";

arangod/RocksDBEngine/RocksDBIndex.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,6 @@ void RocksDBIndex::refillCache(transaction::Methods& trx,
315315
size_t RocksDBIndex::memory() const {
316316
rocksdb::TransactionDB* db = _engine.db();
317317
RocksDBKeyBounds bounds = getBounds();
318-
// ZKD Index uses multiple column families depending on its configuration
319318
TRI_ASSERT(_cf == bounds.columnFamily());
320319
rocksdb::Range r(bounds.start(), bounds.end());
321320
uint64_t out;
@@ -400,10 +399,10 @@ RocksDBKeyBounds RocksDBIndex::getBounds(Index::IndexType type,
400399
return RocksDBKeyBounds::GeoIndex(objectId);
401400
case RocksDBIndex::TRI_IDX_TYPE_IRESEARCH_LINK:
402401
return RocksDBKeyBounds::DatabaseViews(objectId);
403-
case RocksDBIndex::TRI_IDX_TYPE_ZKD_INDEX:
404-
return RocksDBKeyBounds::ZkdIndex(objectId);
402+
case RocksDBIndex::TRI_IDX_TYPE_MDI_INDEX:
403+
return RocksDBKeyBounds::MdiIndex(objectId);
405404
case RocksDBIndex::TRI_IDX_TYPE_MDI_PREFIXED_INDEX:
406-
return RocksDBKeyBounds::ZkdVPackIndex(objectId);
405+
return RocksDBKeyBounds::MdiVPackIndex(objectId);
407406
case RocksDBIndex::TRI_IDX_TYPE_UNKNOWN:
408407
default:
409408
THROW_ARANGO_EXCEPTION(TRI_ERROR_NOT_IMPLEMENTED);

0 commit comments

Comments
 (0)