1
0
Fork 0
arangodb/arangod/StorageEngine
Jan 6d107beeda
don't run compact() on a collection after a truncate() was done in th… (#8468)
* don't run compact() on a collection after a truncate() was done in the same transaction

running compact() in the same transaction will only increase the data size on disk due to RocksDB not being able to remove
any documents physically due to the snapshot we take at transaction start.
Decoupling the truncate transaction from the compact operation allows finishing the truncate transaction first, so we can
get rid of the snapshot. Running compact afterwards is then free to physically remove all the data.
As a nice side effect this change will also speed up the truncation of larger collections, because the compact will run
faster.

This change also exposes db.<collection>.compact() in the arangosh, in order to manually run a compaction on the data
range of a collection should it be needed for maintenance.

* fix documentation anchors
2019-03-20 16:27:54 +01:00
..
EngineSelectorFeature.cpp
EngineSelectorFeature.h
PhysicalCollection.cpp Named indices (#8370) 2019-03-13 18:20:32 +01:00
PhysicalCollection.h don't run compact() on a collection after a truncate() was done in th… (#8468) 2019-03-20 16:27:54 +01:00
StorageEngine.h Refactorings from cluster trx improvement branch (#8391) 2019-03-14 23:13:17 +01:00
StorageEngineFeature.h
TransactionCollection.cpp
TransactionCollection.h Refactorings from cluster trx improvement branch (#8391) 2019-03-14 23:13:17 +01:00
TransactionState.cpp Refactorings from cluster trx improvement branch (#8391) 2019-03-14 23:13:17 +01:00
TransactionState.h Refactorings from cluster trx improvement branch (#8391) 2019-03-14 23:13:17 +01:00
WalAccess.cpp
WalAccess.h port of replication improvements from 3.4 (#8308) 2019-03-11 13:37:18 +01:00