8000 Bug fix/replicated logs missing column family (#14622) · arangodb/arangodb@db449c9 · GitHub
[go: up one dir, main page]

Skip to content

Commit db449c9

Browse files
Lars Maierjsteemann
Lars Maier
andauthored
Bug fix/replicated logs missing column family (#14622)
Co-authored-by: jsteemann <jsteemann@users.noreply.github.com>
1 parent e69b73d commit db449c9

File tree

3 files changed

+24
-12
lines changed

3 files changed

+24
-12
lines changed

CHANGELOG

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
devel
22
-----
33

4-
* Fixed i 8000 ssue #14592: IS_NULL(@x) isn't recognized as a constant expression.
4+
* Add ReplicatedLogs column family.
5+
6+
* Add optimization rule for AqlAnalyzer.
7+
8+
* Fixed issue #14592: IS_NULL(@x) isn't recognized as a constant expression.
59

610
* Fixed issue BTS-539 "Unsynchronized query kill while it's being finalized in
711
another thread was uncovered through `test-kill.js` of `communication_ssl`
812
suite". Fixed possible (but unlikely) crash when killing an AQL query.
913

10-
* Add optimization rule for AqlAnalyzer.
11-
1214
* Append physical compaction of log collection to every Raft log
1315
compaction (BTS-542).
1416

arangod/RocksDBEngine/RocksDBColumnFamilyManager.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ struct RocksDBColumnFamilyManager {
5555
External // for display to users
5656
};
5757

58-
static constexpr size_t minNumberOfColumnFamilies = 8;
58+
static constexpr size_t minNumberOfColumnFamilies = 7;
5959
static constexpr size_t numberOfColumnFamilies = 8;
6060

6161
static void initialize();

arangod/RocksDBEngine/RocksDBEngine.cpp

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -708,8 +708,8 @@ void RocksDBEngine::start() {
708708
addFamily(RocksDBColumnFamilyManager::Family::FulltextIndex);
709709
addFamily(RocksDBColumnFamilyManager::Family::ReplicatedLogs);
710710

711-
std::vector<rocksdb::ColumnFamilyHandle*> cfHandles;
712-
size_t const numberOfColumnFamilies = RocksDBColumnFamilyManager::minNumberOfColumnFamilies;
711+
712+
size_t const minNumberOfColumnFamilies = RocksDBColumnFamilyManager::minNumberOfColumnFamilies;
713713
bool dbExisted = false;
714714
{
715715
rocksdb::Options testOptions;
@@ -744,12 +744,21 @@ void Rocks 10000 DBEngine::start() {
744744

745745
LOG_TOPIC("528b8", DEBUG, arangodb::Logger::STARTUP)
746746
<< "found existing column families: " << names;
747+
auto const replicatedLogsName = RocksDBColumnFamilyManager::name(
748+
RocksDBColumnFamilyManager::Family::ReplicatedLogs);
747749

748750
for (auto const& it : cfFamilies) {
749751
auto it2 = std::find(existingColumnFamilies.begin(),
750752
existingColumnFamilies.end(), it.name);
751-
752753
if (it2 == existingColumnFamilies.end()) {
754+
755+
if (it.name == replicatedLogsName) {
756+
LOG_TOPIC("293c3", INFO, Logger::STARTUP)
757+
<< "column family " << replicatedLogsName
758+
<< " is missing and will be created.";
759+
continue;
760+
}
761+
753762
LOG_TOPIC("d9df8", FATAL, arangodb::Logger::STARTUP)
754763
<< "column family '" << it.name << "' is missing in database"
755764
<< ". if you are upgrading from an earlier alpha or beta version "
@@ -760,11 +769,11 @@ void RocksDBEngine::start() {
760769
}
761770
}
762771

763-
if (existingColumnFamilies.size() < numberOfColumnFamilies) {
772+
if (existingColumnFamilies.size() < minNumberOfColumnFamilies) {
764773
LOG_TOPIC("e99ec", FATAL, arangodb::Logger::STARTUP)
765774
<< "unexpected number of column families found in database ("
766-
<< cfHandles.size() << "). "
767-
<< "expecting at least " << numberOfColumnFamilies
775+
<< existingColumnFamilies.size() << "). "
776+
<< "expecting at least " << minNumberOfColumnFamilies
768777
<< ". if you are upgrading from an earlier alpha or beta version "
769778
"of ArangoDB 3.2, "
770779
<< "it is required to restart with a new database directory and "
@@ -774,6 +783,7 @@ void RocksDBEngine::start() {
774783
}
775784
}
776785

786+
std::vector<rocksdb::ColumnFamilyHandle*> cfHandles;
777787
rocksdb::Status status =
778788
rocksdb::TransactionDB::Open(_options, transactionOptions, _path,
779789
cfFamilies, &cfHandles, &_db);
@@ -795,10 +805,10 7B5D @@ void RocksDBEngine::start() {
795805
<< "unable to initialize RocksDB column families";
796806
FATAL_ERROR_EXIT();
797807
}
798-
if (cfHandles.size() < numberOfColumnFamilies) {
808+
if (cfHandles.size() < minNumberOfColumnFamilies) {
799809
LOG_TOPIC("e572e", FATAL, arangodb::Logger::STARTUP)
800810
<< "unexpected number of column families found in database. "
801-
<< "got " << cfHandles.size() << ", expecting at least " << numberOfColumnFamilies;
811+
<< "got " << cfHandles.size() << ", expecting at least " << minNumberOfColumnFamilies;
802812
FATAL_ERROR_EXIT();
803813
}
804814

0 commit comments

Comments
 (0)
0