// Open runs the invalidation loop. func (rci *RowcacheInvalidator) Open(dbname string, mysqld *mysqlctl.Mysqld) { rp, err := mysqld.MasterPosition() if err != nil { panic(NewTabletError(FATAL, "Rowcache invalidator aborting: cannot determine replication position: %v", err)) } if mysqld.Cnf().BinLogPath == "" { panic(NewTabletError(FATAL, "Rowcache invalidator aborting: binlog path not specified")) } rci.dbname = dbname rci.mysqld = mysqld rci.SetPosition(rp) ok := rci.svm.Go(rci.run) if ok { log.Infof("Rowcache invalidator starting, dbname: %s, path: %s, position: %v", dbname, mysqld.Cnf().BinLogPath, rp) } else { log.Infof("Rowcache invalidator already running") } }