@@ -561,9 +561,18 @@ void RocksDBEngine::start() {
561
561
_options.db_write_buffer_size = opts->_totalWriteBufferSize ;
562
562
}
563
563
564
- // this is cfFamilies.size() + 2 ... but _option needs to be set before
565
- // building cfFamilies
566
- _options.max_write_buffer_number = 7 + 2 ;
564
+ if (!application_features::ApplicationServer::server->options ()->processingResult ().touched (" rocksdb.max-write-buffer-number" )) {
565
+ // user hasn't explicitly set the number of write buffers, so we use a default value based
566
+ // on the number of column families
567
+ // this is cfFamilies.size() + 2 ... but _option needs to be set before
568
+ // building cfFamilies
569
+ // Update max_write_buffer_number above if you change number of families used
570
+ _options.max_write_buffer_number = 7 + 2 ;
571
+ } else if (_options.max_write_buffer_number < 7 + 2 ) {
572
+ // user set the value explicitly, and it is lower than recommended
573
+ _options.max_write_buffer_number = 7 + 2 ;
574
+ LOG_TOPIC (" d5c49" , WARN, Logger::ENGINES) << " ignoring value for option `--rocksdb.max-write-buffer-number` because it is lower than recommended" ;
575
+ }
567
576
568
577
// cf options for definitons (dbs, collections, views, ...)
569
578
rocksdb::ColumnFamilyOptions definitionsCF (_options);
@@ -601,8 +610,9 @@ void RocksDBEngine::start() {
601
610
cfFamilies.emplace_back (" VPackIndex" , vpackFixedPrefCF); // 4
602
611
cfFamilies.emplace_back (" GeoIndex" , fixedPrefCF); // 5
603
612
cfFamilies.emplace_back (" FulltextIndex" , fixedPrefCF); // 6
604
- // DO NOT FORGET TO DESTROY THE CFs ON CLOSE
605
- // Update max_write_buffer_number above if you change number of families used
613
+
614
+ TRI_ASSERT (static_cast <int >(_options.max_write_buffer_number ) >= static_cast <int >(cfFamilies.size ()));
615
+ // Update max_write_buffer_number above if you change number of families used
606
616
607
617
std::vector<rocksdb::ColumnFamilyHandle*> cfHandles;
608
618
size_t const numberOfColumnFamilies = RocksDBColumnFamily::minNumberOfColumnFamilies;
0 commit comments