mirror of
https://github.com/EchoVault/SugarDB.git
synced 2025-10-06 16:36:54 +08:00
Moved all packages from /pkg directory to the root directory. Deleted /pkg directory. Pass keyspace functions to raft package instead of an EchoVault instance. This removes dependency on the echovault pakage from the raft package.
This commit is contained in:
@@ -16,9 +16,9 @@ package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/echovault/echovault/echovault"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/internal/config"
|
||||
"github.com/echovault/echovault/pkg/echovault"
|
||||
"log"
|
||||
"os"
|
||||
"os/signal"
|
||||
|
@@ -17,7 +17,7 @@ package echovault
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/pkg/types"
|
||||
"github.com/echovault/echovault/types"
|
||||
"strings"
|
||||
)
|
||||
|
@@ -20,6 +20,7 @@ import (
|
||||
"crypto/x509"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/internal/aof"
|
||||
"github.com/echovault/echovault/internal/clock"
|
||||
@@ -38,7 +39,6 @@ import (
|
||||
str "github.com/echovault/echovault/internal/modules/string"
|
||||
"github.com/echovault/echovault/internal/raft"
|
||||
"github.com/echovault/echovault/internal/snapshot"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"io"
|
||||
"log"
|
||||
"net"
|
||||
@@ -185,6 +185,10 @@ func NewEchoVault(options ...func(echovault *EchoVault)) (*EchoVault, error) {
|
||||
Config: echovault.config,
|
||||
EchoVault: echovault,
|
||||
GetCommand: echovault.getCommand,
|
||||
CreateKeyAndLock: echovault.CreateKeyAndLock,
|
||||
SetValue: echovault.SetValue,
|
||||
SetExpiry: echovault.SetExpiry,
|
||||
KeyUnlock: echovault.KeyUnlock,
|
||||
DeleteKey: echovault.DeleteKey,
|
||||
StartSnapshot: echovault.startSnapshot,
|
||||
FinishSnapshot: echovault.finishSnapshot,
|
@@ -18,8 +18,8 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"log"
|
||||
"math/rand"
|
||||
"runtime"
|
@@ -18,8 +18,8 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"net"
|
||||
"strings"
|
||||
)
|
@@ -19,8 +19,8 @@ import (
|
||||
"errors"
|
||||
"flag"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"log"
|
||||
"os"
|
||||
"path"
|
||||
|
@@ -1,7 +1,7 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"time"
|
||||
)
|
||||
|
||||
|
@@ -20,9 +20,9 @@ import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/internal/config"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"github.com/gobwas/glob"
|
||||
"gopkg.in/yaml.v3"
|
||||
"log"
|
||||
|
@@ -18,8 +18,8 @@ import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"gopkg.in/yaml.v3"
|
||||
"log"
|
||||
"os"
|
||||
|
@@ -17,8 +17,8 @@ package admin
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"github.com/gobwas/glob"
|
||||
"slices"
|
||||
"strings"
|
||||
|
@@ -17,8 +17,8 @@ package connection
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
)
|
||||
|
||||
func handlePing(params internal.HandlerFuncParams) ([]byte, error) {
|
||||
|
@@ -17,8 +17,8 @@ package generic
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"log"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
@@ -16,8 +16,8 @@ package generic
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
)
|
||||
|
||||
func setKeyFunc(cmd []string) (internal.AccessKeys, error) {
|
||||
|
@@ -17,8 +17,8 @@ package hash
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"math/rand"
|
||||
"slices"
|
||||
"strconv"
|
||||
|
@@ -16,8 +16,8 @@ package hash
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
)
|
||||
|
||||
func hsetKeyFunc(cmd []string) (internal.AccessKeys, error) {
|
||||
|
@@ -17,8 +17,8 @@ package list
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"math"
|
||||
"slices"
|
||||
"strings"
|
||||
|
@@ -16,8 +16,8 @@ package list
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
)
|
||||
|
||||
func lpushKeyFunc(cmd []string) (internal.AccessKeys, error) {
|
||||
|
@@ -17,8 +17,8 @@ package pubsub
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"strings"
|
||||
)
|
||||
|
||||
|
@@ -17,8 +17,8 @@ package set
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"slices"
|
||||
"strings"
|
||||
)
|
||||
|
@@ -16,8 +16,8 @@ package set
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"slices"
|
||||
"strings"
|
||||
)
|
||||
|
@@ -18,8 +18,8 @@ import (
|
||||
"cmp"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"math"
|
||||
"slices"
|
||||
"strconv"
|
||||
|
@@ -16,8 +16,8 @@ package sorted_set
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"slices"
|
||||
"strings"
|
||||
)
|
||||
|
@@ -17,8 +17,8 @@ package str
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
)
|
||||
|
||||
func handleSetRange(params internal.HandlerFuncParams) ([]byte, error) {
|
||||
|
@@ -16,8 +16,8 @@ package str
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
)
|
||||
|
||||
func setRangeKeyFunc(cmd []string) (internal.AccessKeys, error) {
|
||||
|
@@ -20,19 +20,22 @@ import (
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/internal/config"
|
||||
"github.com/echovault/echovault/pkg/types"
|
||||
"github.com/hashicorp/raft"
|
||||
"io"
|
||||
"log"
|
||||
"net"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
type FSMOpts struct {
|
||||
Config config.Config
|
||||
EchoVault types.EchoVault
|
||||
GetState func() map[string]internal.KeyData
|
||||
GetCommand func(command string) (internal.Command, error)
|
||||
CreateKeyAndLock func(ctx context.Context, key string) (bool, error)
|
||||
SetValue func(ctx context.Context, key string, value interface{}) error
|
||||
SetExpiry func(ctx context.Context, key string, expire time.Time, touch bool)
|
||||
KeyUnlock func(ctx context.Context, key string)
|
||||
DeleteKey func(ctx context.Context, key string) error
|
||||
StartSnapshot func()
|
||||
FinishSnapshot func()
|
||||
@@ -154,14 +157,14 @@ func (fsm *FSM) Restore(snapshot io.ReadCloser) error {
|
||||
// Set state
|
||||
ctx := context.Background()
|
||||
for k, v := range internal.FilterExpiredKeys(data.State) {
|
||||
if _, err = fsm.options.EchoVault.CreateKeyAndLock(ctx, k); err != nil {
|
||||
if _, err = fsm.options.CreateKeyAndLock(ctx, k); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if err = fsm.options.EchoVault.SetValue(ctx, k, v.Value); err != nil {
|
||||
if err = fsm.options.SetValue(ctx, k, v.Value); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
fsm.options.EchoVault.SetExpiry(ctx, k, v.ExpireAt, false)
|
||||
fsm.options.EchoVault.KeyUnlock(ctx, k)
|
||||
fsm.options.SetExpiry(ctx, k, v.ExpireAt, false)
|
||||
fsm.options.KeyUnlock(ctx, k)
|
||||
}
|
||||
// Set latest snapshot milliseconds
|
||||
fsm.options.SetLatestSnapshotTime(data.LatestSnapshotMilliseconds)
|
||||
|
@@ -27,7 +27,7 @@ import (
|
||||
"path/filepath"
|
||||
"time"
|
||||
|
||||
"github.com/echovault/echovault/pkg/types"
|
||||
"github.com/echovault/echovault/types"
|
||||
"github.com/hashicorp/raft"
|
||||
raftboltdb "github.com/hashicorp/raft-boltdb"
|
||||
)
|
||||
@@ -35,6 +35,10 @@ import (
|
||||
type Opts struct {
|
||||
Config config.Config
|
||||
EchoVault types.EchoVault
|
||||
CreateKeyAndLock func(ctx context.Context, key string) (bool, error)
|
||||
SetValue func(ctx context.Context, key string, value interface{}) error
|
||||
SetExpiry func(ctx context.Context, key string, expire time.Time, touch bool)
|
||||
KeyUnlock func(ctx context.Context, key string)
|
||||
GetState func() map[string]internal.KeyData
|
||||
GetCommand func(command string) (internal.Command, error)
|
||||
DeleteKey func(ctx context.Context, key string) error
|
||||
@@ -114,9 +118,12 @@ func (r *Raft) RaftInit(ctx context.Context) {
|
||||
raftConfig,
|
||||
NewFSM(FSMOpts{
|
||||
Config: r.options.Config,
|
||||
EchoVault: r.options.EchoVault,
|
||||
GetState: r.options.GetState,
|
||||
GetCommand: r.options.GetCommand,
|
||||
CreateKeyAndLock: r.options.CreateKeyAndLock,
|
||||
SetValue: r.options.SetValue,
|
||||
SetExpiry: r.options.SetExpiry,
|
||||
KeyUnlock: r.options.KeyUnlock,
|
||||
DeleteKey: r.options.DeleteKey,
|
||||
StartSnapshot: r.options.StartSnapshot,
|
||||
FinishSnapshot: r.options.FinishSnapshot,
|
||||
|
@@ -20,7 +20,7 @@ import (
|
||||
"cmp"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"io"
|
||||
"log"
|
||||
"math/big"
|
||||
|
@@ -1,11 +0,0 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"github.com/echovault/echovault/internal/config"
|
||||
)
|
||||
|
||||
// DefaultConfig returns the default configuration.
|
||||
// This should be used when using EchoVault as an embedded library.
|
||||
func DefaultConfig() config.Config {
|
||||
return config.DefaultConfig()
|
||||
}
|
@@ -17,10 +17,10 @@ package acl
|
||||
import (
|
||||
"crypto/sha256"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/echovault"
|
||||
"github.com/echovault/echovault/internal/config"
|
||||
"github.com/echovault/echovault/internal/modules/acl"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"github.com/echovault/echovault/pkg/echovault"
|
||||
"github.com/tidwall/resp"
|
||||
"net"
|
||||
"reflect"
|
||||
|
@@ -18,10 +18,10 @@ import (
|
||||
"bytes"
|
||||
"context"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/echovault"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/internal/config"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"github.com/echovault/echovault/pkg/echovault"
|
||||
"github.com/tidwall/resp"
|
||||
"net"
|
||||
"reflect"
|
||||
|
@@ -18,10 +18,10 @@ import (
|
||||
"bytes"
|
||||
"context"
|
||||
"errors"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/echovault"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/internal/config"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"github.com/echovault/echovault/pkg/echovault"
|
||||
"github.com/tidwall/resp"
|
||||
"net"
|
||||
"reflect"
|
||||
|
@@ -16,10 +16,10 @@ package generic
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/echovault/echovault/echovault"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/internal/clock"
|
||||
"github.com/echovault/echovault/internal/config"
|
||||
"github.com/echovault/echovault/pkg/echovault"
|
||||
"reflect"
|
||||
"slices"
|
||||
"strings"
|
||||
|
@@ -19,11 +19,11 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/echovault"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/internal/clock"
|
||||
"github.com/echovault/echovault/internal/config"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"github.com/echovault/echovault/pkg/echovault"
|
||||
"github.com/tidwall/resp"
|
||||
"net"
|
||||
"reflect"
|
||||
|
@@ -16,8 +16,8 @@ package hash
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/echovault/echovault/echovault"
|
||||
"github.com/echovault/echovault/internal/config"
|
||||
"github.com/echovault/echovault/pkg/echovault"
|
||||
"reflect"
|
||||
"slices"
|
||||
"testing"
|
||||
|
@@ -19,10 +19,10 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/echovault"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/internal/config"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"github.com/echovault/echovault/pkg/echovault"
|
||||
"github.com/tidwall/resp"
|
||||
"net"
|
||||
"reflect"
|
||||
|
@@ -16,8 +16,8 @@ package list
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/echovault/echovault/echovault"
|
||||
"github.com/echovault/echovault/internal/config"
|
||||
"github.com/echovault/echovault/pkg/echovault"
|
||||
"reflect"
|
||||
"testing"
|
||||
)
|
||||
|
@@ -19,10 +19,10 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/echovault"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/internal/config"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"github.com/echovault/echovault/pkg/echovault"
|
||||
"github.com/tidwall/resp"
|
||||
"net"
|
||||
"reflect"
|
||||
|
@@ -18,11 +18,11 @@ import (
|
||||
"bytes"
|
||||
"context"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/echovault"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/internal/config"
|
||||
"github.com/echovault/echovault/internal/modules/pubsub"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"github.com/echovault/echovault/pkg/echovault"
|
||||
"github.com/tidwall/resp"
|
||||
"net"
|
||||
"reflect"
|
||||
|
@@ -16,9 +16,9 @@ package set
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/echovault/echovault/echovault"
|
||||
"github.com/echovault/echovault/internal/config"
|
||||
"github.com/echovault/echovault/internal/modules/set"
|
||||
"github.com/echovault/echovault/pkg/echovault"
|
||||
"reflect"
|
||||
"slices"
|
||||
"testing"
|
||||
|
@@ -19,11 +19,11 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/echovault"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/internal/config"
|
||||
"github.com/echovault/echovault/internal/modules/set"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"github.com/echovault/echovault/pkg/echovault"
|
||||
"github.com/tidwall/resp"
|
||||
"net"
|
||||
"reflect"
|
||||
|
@@ -16,10 +16,10 @@ package sorted_set
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/echovault/echovault/echovault"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/internal/config"
|
||||
ss "github.com/echovault/echovault/internal/modules/sorted_set"
|
||||
"github.com/echovault/echovault/pkg/echovault"
|
||||
"math"
|
||||
"reflect"
|
||||
"strconv"
|
||||
|
@@ -19,11 +19,11 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/echovault"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/internal/config"
|
||||
"github.com/echovault/echovault/internal/modules/sorted_set"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"github.com/echovault/echovault/pkg/echovault"
|
||||
"github.com/tidwall/resp"
|
||||
"math"
|
||||
"net"
|
||||
|
@@ -16,8 +16,8 @@ package str
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/echovault/echovault/echovault"
|
||||
"github.com/echovault/echovault/internal/config"
|
||||
"github.com/echovault/echovault/pkg/echovault"
|
||||
"testing"
|
||||
)
|
||||
|
||||
|
@@ -19,10 +19,10 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/echovault/echovault/constants"
|
||||
"github.com/echovault/echovault/echovault"
|
||||
"github.com/echovault/echovault/internal"
|
||||
"github.com/echovault/echovault/internal/config"
|
||||
"github.com/echovault/echovault/pkg/constants"
|
||||
"github.com/echovault/echovault/pkg/echovault"
|
||||
"github.com/tidwall/resp"
|
||||
"net"
|
||||
"reflect"
|
||||
|
Reference in New Issue
Block a user