generator.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. "igit.com/xbase/raft/db"
  6. )
  7. func main() {
  8. dir := "test_db_data"
  9. os.RemoveAll(dir) // Start fresh
  10. fmt.Println("Initializing DB Engine...")
  11. e, err := db.NewEngine(dir)
  12. if err != nil {
  13. panic(err)
  14. }
  15. fmt.Println("\n1. Insert initial data (Append)")
  16. e.Set("config.timeout", "10s", 1) // len=3, cap=16
  17. e.Set("config.retries", "3", 2) // len=1, cap=16
  18. e.Set("app.name", "demo-app-v1", 3) // len=11, cap=16
  19. fmt.Println("\n2. In-place update (Same length or smaller)")
  20. e.Set("config.timeout", "20s", 4) // len=3, cap=16 -> In-place!
  21. fmt.Println("\n3. In-place update (Larger but fits capacity)")
  22. e.Set("config.retries", "10", 5) // len=2, cap=16 -> In-place! (was 1)
  23. fmt.Println("\n4. Append update (Exceeds capacity)")
  24. e.Set("app.name", "demo-application-v2-long-name", 6) // len=29, cap=32 -> Append!
  25. e.Close()
  26. fmt.Println("\nDB Closed. Run inspector to see file layout.")
  27. fmt.Printf("\nTry running:\n go run example/database/inspector.go %s\n", dir)
  28. }