Only attempt monitor storage creation on leader

Since only the leader can create it, the system might as well only
attempt creation on the leader.
pull/4333/head
Philip O'Toole 2015-10-05 15:37:59 -07:00
parent 62fab49205
commit 899e1cc070
2 changed files with 3 additions and 1 deletions

View File

@ -88,6 +88,7 @@ type Monitor struct {
ClusterID() (uint64, error)
NodeID() uint64
WaitForLeader(d time.Duration) error
IsLeader() bool
CreateDatabaseIfNotExists(name string) (*meta.DatabaseInfo, error)
CreateRetentionPolicyIfNotExists(database string, rpi *meta.RetentionPolicyInfo) (*meta.RetentionPolicyInfo, error)
SetDefaultRetentionPolicy(database, name string) error
@ -297,7 +298,7 @@ func (m *Monitor) Diagnostics() (map[string]*Diagnostic, error) {
// createInternalStorage ensures the internal storage has been created.
func (m *Monitor) createInternalStorage() {
if m.storeCreated {
if !m.MetaStore.IsLeader() || m.storeCreated {
return
}

View File

@ -42,6 +42,7 @@ type mockMetastore struct{}
func (m *mockMetastore) ClusterID() (uint64, error) { return 1, nil }
func (m *mockMetastore) NodeID() uint64 { return 2 }
func (m *mockMetastore) WaitForLeader(d time.Duration) error { return nil }
func (m *mockMetastore) IsLeader() bool { return true }
func (m *mockMetastore) SetDefaultRetentionPolicy(database, name string) error { return nil }
func (m *mockMetastore) DropRetentionPolicy(database, name string) error { return nil }
func (m *mockMetastore) CreateDatabaseIfNotExists(name string) (*meta.DatabaseInfo, error) {