Skip to content

Commit

Permalink
Merge pull request #148 from ByteStorage/temp-dev
Browse files Browse the repository at this point in the history
feat: add db grpc server
  • Loading branch information
sjcsjc123 authored Jul 6, 2023
2 parents 53a86a8 + a2bfd44 commit 47a6bab
Show file tree
Hide file tree
Showing 32 changed files with 1,304 additions and 190 deletions.
7 changes: 5 additions & 2 deletions cluster/region/region_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,11 @@ func ReturnNewDB() *engine.DB {
func destroyRegion(r Region) {
// Close the region's database
db := r.(*TestRegionStruct).db
_ = db.Close()
err := os.RemoveAll(dirpath)
err := db.Close()
if err != nil {
return
}
err = os.RemoveAll(dirpath)
if err != nil {
return
}
Expand Down
10 changes: 0 additions & 10 deletions cmd/cli/flydb.go

This file was deleted.

2 changes: 1 addition & 1 deletion cmd/app.go → cmd/client/app.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cmd
package client

import (
"fmt"
Expand Down
19 changes: 19 additions & 0 deletions cmd/client/cli/flydb-client.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package main

import (
"fmt"
"github.com/ByteStorage/FlyDB/cmd/client"
"github.com/desertbit/grumble"
"os"
)

func main() {
if len(os.Args) != 2 {
fmt.Println("usage: flydb-cli [addr]")
return
}
client.Addr = os.Args[1]
os.Args = os.Args[:1]
// start client CLI
grumble.Main(client.App)
}
37 changes: 17 additions & 20 deletions cmd/data.go → cmd/client/data.go
Original file line number Diff line number Diff line change
@@ -1,22 +1,27 @@
package cmd
package client

import (
"fmt"
"github.com/ByteStorage/FlyDB/engine/grpc/client"
"github.com/desertbit/grumble"
)

var Addr string

func newClient() *client.Client {
return &client.Client{
Addr: Addr,
}
}

func putData(c *grumble.Context) error {
key := c.Args.String("key")
value := c.Args.String("value")
if key == "" || value == "" {
fmt.Println("key or value is empty")
return nil
}
if db == nil {
fmt.Println("start server first")
return nil
}
err := db.Put([]byte(key), []byte(value))
err := newClient().Put([]byte(key), []byte(value))
if err != nil {
fmt.Println("put data error: ", err)
return err
Expand All @@ -31,11 +36,7 @@ func getData(c *grumble.Context) error {
fmt.Println("key is empty")
return nil
}
if db == nil {
fmt.Println("start server first")
return nil
}
value, err := db.Get([]byte(key))
value, err := newClient().Get([]byte(key))
if err != nil {
fmt.Println("get data error: ", err)
return err
Expand All @@ -50,11 +51,7 @@ func deleteKey(c *grumble.Context) error {
fmt.Println("key is empty")
return nil
}
if db == nil {
fmt.Println("start server first")
return nil
}
err := db.Delete([]byte(key))
err := newClient().Del([]byte(key))
if err != nil {
fmt.Println("delete key error: ", err)
return err
Expand All @@ -64,11 +61,11 @@ func deleteKey(c *grumble.Context) error {
}

func getKeys(c *grumble.Context) error {
if db == nil {
fmt.Println("start server first")
return nil
list, err := newClient().Keys()
if err != nil {
fmt.Println("get keys error: ", err)
return err
}
list := db.GetListKeys()
fmt.Println("Total keys: ", len(list))
for i, bytes := range list {
fmt.Printf(string(bytes[:]) + "\t")
Expand Down
25 changes: 2 additions & 23 deletions cmd/root.go → cmd/client/root.go
Original file line number Diff line number Diff line change
@@ -1,28 +1,8 @@
package cmd
package client

import (
"github.com/desertbit/grumble"
)
import "github.com/desertbit/grumble"

func register(app *grumble.App) {
app.AddCommand(&grumble.Command{
Name: "start",
Help: "start server",
Run: startServer,
})

app.AddCommand(&grumble.Command{
Name: "stop",
Help: "stop server",
Run: stopServer,
})

app.AddCommand(&grumble.Command{
Name: "clean",
Help: "clean server",
Run: cleanServer,
})

app.AddCommand(&grumble.Command{
Name: "put",
Help: "put data",
Expand Down Expand Up @@ -56,5 +36,4 @@ func register(app *grumble.App) {
Help: "list keys",
Run: getKeys,
})

}
78 changes: 0 additions & 78 deletions cmd/server.go

This file was deleted.

28 changes: 28 additions & 0 deletions cmd/server/cli/flydb-server.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package main

import (
"fmt"
"github.com/ByteStorage/FlyDB/cmd/server"
"os"
)

func main() {
args := os.Args
if len(args) >= 2 {
fmt.Println("Usage: flydb-server [start|clean|stop]")
return
}
if len(args) == 1 {
//start server
server.StartServer()
return
}
switch args[1] {
case "start":
server.StartServer()
case "stop":
server.StopServer()
case "clean":
server.CleanServer()
}
}
27 changes: 27 additions & 0 deletions cmd/server/server.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package server

import (
"fmt"
"github.com/ByteStorage/FlyDB/config"
"github.com/ByteStorage/FlyDB/engine/grpc/service"
"github.com/ByteStorage/FlyDB/flydb"
)

func StartServer() {
options := config.DefaultOptions
db, err := flydb.NewFlyDB(options)
if err != nil {
fmt.Println("flydb start error: ", err)
return
}
s := service.NewService(config.DefaultAddr, db)
s.StartServer()
}

func StopServer() {
panic("implement me")
}

func CleanServer() {
panic("implement me")
}
4 changes: 4 additions & 0 deletions config/options.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,10 @@ const (
ART
)

const (
DefaultAddr = "127.0.0.1:8999"
)

var DefaultOptions = Options{
DirPath: os.TempDir(),
DataFileSize: 256 * 1024 * 1024, // 256MB
Expand Down
2 changes: 1 addition & 1 deletion config/tcpConfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ type TcpServerConfiguration struct {
// Configuration is global tcp server config
var Configuration *TcpServerConfiguration

// Init init global tcp server config
// Init global tcp server config
func Init() *TcpServerConfiguration {
Configuration = &TcpServerConfiguration{
Host: "127.0.0.1",
Expand Down
8 changes: 6 additions & 2 deletions engine/batch_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,15 @@ import (
"github.com/stretchr/testify/assert"
"os"
"testing"
"time"
)

func TestDB_WriteBatch(t *testing.T) {
opts := config.DefaultOptions
dir, _ := os.MkdirTemp("", "flydb-batch-1")
opts.DirPath = dir
db, err := NewDB(opts)
defer destroyDB(db)
defer db.Clean()
assert.Nil(t, err)
assert.NotNil(t, db)

Expand Down Expand Up @@ -51,7 +52,7 @@ func TestDB_WriteBatchRestart(t *testing.T) {
dir, _ := os.MkdirTemp("", "flydb-batch-2")
opts.DirPath = dir
db, err := NewDB(opts)
defer destroyDB(db)
defer db.Clean()
assert.Nil(t, err)
assert.NotNil(t, db)

Expand All @@ -77,6 +78,8 @@ func TestDB_WriteBatchRestart(t *testing.T) {
assert.Nil(t, err)

db2, err := NewDB(opts)
time.Sleep(time.Millisecond * 100)
defer db2.Clean()
assert.Nil(t, err)

_, err = db2.Get(randkv.GetTestKey(1))
Expand All @@ -91,6 +94,7 @@ func TestDB_WriteBatch1(t *testing.T) {
dir := "/tmp/batch-3"
opts.DirPath = dir
db, err := NewDB(opts)
defer db.Clean()
assert.Nil(t, err)
assert.NotNil(t, db)

Expand Down
1 change: 1 addition & 0 deletions engine/benchmark/benchmark_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ func init() {
opts.DirPath = filepath.Join("benchmark", "flydbtest")

FlyDB, err = flydb.NewFlyDB(opts)
defer FlyDB.Clean()
if err != nil {
panic(err)
}
Expand Down
Loading

0 comments on commit 47a6bab

Please sign in to comment.