MCPcopy Create free account
hub / github.com/baidu/tera / TabletNodeImpl

Method TabletNodeImpl

src/tabletnode/tabletnode_impl.cc:165–223  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

163 new TableCacheCollector(table_cache, CacheCollectType::kCharge))) {}
164
165TabletNodeImpl::TabletNodeImpl()
166 : status_(kNotInited),
167 running_(true),
168 tablet_manager_(new TabletManager()),
169 zk_adapter_(NULL),
170 release_cache_timer_id_(kInvalidTimerId),
171 thread_pool_(new ThreadPool(FLAGS_tera_tabletnode_impl_thread_max_num)),
172 cache_metrics_(NULL) {
173 if (FLAGS_tera_local_addr == "") {
174 local_addr_ = utils::GetLocalHostName() + ":" + FLAGS_tera_tabletnode_port;
175 } else {
176 local_addr_ = FLAGS_tera_local_addr + ":" + FLAGS_tera_tabletnode_port;
177 }
178 sysinfo_.SetServerAddr(local_addr_);
179
180 leveldb::Env::Default()->SetBackgroundThreads(FLAGS_tera_tabletnode_compact_thread_num);
181
182 uint64_t max_log_size = static_cast<uint64_t>(FLAGS_leveldb_max_log_size_MB) << 20;
183 leveldb::LogOption log_opt =
184 leveldb::LogOption::LogOptionBuilder()
185 .SetMaxLogSize(max_log_size)
186 .SetFlushTriggerSize(FLAGS_leveldb_log_flush_trigger_size_B)
187 .SetFlushTriggerIntervalMs(FLAGS_leveldb_log_flush_trigger_interval_ms)
188 .Build();
189 leveldb::Status s =
190 leveldb::Env::Default()->NewLogger(FLAGS_tera_leveldb_log_path, log_opt, &ldb_logger_);
191 leveldb::Env::Default()->SetLogger(ldb_logger_);
192 LOG(INFO) << "leveldb logger inited, log_file:" << FLAGS_tera_leveldb_log_path
193 << ", options:" << log_opt.ToString();
194
195 ldb_block_cache_ = leveldb::NewLRUCache(FLAGS_tera_tabletnode_block_cache_size * 1024UL * 1024);
196 m_memory_cache = leveldb::NewLRUCache(FLAGS_tera_memenv_block_cache_size * 1024UL * 1024);
197 ldb_table_cache_ =
198 new leveldb::TableCache(FLAGS_tera_tabletnode_table_cache_size * 1024UL * 1024);
199 if (!s.ok()) {
200 ldb_logger_ = NULL;
201 }
202
203 if (FLAGS_tera_leveldb_env_type != "local") {
204 io::InitDfsEnv();
205 }
206
207 if (FLAGS_tera_tabletnode_tcm_cache_release_enabled) {
208 LOG(INFO) << "enable tcmalloc cache release timer";
209 EnableReleaseMallocCacheTimer();
210 }
211 const char* tcm_property = "tcmalloc.max_total_thread_cache_bytes";
212 MallocExtension::instance()->SetNumericProperty(tcm_property,
213 FLAGS_tera_tabletnode_tcm_cache_size);
214 size_t tcm_t;
215 CHECK(MallocExtension::instance()->GetNumericProperty(tcm_property, &tcm_t));
216 LOG(INFO) << tcm_property << "=" << tcm_t;
217 sysinfo_.SetProcessStartTime(get_micros());
218 for (int level = 0; level != leveldb::config::kNumLevels; ++level) {
219 level_size_.push_back(tera::MetricCounter{
220 kLevelSize, "level:" + std::to_string(level), {tera::SubscriberType::LATEST}, false});
221 level_size_.back().Set(0);
222 }

Callers

nothing calls this directly

Calls 15

GetLocalHostNameFunction · 0.85
LogOptionBuilderClass · 0.85
NewLRUCacheFunction · 0.85
SetProcessStartTimeMethod · 0.80
push_backMethod · 0.80
InitDfsEnvFunction · 0.50
get_microsFunction · 0.50
SetServerAddrMethod · 0.45
SetBackgroundThreadsMethod · 0.45
BuildMethod · 0.45
NewLoggerMethod · 0.45
SetLoggerMethod · 0.45

Tested by

no test coverage detected