// NewExecutor creates an Executor and registers a callback on the // system config. func NewExecutor(db client.DB, gossip *gossip.Gossip, leaseMgr *LeaseManager, metaRegistry *metric.Registry, stopper *stop.Stopper) *Executor { exec := &Executor{ db: db, reCache: parser.NewRegexpCache(512), leaseMgr: leaseMgr, latency: metaRegistry.Latency("sql.latency"), } exec.systemConfigCond = sync.NewCond(&exec.systemConfigMu) gossipUpdateC := gossip.RegisterSystemConfigChannel() stopper.RunWorker(func() { for { select { case <-gossipUpdateC: cfg := gossip.GetSystemConfig() exec.updateSystemConfig(cfg) case <-stopper.ShouldStop(): return } } }) return exec }
// NewExecutor creates an Executor and registers a callback on the // system config. func NewExecutor(ctx ExecutorContext, stopper *stop.Stopper, registry *metric.Registry) *Executor { exec := &Executor{ ctx: ctx, reCache: parser.NewRegexpCache(512), registry: registry, latency: registry.Latency("latency"), txnBeginCount: registry.Counter("txn.begin.count"), txnCommitCount: registry.Counter("txn.commit.count"), txnAbortCount: registry.Counter("txn.abort.count"), txnRollbackCount: registry.Counter("txn.rollback.count"), selectCount: registry.Counter("select.count"), updateCount: registry.Counter("update.count"), insertCount: registry.Counter("insert.count"), deleteCount: registry.Counter("delete.count"), ddlCount: registry.Counter("ddl.count"), miscCount: registry.Counter("misc.count"), } exec.systemConfigCond = sync.NewCond(exec.systemConfigMu.RLocker()) gossipUpdateC := ctx.Gossip.RegisterSystemConfigChannel() stopper.RunWorker(func() { for { select { case <-gossipUpdateC: cfg, _ := ctx.Gossip.GetSystemConfig() exec.updateSystemConfig(cfg) case <-stopper.ShouldStop(): return } } }) return exec }
// NewExecutor creates an Executor and registers a callback on the // system config. func NewExecutor(db client.DB, gossip *gossip.Gossip, leaseMgr *LeaseManager, stopper *stop.Stopper) *Executor { registry := metric.NewRegistry() exec := &Executor{ db: db, reCache: parser.NewRegexpCache(512), leaseMgr: leaseMgr, registry: registry, latency: registry.Latency("latency"), txnBeginCount: registry.Counter("transaction.begincount"), selectCount: registry.Counter("select.count"), updateCount: registry.Counter("update.count"), insertCount: registry.Counter("insert.count"), deleteCount: registry.Counter("delete.count"), ddlCount: registry.Counter("ddl.count"), miscCount: registry.Counter("misc.count"), } exec.systemConfigCond = sync.NewCond(&exec.systemConfigMu) gossipUpdateC := gossip.RegisterSystemConfigChannel() stopper.RunWorker(func() { for { select { case <-gossipUpdateC: cfg := gossip.GetSystemConfig() exec.updateSystemConfig(cfg) case <-stopper.ShouldStop(): return } } }) return exec }
// NewDistSQLServer instantiates a DistSQLServer. func NewDistSQLServer(ctx DistSQLServerContext) *DistSQLServerImpl { ds := &DistSQLServerImpl{ ctx: ctx, evalCtx: parser.EvalContext{ReCache: parser.NewRegexpCache(512)}, } return ds }
// newExecutor creates an Executor and registers a callback on the // system config. func newExecutor(db client.DB, gossip *gossip.Gossip, clock *hlc.Clock) *Executor { exec := &Executor{ db: db, reCache: parser.NewRegexpCache(512), } gossip.RegisterSystemConfigCallback(exec.updateSystemConfig) return exec }
// NewServer instantiates a DistSQLServer. func NewServer(ctx ServerContext) *ServerImpl { ds := &ServerImpl{ ctx: ctx, evalCtx: parser.EvalContext{ ReCache: parser.NewRegexpCache(512), }, } return ds }
// newExecutor creates an Executor and registers a callback on the // system config. func newExecutor(db client.DB, gossip *gossip.Gossip, leaseMgr *LeaseManager) *Executor { exec := &Executor{ db: db, reCache: parser.NewRegexpCache(512), leaseMgr: leaseMgr, } exec.systemConfigCond = sync.NewCond(&exec.systemConfigMu) gossip.RegisterSystemConfigCallback(exec.updateSystemConfig) return exec }
// NewServer instantiates a DistSQLServer. func NewServer(cfg ServerConfig) *ServerImpl { ds := &ServerImpl{ ServerConfig: cfg, evalCtx: parser.EvalContext{ ReCache: parser.NewRegexpCache(512), }, flowRegistry: makeFlowRegistry(), } return ds }
// NewExecutor creates an Executor and registers a callback on the // system config. func NewExecutor(ctx ExecutorContext, stopper *stop.Stopper, registry *metric.Registry) *Executor { exec := &Executor{ ctx: ctx, reCache: parser.NewRegexpCache(512), registry: registry, latency: registry.Latency(MetricLatencyName), txnBeginCount: registry.Counter(MetricTxnBeginName), txnCommitCount: registry.Counter(MetricTxnCommitName), txnAbortCount: registry.Counter(MetricTxnAbortName), txnRollbackCount: registry.Counter(MetricTxnRollbackName), selectCount: registry.Counter(MetricSelectName), updateCount: registry.Counter(MetricUpdateName), insertCount: registry.Counter(MetricInsertName), deleteCount: registry.Counter(MetricDeleteName), ddlCount: registry.Counter(MetricDdlName), miscCount: registry.Counter(MetricMiscName), queryCount: registry.Counter(MetricQueryName), } exec.systemConfigCond = sync.NewCond(exec.systemConfigMu.RLocker()) gossipUpdateC := ctx.Gossip.RegisterSystemConfigChannel() stopper.RunWorker(func() { for { select { case <-gossipUpdateC: cfg, _ := ctx.Gossip.GetSystemConfig() exec.updateSystemConfig(cfg) case <-stopper.ShouldStop(): return } } }) return exec }
// NewExecutor creates an Executor and registers a callback on the // system config. func NewExecutor(cfg ExecutorConfig, stopper *stop.Stopper) *Executor { exec := &Executor{ cfg: cfg, reCache: parser.NewRegexpCache(512), Latency: metric.NewLatency(MetaLatency), TxnBeginCount: metric.NewCounter(MetaTxnBegin), TxnCommitCount: metric.NewCounter(MetaTxnCommit), TxnAbortCount: metric.NewCounter(MetaTxnAbort), TxnRollbackCount: metric.NewCounter(MetaTxnRollback), SelectCount: metric.NewCounter(MetaSelect), UpdateCount: metric.NewCounter(MetaUpdate), InsertCount: metric.NewCounter(MetaInsert), DeleteCount: metric.NewCounter(MetaDelete), DdlCount: metric.NewCounter(MetaDdl), MiscCount: metric.NewCounter(MetaMisc), QueryCount: metric.NewCounter(MetaQuery), } exec.systemConfigCond = sync.NewCond(exec.systemConfigMu.RLocker()) gossipUpdateC := cfg.Gossip.RegisterSystemConfigChannel() stopper.RunWorker(func() { for { select { case <-gossipUpdateC: sysCfg, _ := cfg.Gossip.GetSystemConfig() exec.updateSystemConfig(sysCfg) case <-stopper.ShouldStop(): return } } }) return exec }