forked from vitessio/vitess
-
Notifications
You must be signed in to change notification settings - Fork 0
/
controller.go
69 lines (50 loc) · 2.38 KB
/
controller.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// Copyright 2017, Google Inc. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package tabletserver
import (
"golang.org/x/net/context"
"github.com/youtube/vitess/go/vt/dbconfigs"
"github.com/youtube/vitess/go/vt/mysqlctl"
"github.com/youtube/vitess/go/vt/vttablet/queryservice"
"github.com/youtube/vitess/go/vt/vttablet/tabletserver/rules"
"github.com/youtube/vitess/go/vt/vttablet/tabletserver/schema"
querypb "github.com/youtube/vitess/go/vt/proto/query"
topodatapb "github.com/youtube/vitess/go/vt/proto/topodata"
)
// Controller defines the control interface for TabletServer.
type Controller interface {
// Register registers this query service with the RPC layer.
Register()
// AddStatusPart adds the status part to the status page
AddStatusPart()
// InitDBConfig sets up the db config vars.
InitDBConfig(querypb.Target, dbconfigs.DBConfigs, mysqlctl.MysqlDaemon) error
// SetServingType transitions the query service to the required serving type.
// Returns true if the state of QueryService or the tablet type changed.
SetServingType(tabletType topodatapb.TabletType, serving bool, alsoAllow []topodatapb.TabletType) (bool, error)
// EnterLameduck causes tabletserver to enter the lameduck state.
EnterLameduck()
// IsServing returns true if the query service is running
IsServing() bool
// IsHealthy returns the health status of the QueryService
IsHealthy() error
// ClearQueryPlanCache clears internal query plan cache
ClearQueryPlanCache()
// ReloadSchema makes the quey service reload its schema cache
ReloadSchema(ctx context.Context) error
// RegisterQueryRuleSource adds a query rule source
RegisterQueryRuleSource(ruleSource string)
// RegisterQueryRuleSource removes a query rule source
UnRegisterQueryRuleSource(ruleSource string)
// SetQueryRules sets the query rules for this QueryService
SetQueryRules(ruleSource string, qrs *rules.Rules) error
// QueryService returns the QueryService object used by this Controller
QueryService() queryservice.QueryService
// SchemaEngine returns the SchemaEngine object used by this Controller
SchemaEngine() *schema.Engine
// BroadcastHealth sends the current health to all listeners
BroadcastHealth(terTimestamp int64, stats *querypb.RealtimeStats)
}
// Ensure TabletServer satisfies Controller interface.
var _ Controller = (*TabletServer)(nil)