Skip to content

Commit 200810a

Browse files
committed
sqlstats: remove move persistedsqlstats controller
Let's remove this controller struct and just use the PersistedSQLStats provider directly for clarity. Epic: none Release note: None
1 parent 647a27c commit 200810a

File tree

13 files changed

+86
-138
lines changed

13 files changed

+86
-138
lines changed

pkg/ccl/serverccl/diagnosticsccl/reporter_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ func TestTenantReport(t *testing.T) {
6868
setupCluster(t, tenantDB)
6969

7070
// Clear the SQL stat pool before getting diagnostics.
71-
rt.server.SQLServer().(*sql.Server).GetSQLStatsController().ResetLocalSQLStats(ctx)
71+
require.NoError(t, rt.server.SQLServer().(*sql.Server).GetLocalSQLStatsProvider().Reset(ctx))
7272
reporter.ReportDiagnostics(ctx)
7373

7474
require.Equal(t, 1, rt.diagServer.NumRequests())
@@ -171,7 +171,7 @@ func TestServerReport(t *testing.T) {
171171

172172
node := rt.server.MetricsRecorder().GenerateNodeStatus(ctx)
173173
// Clear the SQL stat pool before getting diagnostics.
174-
rt.server.SQLServer().(*sql.Server).GetSQLStatsController().ResetLocalSQLStats(ctx)
174+
require.NoError(t, rt.server.SQLServer().(*sql.Server).GetLocalSQLStatsProvider().Reset(ctx))
175175
rt.server.DiagnosticsReporter().(*diagnostics.Reporter).ReportDiagnostics(ctx)
176176

177177
keyCounts := make(map[roachpb.StoreID]int64)
@@ -495,7 +495,7 @@ func TestUsageQuantization(t *testing.T) {
495495
ts := s.ApplicationLayer()
496496

497497
// Flush the SQL stat pool.
498-
ts.SQLServer().(*sql.Server).GetSQLStatsController().ResetLocalSQLStats(ctx)
498+
require.NoError(t, ts.SQLServer().(*sql.Server).GetLocalSQLStatsProvider().Reset(ctx))
499499

500500
// Collect a round of statistics.
501501
ts.DiagnosticsReporter().(*diagnostics.Reporter).ReportDiagnostics(ctx)

pkg/server/application_api/stats_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ CREATE TABLE t.test (x INT PRIMARY KEY);
6363
sqlServer := s.SQLServer().(*sql.Server)
6464

6565
// Flush stats at the beginning of the test.
66-
sqlServer.GetSQLStatsController().ResetLocalSQLStats(ctx)
66+
require.NoError(t, sqlServer.GetLocalSQLStatsProvider().Reset(ctx))
6767
sqlServer.GetReportedSQLStatsController().ResetLocalSQLStats(ctx)
6868

6969
// Run some queries mixed with diagnostics, and ensure that the statistics
@@ -213,7 +213,7 @@ func TestSQLStatCollection(t *testing.T) {
213213

214214
// Reset the SQL statistics, which will dump stats into the
215215
// reported statistics pool.
216-
sqlServer.GetSQLStatsController().ResetLocalSQLStats(ctx)
216+
require.NoError(t, sqlServer.GetLocalSQLStatsProvider().Reset(ctx))
217217

218218
// Query the reported statistics.
219219
stats, err = sqlServer.GetScrubbedReportingStats(ctx, 1000, true)
@@ -271,7 +271,7 @@ func TestSQLStatCollection(t *testing.T) {
271271
}
272272

273273
// Flush the SQL stats again.
274-
sqlServer.GetSQLStatsController().ResetLocalSQLStats(ctx)
274+
require.NoError(t, sqlServer.GetLocalSQLStatsProvider().Reset(ctx))
275275

276276
// Find our statement stat from the reported stats pool.
277277
stats, err = sqlServer.GetScrubbedReportingStats(ctx, 1000, true)
@@ -396,7 +396,7 @@ func TestScrubbedReportingStatsLimit(t *testing.T) {
396396
sqlRunner := sqlutils.MakeSQLRunner(sqlDB)
397397
sqlServer := srv.ApplicationLayer().SQLServer().(*sql.Server)
398398
// Flush stats at the beginning of the test.
399-
sqlServer.GetSQLStatsController().ResetLocalSQLStats(ctx)
399+
require.NoError(t, sqlServer.GetLocalSQLStatsProvider().Reset(ctx))
400400
sqlServer.GetReportedSQLStatsController().ResetLocalSQLStats(ctx)
401401

402402
hashedAppName := "hashed app name"
@@ -409,13 +409,13 @@ func TestScrubbedReportingStatsLimit(t *testing.T) {
409409
sqlRunner.Exec(t, `DELETE FROM t.test WHERE x=5`)
410410

411411
// verify that with low limit, number of stats is within that limit
412-
sqlServer.GetSQLStatsController().ResetLocalSQLStats(ctx)
412+
require.NoError(t, sqlServer.GetLocalSQLStatsProvider().Reset(ctx))
413413
stats, err := sqlServer.GetScrubbedReportingStats(ctx, 5, true)
414414
require.NoError(t, err)
415415
require.LessOrEqual(t, len(stats), 5)
416416

417417
// verify that with high limit, the number of queries is as much as the above
418-
sqlServer.GetSQLStatsController().ResetLocalSQLStats(ctx)
418+
require.NoError(t, sqlServer.GetLocalSQLStatsProvider().Reset(ctx))
419419
stats, err = sqlServer.GetScrubbedReportingStats(ctx, 1000, true)
420420
require.NoError(t, err)
421421
require.GreaterOrEqual(t, len(stats), 7)

pkg/server/server_sql.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1146,7 +1146,7 @@ func newSQLServer(ctx context.Context, cfg sqlServerArgs) (*SQLServer, error) {
11461146
execCfg,
11471147
)
11481148

1149-
distSQLServer.ServerConfig.SQLStatsController = pgServer.SQLServer.GetSQLStatsController()
1149+
distSQLServer.ServerConfig.SQLStatsController = pgServer.SQLServer.GetSQLStatsProvider()
11501150
distSQLServer.ServerConfig.SchemaTelemetryController = pgServer.SQLServer.GetSchemaTelemetryController()
11511151
distSQLServer.ServerConfig.IndexUsageStatsController = pgServer.SQLServer.GetIndexUsageStatsController()
11521152

pkg/server/sql_stats.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,12 +89,13 @@ func (s *statusServer) ResetSQLStats(
8989
}
9090

9191
response := &serverpb.ResetSQLStatsResponse{}
92-
controller := s.sqlServer.pgServer.SQLServer.GetSQLStatsController()
92+
localSQLStats := s.sqlServer.pgServer.SQLServer.GetLocalSQLStatsProvider()
93+
persistedSQLStats := s.sqlServer.pgServer.SQLServer.GetSQLStatsProvider()
9394

94-
// If we need to reset persisted stats, we delegate to SQLStatsController,
95+
// If we need to reset persisted stats, we delegate to persisted sql stats,
9596
// which will trigger a system table truncation and RPC fanout under the hood.
9697
if req.ResetPersistedStats {
97-
if err := controller.ResetClusterSQLStats(ctx); err != nil {
98+
if err := persistedSQLStats.ResetClusterSQLStats(ctx); err != nil {
9899
return nil, err
99100
}
100101

@@ -113,8 +114,8 @@ func (s *statusServer) ResetSQLStats(
113114
return nil, status.Error(codes.InvalidArgument, err.Error())
114115
}
115116
if local {
116-
controller.ResetLocalSQLStats(ctx)
117-
return response, nil
117+
err := localSQLStats.Reset(ctx)
118+
return response, err
118119
}
119120
status, err := s.dialNode(ctx, requestedNodeID)
120121
if err != nil {

pkg/sql/conn_executor.go

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -340,9 +340,6 @@ type Server struct {
340340
// node. Newly collected statistics flow into localSqlStats.
341341
localSqlStats *sslocal.SQLStats
342342

343-
// sqlStatsController is the control-plane interface for sqlStats.
344-
sqlStatsController *persistedsqlstats.Controller
345-
346343
// sqlStatsIngester provides the interface to consume stats about a sql execution.
347344
sqlStatsIngester *sslocal.SQLStatsIngester
348345

@@ -507,6 +504,7 @@ func NewServer(cfg *ExecutorConfig, pool *mon.BytesMonitor) *Server {
507504
ClusterID: s.cfg.NodeInfo.LogicalClusterID,
508505
SQLIDContainer: cfg.NodeInfo.NodeID,
509506
JobRegistry: s.cfg.JobRegistry,
507+
FanoutServer: cfg.SQLStatusServer,
510508
Knobs: cfg.SQLStatsTestingKnobs,
511509
FlushesSuccessful: serverMetrics.StatsMetrics.SQLStatsFlushesSuccessful,
512510
FlushDoneSignalsIgnored: serverMetrics.StatsMetrics.SQLStatsFlushDoneSignalsIgnored,
@@ -516,7 +514,6 @@ func NewServer(cfg *ExecutorConfig, pool *mon.BytesMonitor) *Server {
516514
}, memSQLStats)
517515

518516
s.sqlStats = persistedSQLStats
519-
s.sqlStatsController = persistedSQLStats.GetController(cfg.SQLStatusServer)
520517
schemaTelemetryIEMonitor := MakeInternalExecutorMemMonitor(MemoryMetrics{}, s.GetExecutorConfig().Settings)
521518
schemaTelemetryIEMonitor.StartNoReserved(context.Background(), s.GetBytesMonitor())
522519
s.schemaTelemetryController = schematelemetrycontroller.NewController(
@@ -700,12 +697,6 @@ func (s *Server) Start(ctx context.Context, stopper *stop.Stopper) {
700697
s.txnIDCache.Start(ctx, stopper)
701698
}
702699

703-
// GetSQLStatsController returns the persistedsqlstats.Controller for current
704-
// sql.Server's SQL Stats.
705-
func (s *Server) GetSQLStatsController() *persistedsqlstats.Controller {
706-
return s.sqlStatsController
707-
}
708-
709700
// GetSchemaTelemetryController returns the schematelemetryschedule.Controller
710701
// for current sql.Server's schema telemetry.
711702
func (s *Server) GetSchemaTelemetryController() *schematelemetrycontroller.Controller {
@@ -3840,7 +3831,7 @@ func (ex *connExecutor) initEvalCtx(ctx context.Context, evalCtx *extendedEvalCo
38403831
SessionDataStack: ex.sessionDataStack,
38413832
ReCache: ex.server.reCache,
38423833
ToCharFormatCache: ex.server.toCharFormatCache,
3843-
SQLStatsController: ex.server.sqlStatsController,
3834+
SQLStatsController: ex.server.sqlStats,
38443835
SchemaTelemetryController: ex.server.schemaTelemetryController,
38453836
IndexUsageStatsController: ex.server.indexUsageStatsController,
38463837
ConsistencyChecker: p.execCfg.ConsistencyChecker,

pkg/sql/planner.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -497,17 +497,14 @@ func internalExtendedEvalCtx(
497497
evalContextTestingKnobs := execCfg.EvalContextTestingKnobs
498498

499499
var indexUsageStats *idxusage.LocalIndexUsageStats
500-
var sqlStatsController eval.SQLStatsController
501500
var schemaTelemetryController eval.SchemaTelemetryController
502501
var indexUsageStatsController eval.IndexUsageStatsController
503502
var sqlStatsProvider *persistedsqlstats.PersistedSQLStats
504503
var localSqlStatsProvider *sslocal.SQLStats
505504
if ief := execCfg.InternalDB; ief != nil {
506505
if ief.server != nil {
507506
indexUsageStats = ief.server.indexUsageStats
508-
sqlStatsController = ief.server.sqlStatsController
509507
schemaTelemetryController = ief.server.schemaTelemetryController
510-
indexUsageStatsController = ief.server.indexUsageStatsController
511508
sqlStatsProvider = ief.server.sqlStats
512509
localSqlStatsProvider = ief.server.localSqlStats
513510
} else {
@@ -517,7 +514,6 @@ func internalExtendedEvalCtx(
517514
indexUsageStats = idxusage.NewLocalIndexUsageStats(&idxusage.Config{
518515
Setting: execCfg.Settings,
519516
})
520-
sqlStatsController = &persistedsqlstats.Controller{}
521517
schemaTelemetryController = &schematelemetrycontroller.Controller{}
522518
indexUsageStatsController = &idxusage.Controller{}
523519
sqlStatsProvider = &persistedsqlstats.PersistedSQLStats{}
@@ -534,7 +530,7 @@ func internalExtendedEvalCtx(
534530
TestingKnobs: evalContextTestingKnobs,
535531
StmtTimestamp: stmtTimestamp,
536532
TxnTimestamp: txnTimestamp,
537-
SQLStatsController: sqlStatsController,
533+
SQLStatsController: sqlStatsProvider,
538534
SchemaTelemetryController: schemaTelemetryController,
539535
IndexUsageStatsController: indexUsageStatsController,
540536
ConsistencyChecker: execCfg.ConsistencyChecker,

pkg/sql/sqlstats/persistedsqlstats/BUILD.bazel

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ go_library(
88
"cluster_settings.go",
99
"compaction_exec.go",
1010
"compaction_scheduling.go",
11-
"controller.go",
1211
"flush.go",
1312
"provider.go",
1413
"scheduled_job_monitor.go",

pkg/sql/sqlstats/persistedsqlstats/bench_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,6 @@ func BenchmarkSqlStatsMaxFlushTime(b *testing.B) {
385385

386386
sqlStats := s.SQLServer().(*sql.Server).GetLocalSQLStatsProvider()
387387
pss := s.SQLServer().(*sql.Server).GetSQLStatsProvider()
388-
controller := s.SQLServer().(*sql.Server).GetSQLStatsController()
389388
stmtFingerprintLimit := sqlstats.MaxMemSQLStatsStmtFingerprints.Get(&s.ClusterSettings().SV)
390389
txnFingerprintLimit := sqlstats.MaxMemSQLStatsTxnFingerprints.Get(&s.ClusterSettings().SV)
391390

@@ -435,7 +434,7 @@ func BenchmarkSqlStatsMaxFlushTime(b *testing.B) {
435434
b.Run(fmt.Sprintf("single-application/writes=insert/%d-fingerprints", totalFingerprints), func(b *testing.B) {
436435
b.StopTimer()
437436
for i := 0; i < b.N; i++ {
438-
require.NoError(b, controller.ResetClusterSQLStats(ctx))
437+
require.NoError(b, pss.ResetClusterSQLStats(ctx))
439438
fillBenchAppMemStats()
440439
b.StartTimer()
441440
require.True(b, pss.MaybeFlush(ctx, s.AppStopper()))

pkg/sql/sqlstats/persistedsqlstats/controller.go

Lines changed: 0 additions & 90 deletions
This file was deleted.

pkg/sql/sqlstats/persistedsqlstats/controller_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,7 @@ func TestPersistedSQLStatsReset(t *testing.T) {
8787
checkInsertedTxnStats(t, appName, observer, expectedStmtFingerprintToFingerprintID)
8888

8989
// Resets cluster wide SQL stats.
90-
sqlStatsController := server.SQLServer().(*sql.Server).GetSQLStatsController()
91-
require.NoError(t, sqlStatsController.ResetClusterSQLStats(ctx))
90+
require.NoError(t, sqlStats.ResetClusterSQLStats(ctx))
9291

9392
var count int
9493
observer.QueryRow(t,

0 commit comments

Comments
 (0)