mirror of
https://github.com/EchoVault/SugarDB.git
synced 2025-10-04 15:42:40 +08:00
isInCluster is not a private function
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -22,7 +22,7 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
func (server *EchoVault) IsInCluster() bool {
|
||||
func (server *EchoVault) isInCluster() bool {
|
||||
return server.Config.BootstrapCluster || server.Config.JoinAddr != ""
|
||||
}
|
||||
|
||||
|
@@ -127,7 +127,7 @@ func NewEchoVault(options ...func(echovault *EchoVault)) *EchoVault {
|
||||
option(echovault)
|
||||
}
|
||||
|
||||
if echovault.IsInCluster() {
|
||||
if echovault.isInCluster() {
|
||||
echovault.raft = raft.NewRaft(raft.Opts{
|
||||
Config: echovault.Config,
|
||||
EchoVault: echovault,
|
||||
@@ -365,7 +365,7 @@ func (server *EchoVault) Start(ctx context.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
if server.IsInCluster() {
|
||||
if server.isInCluster() {
|
||||
// Initialise raft and memberlist
|
||||
server.raft.RaftInit(ctx)
|
||||
server.memberList.MemberListInit(ctx)
|
||||
@@ -374,7 +374,7 @@ func (server *EchoVault) Start(ctx context.Context) {
|
||||
}
|
||||
}
|
||||
|
||||
if !server.IsInCluster() {
|
||||
if !server.isInCluster() {
|
||||
server.initialiseCaches()
|
||||
// Restore from AOF by default if it's enabled
|
||||
if conf.RestoreAOF {
|
||||
@@ -402,7 +402,7 @@ func (server *EchoVault) TakeSnapshot() error {
|
||||
}
|
||||
|
||||
go func() {
|
||||
if server.IsInCluster() {
|
||||
if server.isInCluster() {
|
||||
// Handle snapshot in cluster mode
|
||||
if err := server.raft.TakeSnapshot(); err != nil {
|
||||
log.Println(err)
|
||||
@@ -455,7 +455,7 @@ func (server *EchoVault) RewriteAOF() error {
|
||||
}
|
||||
|
||||
func (server *EchoVault) ShutDown(ctx context.Context) {
|
||||
if server.IsInCluster() {
|
||||
if server.isInCluster() {
|
||||
server.raft.RaftShutdown(ctx)
|
||||
server.memberList.MemberListShutdown(ctx)
|
||||
}
|
||||
|
@@ -99,19 +99,19 @@ func (server *EchoVault) KeyExists(ctx context.Context, key string) bool {
|
||||
}
|
||||
|
||||
if entry.ExpireAt != (time.Time{}) && entry.ExpireAt.Before(time.Now()) {
|
||||
if !server.IsInCluster() {
|
||||
if !server.isInCluster() {
|
||||
// If in standalone mode, delete the key directly.
|
||||
err := server.DeleteKey(ctx, key)
|
||||
if err != nil {
|
||||
log.Printf("keyExists: %+v\n", err)
|
||||
}
|
||||
} else if server.IsInCluster() && server.raft.IsRaftLeader() {
|
||||
} else if server.isInCluster() && server.raft.IsRaftLeader() {
|
||||
// If we're in a raft cluster, and we're the leader, send command to delete the key in the cluster.
|
||||
err := server.raftApplyDeleteKey(ctx, key)
|
||||
if err != nil {
|
||||
log.Printf("keyExists: %+v\n", err)
|
||||
}
|
||||
} else if server.IsInCluster() && !server.raft.IsRaftLeader() {
|
||||
} else if server.isInCluster() && !server.raft.IsRaftLeader() {
|
||||
// Forward message to leader to initiate key deletion.
|
||||
// This is always called regardless of ForwardCommand config value
|
||||
// because we always want to remove expired keys.
|
||||
@@ -179,7 +179,7 @@ func (server *EchoVault) SetValue(ctx context.Context, key string, value interfa
|
||||
log.Printf("SetValue error: %+v\n", err)
|
||||
}
|
||||
|
||||
if !server.IsInCluster() {
|
||||
if !server.isInCluster() {
|
||||
server.SnapshotEngine.IncrementChangeCount()
|
||||
}
|
||||
|
||||
@@ -290,7 +290,7 @@ func (server *EchoVault) DeleteKey(ctx context.Context, key string) error {
|
||||
// depending on whether an LFU or LRU strategy was used.
|
||||
func (server *EchoVault) updateKeyInCache(ctx context.Context, key string) error {
|
||||
// Only update cache when in standalone mode or when raft leader
|
||||
if server.IsInCluster() || (server.IsInCluster() && !server.raft.IsRaftLeader()) {
|
||||
if server.isInCluster() || (server.isInCluster() && !server.raft.IsRaftLeader()) {
|
||||
return nil
|
||||
}
|
||||
// If max memory is 0, there's no max so no need to update caches
|
||||
@@ -361,12 +361,12 @@ func (server *EchoVault) adjustMemoryUsage(ctx context.Context) error {
|
||||
}
|
||||
|
||||
key := server.lfuCache.cache.Pop().(string)
|
||||
if !server.IsInCluster() {
|
||||
if !server.isInCluster() {
|
||||
// If in standalone mode, directly delete the key
|
||||
if err := server.DeleteKey(ctx, key); err != nil {
|
||||
return fmt.Errorf("adjustMemoryUsage -> LFU cache eviction: %+v", err)
|
||||
}
|
||||
} else if server.IsInCluster() && server.raft.IsRaftLeader() {
|
||||
} else if server.isInCluster() && server.raft.IsRaftLeader() {
|
||||
// If in raft cluster, send command to delete key from cluster
|
||||
if err := server.raftApplyDeleteKey(ctx, key); err != nil {
|
||||
return fmt.Errorf("adjustMemoryUsage -> LFU cache eviction: %+v", err)
|
||||
@@ -393,12 +393,12 @@ func (server *EchoVault) adjustMemoryUsage(ctx context.Context) error {
|
||||
}
|
||||
|
||||
key := server.lruCache.cache.Pop().(string)
|
||||
if !server.IsInCluster() {
|
||||
if !server.isInCluster() {
|
||||
// If in standalone mode, directly delete the key.
|
||||
if err := server.DeleteKey(ctx, key); err != nil {
|
||||
return fmt.Errorf("adjustMemoryUsage -> LRU cache eviction: %+v", err)
|
||||
}
|
||||
} else if server.IsInCluster() && server.raft.IsRaftLeader() {
|
||||
} else if server.isInCluster() && server.raft.IsRaftLeader() {
|
||||
// If in cluster mode and the node is a cluster leader,
|
||||
// send command to delete the key from the cluster.
|
||||
if err := server.raftApplyDeleteKey(ctx, key); err != nil {
|
||||
@@ -427,12 +427,12 @@ func (server *EchoVault) adjustMemoryUsage(ctx context.Context) error {
|
||||
idx := rand.Intn(len(server.keyLocks))
|
||||
for key, _ := range server.keyLocks {
|
||||
if idx == 0 {
|
||||
if !server.IsInCluster() {
|
||||
if !server.isInCluster() {
|
||||
// If in standalone mode, directly delete the key
|
||||
if err := server.DeleteKey(ctx, key); err != nil {
|
||||
return fmt.Errorf("adjustMemoryUsage -> all keys random: %+v", err)
|
||||
}
|
||||
} else if server.IsInCluster() && server.raft.IsRaftLeader() {
|
||||
} else if server.isInCluster() && server.raft.IsRaftLeader() {
|
||||
if err := server.raftApplyDeleteKey(ctx, key); err != nil {
|
||||
return fmt.Errorf("adjustMemoryUsage -> all keys random: %+v", err)
|
||||
}
|
||||
@@ -458,12 +458,12 @@ func (server *EchoVault) adjustMemoryUsage(ctx context.Context) error {
|
||||
key := server.keysWithExpiry.keys[idx]
|
||||
server.keysWithExpiry.rwMutex.RUnlock()
|
||||
|
||||
if !server.IsInCluster() {
|
||||
if !server.isInCluster() {
|
||||
// If in standalone mode, directly delete the key
|
||||
if err := server.DeleteKey(ctx, key); err != nil {
|
||||
return fmt.Errorf("adjustMemoryUsage -> volatile keys random: %+v", err)
|
||||
}
|
||||
} else if server.IsInCluster() && server.raft.IsRaftLeader() {
|
||||
} else if server.isInCluster() && server.raft.IsRaftLeader() {
|
||||
if err := server.raftApplyDeleteKey(ctx, key); err != nil {
|
||||
return fmt.Errorf("adjustMemoryUsage -> volatile keys randome: %+v", err)
|
||||
}
|
||||
@@ -489,7 +489,7 @@ func (server *EchoVault) adjustMemoryUsage(ctx context.Context) error {
|
||||
// This function is only executed in standalone mode or by the raft cluster leader.
|
||||
func (server *EchoVault) evictKeysWithExpiredTTL(ctx context.Context) error {
|
||||
// Only execute this if we're in standalone mode, or raft cluster leader.
|
||||
if server.IsInCluster() && !server.raft.IsRaftLeader() {
|
||||
if server.isInCluster() && !server.raft.IsRaftLeader() {
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -536,11 +536,11 @@ func (server *EchoVault) evictKeysWithExpiredTTL(ctx context.Context) error {
|
||||
// Delete the expired key
|
||||
deletedCount += 1
|
||||
server.KeyRUnlock(ctx, k)
|
||||
if !server.IsInCluster() {
|
||||
if !server.isInCluster() {
|
||||
if err := server.DeleteKey(ctx, k); err != nil {
|
||||
return fmt.Errorf("evictKeysWithExpiredTTL -> standalone delete: %+v", err)
|
||||
}
|
||||
} else if server.IsInCluster() && server.raft.IsRaftLeader() {
|
||||
} else if server.isInCluster() && server.raft.IsRaftLeader() {
|
||||
if err := server.raftApplyDeleteKey(ctx, k); err != nil {
|
||||
return fmt.Errorf("evictKeysWithExpiredTTL -> cluster delete: %+v", err)
|
||||
}
|
||||
|
@@ -83,7 +83,7 @@ func (server *EchoVault) handleCommand(ctx context.Context, message []byte, conn
|
||||
}
|
||||
}
|
||||
|
||||
if !server.IsInCluster() || !synchronize {
|
||||
if !server.isInCluster() || !synchronize {
|
||||
res, err := handler(ctx, cmd, server, conn)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
Reference in New Issue
Block a user