Skip to content

Commit

Permalink
remove badger keep in memory store only
Browse files Browse the repository at this point in the history
  • Loading branch information
gernest committed Mar 3, 2024
1 parent b590469 commit e241c30
Show file tree
Hide file tree
Showing 14 changed files with 201 additions and 1,058 deletions.
12 changes: 1 addition & 11 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ require (
github.com/blevesearch/vellum v1.0.10
github.com/bufbuild/protovalidate-go v0.5.0
github.com/cespare/xxhash/v2 v2.2.0
github.com/dgraph-io/badger/v4 v4.2.0
github.com/dgraph-io/ristretto v0.1.1
github.com/docker/go-units v0.5.0
github.com/dop251/goja v0.0.0-20231027120936-b396bb4c349d
Expand All @@ -20,7 +19,6 @@ require (
github.com/klauspost/compress v1.16.7
github.com/oklog/ulid/v2 v2.1.0
github.com/oschwald/maxminddb-golang v1.12.0
github.com/pkg/errors v0.9.1
github.com/rqlite/raft-boltdb/v2 v2.0.0-20230523104317-c08e70f4de48
github.com/stretchr/testify v1.8.4
github.com/urfave/cli/v3 v3.0.0-alpha8
Expand All @@ -35,9 +33,7 @@ require (

require (
github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect
github.com/andybalholm/brotli v1.0.5 // indirect
github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
github.com/apache/thrift v0.17.0 // indirect
github.com/armon/go-metrics v0.4.1 // indirect
github.com/bits-and-blooms/bitset v1.12.0 // indirect
github.com/blevesearch/mmap-go v1.0.4 // indirect
Expand All @@ -47,11 +43,8 @@ require (
github.com/fatih/color v1.15.0 // indirect
github.com/go-sourcemap/sourcemap v2.1.3+incompatible // indirect
github.com/goccy/go-json v0.10.2 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/glog v1.1.2 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.3 // indirect
github.com/golang/snappy v0.0.4 // indirect
github.com/google/cel-go v0.18.2 // indirect
github.com/google/flatbuffers v23.5.26+incompatible // indirect
github.com/google/pprof v0.0.0-20230207041349-798e818bf904 // indirect
Expand All @@ -60,23 +53,20 @@ require (
github.com/hashicorp/go-msgpack v0.5.5 // indirect
github.com/hashicorp/go-msgpack/v2 v2.1.1 // indirect
github.com/hashicorp/golang-lru v0.5.0 // indirect
github.com/klauspost/asmfmt v1.3.2 // indirect
github.com/klauspost/cpuid/v2 v2.2.5 // indirect
github.com/kr/pretty v0.3.1 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.19 // indirect
github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 // indirect
github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 // indirect
github.com/mschoch/smat v0.2.0 // indirect
github.com/pierrec/lz4/v4 v4.1.18 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/rogpeppe/go-internal v1.10.0 // indirect
github.com/stoewer/go-strcase v1.3.0 // indirect
github.com/valyala/fastrand v1.1.0 // indirect
github.com/valyala/histogram v1.2.0 // indirect
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect
github.com/zeebo/xxh3 v1.0.2 // indirect
go.opencensus.io v0.22.5 // indirect
golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect
golang.org/x/mod v0.14.0 // indirect
golang.org/x/net v0.20.0 // indirect
Expand Down
68 changes: 0 additions & 68 deletions go.sum

Large diffs are not rendered by default.

35 changes: 0 additions & 35 deletions internal/cluster/snapshots/badger.go

This file was deleted.

83 changes: 83 additions & 0 deletions internal/cluster/snapshots/lsm.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
package snapshots

import (
"io"
"os"

"github.com/apache/arrow/go/v15/arrow"
"github.com/apache/arrow/go/v15/arrow/ipc"
"github.com/apache/arrow/go/v15/arrow/memory"
"github.com/hashicorp/raft"
"github.com/vinceanalytics/vince/internal/lsm"
)

type Persist interface {
Persist(f lsm.CompactCallback)
}

type Arrow struct {
File *os.File
Tree Persist
Mem memory.Allocator
}

var _ raft.FSMSnapshot = (*Arrow)(nil)

func (a *Arrow) Persist(sink raft.SnapshotSink) (err error) {
return a.Backup(sink)
}

func (a *Arrow) Backup(sink io.Writer) (err error) {
w, werr := ipc.NewFileWriter(
a.File, ipc.WithAllocator(a.Mem),
ipc.WithZstd(),
)
if werr != nil {
return werr
}
a.Tree.Persist(func(tenant string, r arrow.Record) bool {
if err != nil {
return false
}
err = w.Write(r)
return true
})
if err != nil {
return
}
err = w.Close()
if err != nil {
return
}
_, err = a.File.WriteTo(sink)
return
}

func (a *Arrow) Release() {
a.File.Close()
os.Remove(a.File.Name())
}

type ArrowRestore struct {
Mem memory.Allocator
File *os.File
}

var _ lsm.RecordSource = (*ArrowRestore)(nil)

func (a *ArrowRestore) Record(f func(arrow.Record) error) error {
rd, err := ipc.NewFileReader(a.File, ipc.WithAllocator(a.Mem))
if err != nil {
return err
}
for {
r, err := rd.Read()
if err != nil {
return err
}
err = f(r)
if err != nil {
return err
}
}
}
Loading

0 comments on commit e241c30

Please sign in to comment.