MCPcopy
hub / github.com/uber/aresdb / startDataNode

Function startDataNode

cmd/aresd/cmd/cmd.go:256–299  ·  view source on GitHub ↗

start datanode in distributed mode

(cfg common.AresServerConfig, logger common.Logger, scope tally.Scope, httpWrappers ...utils.HTTPHandlerWrapper)

Source from the content-addressed store, hash-verified

254
255// start datanode in distributed mode
256func startDataNode(cfg common.AresServerConfig, logger common.Logger, scope tally.Scope, httpWrappers ...utils.HTTPHandlerWrapper) {
257 opts := datanode.NewOptions().SetServerConfig(cfg).SetInstrumentOptions(utils.NewOptions()).SetBootstrapOptions(bootstrap.NewOptions()).SetHTTPWrappers(httpWrappers)
258
259 var topo topology.Topology
260 etcdCfg := cfg.Cluster.Etcd
261 etcdCfg.Service = utils.DataNodeServiceName(cfg.Cluster.Namespace)
262 configServiceCli, err := etcdCfg.NewClient(instrument.NewOptions())
263 if err != nil {
264 logger.With("error", err.Error()).Fatal("failed to create etcd client", err)
265 }
266
267 txnStore, err := configServiceCli.Txn()
268 if err != nil {
269 logger.With("error", err.Error()).Fatal("failed to create txn store")
270 }
271
272 enumReader := etcd.NewEnumMutator(txnStore, etcd.NewTableSchemaMutator(txnStore, zap.NewExample().Sugar()))
273
274 dynamicOptions := topology.NewDynamicOptions().
275 SetConfigServiceClient(configServiceCli).
276 SetQueryOptions(services.NewQueryOptions().SetIncludeUnhealthy(true)).
277 SetServiceID(services.NewServiceID().
278 SetZone(etcdCfg.Zone).
279 SetName(etcdCfg.Service).
280 SetEnvironment(etcdCfg.Env))
281 topo, err = topology.NewDynamicInitializer(dynamicOptions).Init()
282 if err != nil {
283 logger.Fatal("Failed to initialize dynamic topology,", err)
284 }
285
286 dataNode, err := datanode.NewDataNode(cfg.Cluster.InstanceID, topo, enumReader, opts)
287 if err != nil {
288 logger.Fatal("Failed to create datanode,", err)
289 }
290 defer dataNode.Close()
291
292 // preparing
293 err = dataNode.Open()
294 if err != nil {
295 logger.Fatal("Failed to open datanode,", err)
296 }
297 // start serving traffic
298 dataNode.Serve()
299}

Callers 1

startFunction · 0.85

Calls 15

CloseMethod · 0.95
OpenMethod · 0.95
ServeMethod · 0.95
NewOptionsFunction · 0.92
NewOptionsFunction · 0.92
NewOptionsFunction · 0.92
DataNodeServiceNameFunction · 0.92
NewEnumMutatorFunction · 0.92
NewTableSchemaMutatorFunction · 0.92
NewDynamicOptionsFunction · 0.92
NewDynamicInitializerFunction · 0.92
NewDataNodeFunction · 0.92

Tested by

no test coverage detected