mirror of https://gitee.com/bigwinds/arangodb
move doCompact into PhysicalColletion
This commit is contained in:
parent
f3a1f128ee
commit
071137adf6
|
@ -1422,7 +1422,7 @@ int ClusterInfo::setCollectionPropertiesCoordinator(
|
||||||
copy.add(key, entry.value);
|
copy.add(key, entry.value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
copy.add("doCompact", VPackValue(info->doCompact()));
|
copy.add("doCompact", VPackValue(info->getPhysical()->doCompact()));
|
||||||
copy.add("journalSize", VPackValue(info->getPhysical()->journalSize()));
|
copy.add("journalSize", VPackValue(info->getPhysical()->journalSize()));
|
||||||
copy.add("waitForSync", VPackValue(info->waitForSync()));
|
copy.add("waitForSync", VPackValue(info->waitForSync()));
|
||||||
copy.add("indexBuckets", VPackValue(info->indexBuckets()));
|
copy.add("indexBuckets", VPackValue(info->indexBuckets()));
|
||||||
|
|
|
@ -599,7 +599,7 @@ static void JS_GetCollectionInfoClusterInfo(
|
||||||
result->Set(TRI_V8_ASCII_STRING("deleted"),
|
result->Set(TRI_V8_ASCII_STRING("deleted"),
|
||||||
v8::Boolean::New(isolate, ci->deleted()));
|
v8::Boolean::New(isolate, ci->deleted()));
|
||||||
result->Set(TRI_V8_ASCII_STRING("doCompact"),
|
result->Set(TRI_V8_ASCII_STRING("doCompact"),
|
||||||
v8::Boolean::New(isolate, ci->doCompact()));
|
v8::Boolean::New(isolate, ci->getPhysical()->doCompact()));
|
||||||
result->Set(TRI_V8_ASCII_STRING("isSystem"),
|
result->Set(TRI_V8_ASCII_STRING("isSystem"),
|
||||||
v8::Boolean::New(isolate, ci->isSystem()));
|
v8::Boolean::New(isolate, ci->isSystem()));
|
||||||
result->Set(TRI_V8_ASCII_STRING("isVolatile"),
|
result->Set(TRI_V8_ASCII_STRING("isVolatile"),
|
||||||
|
|
|
@ -118,6 +118,7 @@ int MMFilesCollection::updateProperties(VPackSlice const& slice, bool doSync){
|
||||||
_journalSize = Helper::getNumericValue<TRI_voc_size_t>(slice, "maximalSize",
|
_journalSize = Helper::getNumericValue<TRI_voc_size_t>(slice, "maximalSize",
|
||||||
_journalSize);
|
_journalSize);
|
||||||
}
|
}
|
||||||
|
_doCompact = Helper::getBooleanValue(slice, "doCompact", _doCompact);
|
||||||
return TRI_ERROR_NO_ERROR;
|
return TRI_ERROR_NO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -372,7 +373,9 @@ MMFilesCollection::MMFilesCollection(LogicalCollection* collection, VPackSlice c
|
||||||
// journalSize. paramters.json uses maximalSize
|
// journalSize. paramters.json uses maximalSize
|
||||||
Helper::readNumericValue<TRI_voc_size_t>(info, "journalSize",
|
Helper::readNumericValue<TRI_voc_size_t>(info, "journalSize",
|
||||||
TRI_JOURNAL_DEFAULT_SIZE))),
|
TRI_JOURNAL_DEFAULT_SIZE))),
|
||||||
_useSecondaryIndexes(true) {
|
_useSecondaryIndexes(true),
|
||||||
|
_doCompact(Helper::readBooleanValue(info, "doCompact", true))
|
||||||
|
{
|
||||||
setCompactionStatus("compaction not yet started");
|
setCompactionStatus("compaction not yet started");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -389,6 +392,7 @@ MMFilesCollection::MMFilesCollection(LogicalCollection* logical, PhysicalCollect
|
||||||
_lastCompactionStamp = mmfiles._lastCompactionStamp;
|
_lastCompactionStamp = mmfiles._lastCompactionStamp;
|
||||||
_journalSize = mmfiles._journalSize;
|
_journalSize = mmfiles._journalSize;
|
||||||
_path = mmfiles._path;
|
_path = mmfiles._path;
|
||||||
|
_doCompact = mmfiles._doCompact;
|
||||||
setCompactionStatus("compaction not yet started");
|
setCompactionStatus("compaction not yet started");
|
||||||
|
|
||||||
// not copied
|
// not copied
|
||||||
|
|
|
@ -204,6 +204,9 @@ class MMFilesCollection final : public PhysicalCollection {
|
||||||
int iterateMarkersOnLoad(arangodb::transaction::Methods* trx) override;
|
int iterateMarkersOnLoad(arangodb::transaction::Methods* trx) override;
|
||||||
|
|
||||||
bool isFullyCollected() const override;
|
bool isFullyCollected() const override;
|
||||||
|
|
||||||
|
bool doCompact() const override { return _doCompact; }
|
||||||
|
|
||||||
|
|
||||||
int64_t uncollectedLogfileEntries() const {
|
int64_t uncollectedLogfileEntries() const {
|
||||||
return _uncollectedLogfileEntries.load();
|
return _uncollectedLogfileEntries.load();
|
||||||
|
@ -461,6 +464,7 @@ class MMFilesCollection final : public PhysicalCollection {
|
||||||
|
|
||||||
// whether or not secondary indexes should be filled
|
// whether or not secondary indexes should be filled
|
||||||
bool _useSecondaryIndexes;
|
bool _useSecondaryIndexes;
|
||||||
|
bool _doCompact;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -871,7 +871,7 @@ void MMFilesCompactorThread::run() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool doCompact = collection->doCompact();
|
bool doCompact = collection->getPhysical()->doCompact();
|
||||||
|
|
||||||
// for document collection, compactify datafiles
|
// for document collection, compactify datafiles
|
||||||
if (collection->status() == TRI_VOC_COL_STATUS_LOADED && doCompact) {
|
if (collection->status() == TRI_VOC_COL_STATUS_LOADED && doCompact) {
|
||||||
|
|
|
@ -1258,7 +1258,7 @@ int RestReplicationHandler::createCollection(VPackSlice const& slice,
|
||||||
TRI_ASSERT(col != nullptr);
|
TRI_ASSERT(col != nullptr);
|
||||||
|
|
||||||
/* Temporary ASSERTS to prove correctness of new constructor */
|
/* Temporary ASSERTS to prove correctness of new constructor */
|
||||||
TRI_ASSERT(col->doCompact() ==
|
TRI_ASSERT(col->getPhysical()->doCompact() ==
|
||||||
arangodb::basics::VelocyPackHelper::getBooleanValue(
|
arangodb::basics::VelocyPackHelper::getBooleanValue(
|
||||||
slice, "doCompact", true));
|
slice, "doCompact", true));
|
||||||
TRI_ASSERT(
|
TRI_ASSERT(
|
||||||
|
|
|
@ -1328,7 +1328,7 @@ static void JS_PropertiesVocbaseCol(
|
||||||
TRI_GET_GLOBAL_STRING(IsVolatileKey);
|
TRI_GET_GLOBAL_STRING(IsVolatileKey);
|
||||||
TRI_GET_GLOBAL_STRING(JournalSizeKey);
|
TRI_GET_GLOBAL_STRING(JournalSizeKey);
|
||||||
TRI_GET_GLOBAL_STRING(WaitForSyncKey);
|
TRI_GET_GLOBAL_STRING(WaitForSyncKey);
|
||||||
result->Set(DoCompactKey, v8::Boolean::New(isolate, info->doCompact()));
|
result->Set(DoCompactKey, v8::Boolean::New(isolate, info->getPhysical()->doCompact()));
|
||||||
result->Set(IsSystemKey, v8::Boolean::New(isolate, info->isSystem()));
|
result->Set(IsSystemKey, v8::Boolean::New(isolate, info->isSystem()));
|
||||||
result->Set(IsVolatileKey, v8::Boolean::New(isolate, info->isVolatile()));
|
result->Set(IsVolatileKey, v8::Boolean::New(isolate, info->isVolatile()));
|
||||||
result->Set(JournalSizeKey, v8::Number::New(isolate, static_cast<double>(info->getPhysical()->journalSize())));
|
result->Set(JournalSizeKey, v8::Number::New(isolate, static_cast<double>(info->getPhysical()->journalSize())));
|
||||||
|
@ -1457,7 +1457,7 @@ static void JS_PropertiesVocbaseCol(
|
||||||
TRI_GET_GLOBAL_STRING(IsSystemKey);
|
TRI_GET_GLOBAL_STRING(IsSystemKey);
|
||||||
TRI_GET_GLOBAL_STRING(IsVolatileKey);
|
TRI_GET_GLOBAL_STRING(IsVolatileKey);
|
||||||
TRI_GET_GLOBAL_STRING(JournalSizeKey);
|
TRI_GET_GLOBAL_STRING(JournalSizeKey);
|
||||||
result->Set(DoCompactKey, v8::Boolean::New(isolate, collection->doCompact()));
|
result->Set(DoCompactKey, v8::Boolean::New(isolate, collection->getPhysical()->doCompact()));
|
||||||
result->Set(IsSystemKey, v8::Boolean::New(isolate, collection->isSystem()));
|
result->Set(IsSystemKey, v8::Boolean::New(isolate, collection->isSystem()));
|
||||||
result->Set(IsVolatileKey,
|
result->Set(IsVolatileKey,
|
||||||
v8::Boolean::New(isolate, collection->isVolatile()));
|
v8::Boolean::New(isolate, collection->isVolatile()));
|
||||||
|
|
|
@ -153,7 +153,6 @@ LogicalCollection::LogicalCollection(LogicalCollection const& other)
|
||||||
_status(other.status()),
|
_status(other.status()),
|
||||||
_isLocal(false),
|
_isLocal(false),
|
||||||
_isDeleted(other._isDeleted),
|
_isDeleted(other._isDeleted),
|
||||||
_doCompact(other.doCompact()),
|
|
||||||
_isSystem(other.isSystem()),
|
_isSystem(other.isSystem()),
|
||||||
_isVolatile(other.isVolatile()),
|
_isVolatile(other.isVolatile()),
|
||||||
_waitForSync(other.waitForSync()),
|
_waitForSync(other.waitForSync()),
|
||||||
|
@ -203,7 +202,6 @@ LogicalCollection::LogicalCollection(TRI_vocbase_t* vocbase,
|
||||||
info, "status", TRI_VOC_COL_STATUS_CORRUPTED)),
|
info, "status", TRI_VOC_COL_STATUS_CORRUPTED)),
|
||||||
_isLocal(!ServerState::instance()->isCoordinator()),
|
_isLocal(!ServerState::instance()->isCoordinator()),
|
||||||
_isDeleted(Helper::readBooleanValue(info, "deleted", false)),
|
_isDeleted(Helper::readBooleanValue(info, "deleted", false)),
|
||||||
_doCompact(Helper::readBooleanValue(info, "doCompact", true)),
|
|
||||||
_isSystem(IsSystemName(_name) &&
|
_isSystem(IsSystemName(_name) &&
|
||||||
Helper::readBooleanValue(info, "isSystem", false)),
|
Helper::readBooleanValue(info, "isSystem", false)),
|
||||||
_isVolatile(Helper::readBooleanValue(info, "isVolatile", false)),
|
_isVolatile(Helper::readBooleanValue(info, "isVolatile", false)),
|
||||||
|
@ -633,8 +631,6 @@ bool LogicalCollection::isLocal() const { return _isLocal; }
|
||||||
|
|
||||||
bool LogicalCollection::deleted() const { return _isDeleted; }
|
bool LogicalCollection::deleted() const { return _isDeleted; }
|
||||||
|
|
||||||
bool LogicalCollection::doCompact() const { return _doCompact; }
|
|
||||||
|
|
||||||
bool LogicalCollection::isSystem() const { return _isSystem; }
|
bool LogicalCollection::isSystem() const { return _isSystem; }
|
||||||
|
|
||||||
bool LogicalCollection::isVolatile() const { return _isVolatile; }
|
bool LogicalCollection::isVolatile() const { return _isVolatile; }
|
||||||
|
@ -709,7 +705,7 @@ void LogicalCollection::getPropertiesVPack(VPackBuilder& result, bool translateC
|
||||||
result.add("type", VPackValue(static_cast<int>(_type)));
|
result.add("type", VPackValue(static_cast<int>(_type)));
|
||||||
result.add("status", VPackValue(_status));
|
result.add("status", VPackValue(_status));
|
||||||
result.add("deleted", VPackValue(_isDeleted));
|
result.add("deleted", VPackValue(_isDeleted));
|
||||||
result.add("doCompact", VPackValue(_doCompact));
|
result.add("doCompact", VPackValue(getPhysical()->doCompact()));
|
||||||
result.add("isSystem", VPackValue(_isSystem));
|
result.add("isSystem", VPackValue(_isSystem));
|
||||||
result.add("isVolatile", VPackValue(_isVolatile));
|
result.add("isVolatile", VPackValue(_isVolatile));
|
||||||
result.add("waitForSync", VPackValue(_waitForSync));
|
result.add("waitForSync", VPackValue(_waitForSync));
|
||||||
|
@ -1047,7 +1043,6 @@ int LogicalCollection::updateProperties(VPackSlice const& slice, bool doSync) {
|
||||||
}
|
}
|
||||||
// end of validation
|
// end of validation
|
||||||
|
|
||||||
_doCompact = Helper::getBooleanValue(slice, "doCompact", _doCompact);
|
|
||||||
_waitForSync = Helper::getBooleanValue(slice, "waitForSync", _waitForSync);
|
_waitForSync = Helper::getBooleanValue(slice, "waitForSync", _waitForSync);
|
||||||
getPhysical()->updateProperties(slice,doSync);
|
getPhysical()->updateProperties(slice,doSync);
|
||||||
_indexBuckets =
|
_indexBuckets =
|
||||||
|
|
|
@ -162,7 +162,6 @@ class LogicalCollection {
|
||||||
TRI_voc_rid_t revision() const;
|
TRI_voc_rid_t revision() const;
|
||||||
bool isLocal() const;
|
bool isLocal() const;
|
||||||
bool deleted() const;
|
bool deleted() const;
|
||||||
bool doCompact() const;
|
|
||||||
bool isSystem() const;
|
bool isSystem() const;
|
||||||
bool isVolatile() const;
|
bool isVolatile() const;
|
||||||
bool waitForSync() const;
|
bool waitForSync() const;
|
||||||
|
@ -385,7 +384,6 @@ private:
|
||||||
// SECTION: Properties
|
// SECTION: Properties
|
||||||
bool _isLocal;
|
bool _isLocal;
|
||||||
bool _isDeleted;
|
bool _isDeleted;
|
||||||
bool _doCompact;
|
|
||||||
bool const _isSystem;
|
bool const _isSystem;
|
||||||
bool const _isVolatile;
|
bool const _isVolatile;
|
||||||
bool _waitForSync;
|
bool _waitForSync;
|
||||||
|
|
|
@ -95,6 +95,7 @@ class PhysicalCollection {
|
||||||
virtual uint8_t const* lookupRevisionVPackConditional(TRI_voc_rid_t revisionId, TRI_voc_tick_t maxTick, bool excludeWal) const = 0;
|
virtual uint8_t const* lookupRevisionVPackConditional(TRI_voc_rid_t revisionId, TRI_voc_tick_t maxTick, bool excludeWal) const = 0;
|
||||||
|
|
||||||
virtual bool isFullyCollected() const = 0;
|
virtual bool isFullyCollected() const = 0;
|
||||||
|
virtual bool doCompact() const = 0;
|
||||||
|
|
||||||
////////////////////////////////////
|
////////////////////////////////////
|
||||||
// -- SECTION Indexes --
|
// -- SECTION Indexes --
|
||||||
|
|
Loading…
Reference in New Issue