[Go] pebbleDB
pebbleDB는 cockroach에서 만든 내장형 KV DB다.
LSM 트리 기반이며, LevelDB와 RocksDB 모티브로 만들어졌다.
현재는 cockroachDB의 스토리지 엔진으로 사용되고 있다.
cgo 떡칠인지 뭔지 모르겠는데 링크하면서 깨지기도 하고 빌드가 잘 안된다. 특히 windows가 더 그런거같다.
요구 버전도 생각없이 올려대는 모양이다. 1.21이더라
Mac이나 Linux에서 사용하길 권장한다.
설치
아래와 같이 설치한다.
go get github.com/cockroachdb/pebble@v1.0.0

기본 사용법
다른 내장형 DB들과 대략적인 사용법은 크게 다를게 없다.
DB 파일을 생성할 위치를 정하고, 실행하면 된다.
package main
import (
"fmt"
"log"
"github.com/cockroachdb/pebble"
)
func main() {
// DB 오픈
db, err := pebble.Open("demo", &pebble.Options{})
if err != nil {
log.Fatal(err)
}
// 값 저장
key := []byte("hello")
if err := db.Set(key, []byte("world"), pebble.Sync); err != nil {
log.Fatal(err)
}
// 값 조회
value, closer, err := db.Get(key)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s %s\n", key, value)
if err := closer.Close(); err != nil {
log.Fatal(err)
}
// DB 종료
if err := db.Close(); err != nil {
log.Fatal(err)
}
}
그럼 이렇게 실행이 될 것이고

이렇게 DB 파일들이 생성될 것이다.
