You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[*] optimize maintenance tasks in Postgres sink, closes#786
From now `admin.config` holds information about last successful
operation. Maintenance routines will check if any other instance
already processed it before starting it's own.
// due to metrics deletion the listing can go out of sync (a trigger not really wanted)
542
-
sqlGetAdvisoryLock:=`SELECT pg_try_advisory_lock(1571543679778230000) AS have_lock`// 1571543679778230000 is just a random bigint
543
593
sqlTopLevelMetrics:=`SELECT table_name FROM admin.get_top_level_metric_tables()`
544
-
sqlDistinct:=`
545
-
WITH RECURSIVE t(dbname) AS (
594
+
sqlDistinct:=`WITH RECURSIVE t(dbname) AS (
546
595
SELECT MIN(dbname) AS dbname FROM %s
547
596
UNION
548
597
SELECT (SELECT MIN(dbname) FROM %s WHERE dbname > t.dbname) FROM t )
549
598
SELECT dbname FROM t WHERE dbname NOTNULL ORDER BY 1`
550
599
sqlDelete:=`DELETE FROM admin.all_distinct_dbname_metrics WHERE NOT dbname = ANY($1) and metric = $2`
551
600
sqlDeleteAll:=`DELETE FROM admin.all_distinct_dbname_metrics WHERE metric = $1`
552
-
sqlAdd:=`
553
-
INSERT INTO admin.all_distinct_dbname_metrics SELECT u, $2 FROM (select unnest($1::text[]) as u) x
601
+
sqlAdd:=`INSERT INTO admin.all_distinct_dbname_metrics SELECT u, $2 FROM (select unnest($1::text[]) as u) x
554
602
WHERE NOT EXISTS (select * from admin.all_distinct_dbname_metrics where dbname = u and metric = $2)
555
603
RETURNING *`
556
604
557
605
for {
558
606
select {
559
607
case<-pgw.ctx.Done():
560
608
return
561
-
case<-time.After(time.Hour*24):
609
+
case<-time.After(sourcesMaintenanceInterval):
562
610
}
563
-
varlockbool
564
-
logger.Infof("Trying to get metricsDb listing maintainer advisory lock...") // to only have one "maintainer" in case of a "push" setup, as can get costly
0 commit comments