pingcap / go-ycsb

A Go port of Yahoo! Cloud Serving Benchmark (YCSB)
Apache License 2.0
594 stars 243 forks source link

make does not work (gorocksdb) #281

Closed luminus7 closed 8 months ago

luminus7 commented 1 year ago

Hi, I'm new to this community, also in go lang too.

I'm having trouble while making go-ycsb.

I cannot find any issue or related community which can solve this problem. So decided to leave the issue report.

I'm trying to build go-ycsb from the source and following the documentation(README.md).

$ go version
go version go1.19.5 linux/amd64

Below is the full log of making go-ycsb.

$ make
CGO_CXXFLAGS=" -std=c++11" go build -tags "rocksdb" -o bin/go-ycsb cmd/go-ycsb/*
# github.com/tecbot/gorocksdb
../../go/pkg/mod/github.com/tecbot/gorocksdb@v0.0.0-20191217155057-f0fad39f321c/options.go:759:2: could not determine kind of name for C.rocksdb_options_set_hard_rate_limit
../../go/pkg/mod/github.com/tecbot/gorocksdb@v0.0.0-20191217155057-f0fad39f321c/options.go:498:2: could not determine kind of name for C.rocksdb_options_set_max_mem_compaction_level
../../go/pkg/mod/github.com/tecbot/gorocksdb@v0.0.0-20191217155057-f0fad39f321c/options.go:871:2: could not determine kind of name for C.rocksdb_options_set_purge_redundant_kvs_while_flush
../../go/pkg/mod/github.com/tecbot/gorocksdb@v0.0.0-20191217155057-f0fad39f321c/options.go:767:2: could not determine kind of name for C.rocksdb_options_set_rate_limit_delay_max_milliseconds
../../go/pkg/mod/github.com/tecbot/gorocksdb@v0.0.0-20191217155057-f0fad39f321c/options.go:910:2: could not determine kind of name for C.rocksdb_options_set_skip_log_error_on_recovery
../../go/pkg/mod/github.com/tecbot/gorocksdb@v0.0.0-20191217155057-f0fad39f321c/options.go:750:2: could not determine kind of name for C.rocksdb_options_set_soft_rate_limit
../../go/pkg/mod/github.com/tecbot/gorocksdb@v0.0.0-20191217155057-f0fad39f321c/options.go:793:2: could not determine kind of name for C.rocksdb_options_set_table_cache_remove_scan_count_limit
make: *** [Makefile:39: build] Error 2

Thank you :)

dbsid commented 1 year ago

It works on my centos 7 server. What's the os version?

[root@IDC go-ycsb]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@IDC go-ycsb]# go version
go version go1.19.5 linux/amd64
luminus7 commented 1 year ago

Hi :) Here are some information about my setup. Thank you!

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.2 LTS
Release:        22.04
Codename:       jammy

$ uname -a
Linux server_name 6.1.9 #67 SMP PREEMPT_DYNAMIC Wed May 10 21:50:40 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

$ go version
go version go1.19.5 linux/amd64
pingxiang-chen commented 8 months ago

Hi @luminus7

What is your Rocksdb version? I encountered a similar problem to you. I changed to Rocksdb 6.8.1. It can work.

Reference Link

luminus7 commented 8 months ago

Some system configurations have changed, and currently, $make works well, YCSB test works well.

I guess the go-ycsb version which has used was v1.0.1, on May 30, 2023, and now Jan 19, 2024, is the same.

Now I've re-installed my RocksDB so I cannot find which is the exact version that I've tried but, I'm pretty sure that I've used RocksDB version 7.6.0 before.

I don't know the exact reason why, maybe the reference that you have left was the solution.

By the way, thank you for reminding me this issue.😄