This is an automated email from the ASF dual-hosted git repository.

laiyingchun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pegasus.git


The following commit(s) were added to refs/heads/master by this push:
     new 51b57615c refactor(conf): use DSN_DEFINE_double to load double type of 
configs (#1362)
51b57615c is described below

commit 51b57615c5ce8de81ec8e6467145b56cc88654b7
Author: Yingchun Lai <[email protected]>
AuthorDate: Fri Feb 24 14:01:58 2023 +0800

    refactor(conf): use DSN_DEFINE_double to load double type of configs (#1362)
---
 src/runtime/service_api_c.cpp           | 17 ++++++++------
 src/server/pegasus_server_impl_init.cpp | 41 +++++++++++++++++----------------
 2 files changed, 31 insertions(+), 27 deletions(-)

diff --git a/src/runtime/service_api_c.cpp b/src/runtime/service_api_c.cpp
index 291df5323..87dc1d94c 100644
--- a/src/runtime/service_api_c.cpp
+++ b/src/runtime/service_api_c.cpp
@@ -50,6 +50,15 @@
 #include "utils/time_utils.h"
 #include "utils/process_utils.h"
 
+#ifdef DSN_ENABLE_GPERF
+DSN_DEFINE_double(core,
+                  tcmalloc_release_rate,
+                  1.,
+                  "the memory releasing rate of tcmalloc, default "
+                  "is 1.0 in gperftools, value range is "
+                  "[0.0, 10.0]");
+#endif
+
 namespace dsn {
 namespace security {
 DSN_DECLARE_bool(enable_auth);
@@ -414,13 +423,7 @@ bool run(const char *config_file,
     }
 
 #ifdef DSN_ENABLE_GPERF
-    double_t tcmalloc_release_rate =
-        (double_t)dsn_config_get_value_double("core",
-                                              "tcmalloc_release_rate",
-                                              1., // [0, 10]
-                                              "the memory releasing rate of 
tcmalloc, default is "
-                                              "1.0 in gperftools, value range 
is 0.0~10.0");
-    ::MallocExtension::instance()->SetMemoryReleaseRate(tcmalloc_release_rate);
+    
::MallocExtension::instance()->SetMemoryReleaseRate(FLAGS_tcmalloc_release_rate);
 #endif
 
     // init logging
diff --git a/src/server/pegasus_server_impl_init.cpp 
b/src/server/pegasus_server_impl_init.cpp
index 4e38f1621..25c37062a 100644
--- a/src/server/pegasus_server_impl_init.cpp
+++ b/src/server/pegasus_server_impl_init.cpp
@@ -272,6 +272,14 @@ DSN_DEFINE_uint64(pegasus.server,
                   rocksdb_periodic_compaction_seconds,
                   0,
                   "periodic_compaction_seconds, 0 means no periodic 
compaction");
+DSN_DEFINE_double(pegasus.server,
+                  rocksdb_max_bytes_for_level_multiplier,
+                  10,
+                  "rocksdb options.rocksdb_max_bytes_for_level_multiplier");
+DSN_DEFINE_double(pegasus.server,
+                  rocksdb_bloom_filter_bits_per_key,
+                  10,
+                  "average bits allocated per key in bloom filter");
 
 static const std::unordered_map<std::string, 
rocksdb::BlockBasedTableOptions::IndexType>
     INDEX_TYPE_STRING_MAP = {
@@ -346,11 +354,7 @@ 
pegasus_server_impl::pegasus_server_impl(dsn::replication::replica *r)
     _data_cf_opts.target_file_size_base = FLAGS_rocksdb_target_file_size_base;
     _data_cf_opts.target_file_size_multiplier = 
FLAGS_rocksdb_target_file_size_multiplier;
     _data_cf_opts.max_bytes_for_level_base = 
FLAGS_rocksdb_max_bytes_for_level_base;
-    _data_cf_opts.max_bytes_for_level_multiplier =
-        dsn_config_get_value_double("pegasus.server",
-                                    "rocksdb_max_bytes_for_level_multiplier",
-                                    10,
-                                    "rocksdb 
options.rocksdb_max_bytes_for_level_multiplier");
+    _data_cf_opts.max_bytes_for_level_multiplier = 
FLAGS_rocksdb_max_bytes_for_level_multiplier;
 
     // we need set max_compaction_bytes definitely because 
set_usage_scenario() depends on it.
     _data_cf_opts.max_compaction_bytes = _data_cf_opts.target_file_size_base * 
25;
@@ -529,24 +533,21 @@ 
pegasus_server_impl::pegasus_server_impl(dsn::replication::replica *r)
         "pegasus.server", "rocksdb_disable_bloom_filter", false, "Whether to 
disable bloom filter");
     if (!disable_bloom_filter) {
         // average bits allocated per key in bloom filter.
-        // bits_per_key    |           false positive rate
-        //                 | format_version < 5 | format_version = 5
-        //       6                5.70953              5.69888
-        //       8                2.45766              2.29709
-        //      10                1.13977              0.959254
-        //      12                0.662498             0.411593
-        //      16                0.353023             0.0873754
-        //      24                0.261552             0.0060971
-        //      50                0.225453             ~0.00003
+        // FLAGS_rocksdb_bloom_filter_bits_per_key    |           false 
positive rate
+        // 
-------------------------------------------+-------------------------------------------
+        //                                            | format_version < 5 | 
format_version = 5
+        //                                  6         |      5.70953       |   
   5.69888
+        //                                  8         |      2.45766       |   
   2.29709
+        //                                 10         |      1.13977       |   
   0.959254
+        //                                 12         |      0.662498      |   
   0.411593
+        //                                 16         |      0.353023      |   
   0.0873754
+        //                                 24         |      0.261552      |   
   0.0060971
+        //                                 50         |      0.225453      |   
   ~0.00003
         // Recommend using no more than three decimal digits after the decimal 
point, as in 6.667.
         // More details: 
https://github.com/facebook/rocksdb/wiki/RocksDB-Bloom-Filter
-        double bits_per_key =
-            dsn_config_get_value_double("pegasus.server",
-                                        "rocksdb_bloom_filter_bits_per_key",
-                                        10,
-                                        "average bits allocated per key in 
bloom filter");
         tbl_opts.format_version = FLAGS_rocksdb_format_version;
-        
tbl_opts.filter_policy.reset(rocksdb::NewBloomFilterPolicy(bits_per_key, 
false));
+        tbl_opts.filter_policy.reset(
+            
rocksdb::NewBloomFilterPolicy(FLAGS_rocksdb_bloom_filter_bits_per_key, false));
 
         std::string filter_type =
             dsn_config_get_value_string("pegasus.server",


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to