Merge branch 'rocksdb5.15'
This commit is contained in:
commit
2802bbaeef
2
Gopkg.lock
generated
2
Gopkg.lock
generated
@ -179,7 +179,7 @@
|
|||||||
branch = "master"
|
branch = "master"
|
||||||
name = "github.com/tecbot/gorocksdb"
|
name = "github.com/tecbot/gorocksdb"
|
||||||
packages = ["."]
|
packages = ["."]
|
||||||
revision = "3e476152774442234f9a9f747386a48a1d82a515"
|
revision = "214b6b7bc0f06812ab5602fdc502a3e619916f38"
|
||||||
|
|
||||||
[[projects]]
|
[[projects]]
|
||||||
branch = "master"
|
branch = "master"
|
||||||
|
|||||||
@ -10,7 +10,7 @@ RUN apt-get update && \
|
|||||||
apt-get clean
|
apt-get clean
|
||||||
|
|
||||||
ENV GOLANG_VERSION=go1.10.linux-amd64
|
ENV GOLANG_VERSION=go1.10.linux-amd64
|
||||||
ENV ROCKSDB_VERSION=rocksdb-5.14.3
|
ENV ROCKSDB_VERSION=v5.15.10
|
||||||
ENV GOPATH=/go
|
ENV GOPATH=/go
|
||||||
ENV PATH=$PATH:$GOPATH/bin
|
ENV PATH=$PATH:$GOPATH/bin
|
||||||
ENV CGO_CFLAGS="-I/opt/rocksdb/include"
|
ENV CGO_CFLAGS="-I/opt/rocksdb/include"
|
||||||
|
|||||||
@ -1,6 +1,12 @@
|
|||||||
package db
|
package db
|
||||||
|
|
||||||
|
// #include "rocksdb/c.h"
|
||||||
|
import "C"
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"reflect"
|
||||||
|
"unsafe"
|
||||||
|
|
||||||
"github.com/tecbot/gorocksdb"
|
"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 {
|
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.SetBlockSize(32 << 10) // 32kB
|
||||||
blockOpts.SetBlockCache(c)
|
blockOpts.SetBlockCache(c)
|
||||||
if bloomBits > 0 {
|
if bloomBits > 0 {
|
||||||
blockOpts.SetFilterPolicy(gorocksdb.NewBloomFilter(bloomBits))
|
blockOpts.SetFilterPolicy(gorocksdb.NewBloomFilter(bloomBits))
|
||||||
}
|
}
|
||||||
|
C.rocksdb_block_based_options_set_format_version(cNativeBlockOpts, 3)
|
||||||
|
|
||||||
opts := gorocksdb.NewDefaultOptions()
|
opts := gorocksdb.NewDefaultOptions()
|
||||||
opts.SetBlockBasedTableFactory(blockOpts)
|
opts.SetBlockBasedTableFactory(blockOpts)
|
||||||
opts.SetCreateIfMissing(true)
|
opts.SetCreateIfMissing(true)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user