Bump rocksdb to version 5.15.10 and use data format version 3
parent
f579b97502
commit
d369242b48
|
@ -167,7 +167,7 @@
|
|||
branch = "master"
|
||||
name = "github.com/tecbot/gorocksdb"
|
||||
packages = ["."]
|
||||
revision = "3e476152774442234f9a9f747386a48a1d82a515"
|
||||
revision = "214b6b7bc0f06812ab5602fdc502a3e619916f38"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
|
|
|
@ -10,7 +10,7 @@ RUN apt-get update && \
|
|||
apt-get clean
|
||||
|
||||
ENV GOLANG_VERSION=go1.10.linux-amd64
|
||||
ENV ROCKSDB_VERSION=rocksdb-5.14.3
|
||||
ENV ROCKSDB_VERSION=v5.15.10
|
||||
ENV GOPATH=/go
|
||||
ENV PATH=$PATH:$GOPATH/bin
|
||||
ENV CGO_CFLAGS="-I/opt/rocksdb/include"
|
||||
|
|
|
@ -1,6 +1,12 @@
|
|||
package db
|
||||
|
||||
// #include "rocksdb/c.h"
|
||||
import "C"
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"unsafe"
|
||||
|
||||
"github.com/tecbot/gorocksdb"
|
||||
)
|
||||
|
||||
|
@ -39,12 +45,19 @@ func boolToChar(b bool) C.uchar {
|
|||
*/
|
||||
|
||||
func createAndSetDBOptions(bloomBits int, c *gorocksdb.Cache, maxOpenFiles int) *gorocksdb.Options {
|
||||
blockOpts := gorocksdb.NewDefaultBlockBasedTableOptions()
|
||||
// blockOpts := gorocksdb.NewDefaultBlockBasedTableOptions()
|
||||
cNativeBlockOpts := C.rocksdb_block_based_options_create()
|
||||
blockOpts := &gorocksdb.BlockBasedTableOptions{}
|
||||
cBlockField := reflect.Indirect(reflect.ValueOf(blockOpts)).FieldByName("c")
|
||||
cBlockPtr := (**C.rocksdb_block_based_table_options_t)(unsafe.Pointer(cBlockField.UnsafeAddr()))
|
||||
*cBlockPtr = cNativeBlockOpts
|
||||
blockOpts.SetBlockSize(32 << 10) // 32kB
|
||||
blockOpts.SetBlockCache(c)
|
||||
if bloomBits > 0 {
|
||||
blockOpts.SetFilterPolicy(gorocksdb.NewBloomFilter(bloomBits))
|
||||
}
|
||||
C.rocksdb_block_based_options_set_format_version(cNativeBlockOpts, 3)
|
||||
|
||||
opts := gorocksdb.NewDefaultOptions()
|
||||
opts.SetBlockBasedTableFactory(blockOpts)
|
||||
opts.SetCreateIfMissing(true)
|
||||
|
|
Loading…
Reference in New Issue