mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-07-20 15:02:27 +00:00
83195fc111
CreateEntry starts with a FindEntry to load the current entry. A conditional CreateEntry already fetched that entry to evaluate the precondition under the per-path lock, so the create repeated the lookup. Add an existing *Entry parameter: when non-nil it is used as the current entry and the internal lookup is skipped; nil keeps the lookup. The gRPC CreateEntry handler passes the entry it fetched for the precondition, removing the redundant read while the lock is held. All other callers pass nil.
Prepare the compilation environment on linux
-
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
-
sudo apt-get update -qq
-
sudo apt-get install gcc-6 g++-6 libsnappy-dev zlib1g-dev libbz2-dev -qq
-
export CXX="g++-6" CC="gcc-6"
-
wget https://launchpad.net/ubuntu/+archive/primary/+files/libgflags2_2.0-1.1ubuntu1_amd64.deb
-
sudo dpkg -i libgflags2_2.0-1.1ubuntu1_amd64.deb
-
wget https://launchpad.net/ubuntu/+archive/primary/+files/libgflags-dev_2.0-1.1ubuntu1_amd64.deb
-
sudo dpkg -i libgflags-dev_2.0-1.1ubuntu1_amd64.deb
Prepare the compilation environment on mac os
brew install snappy
install rocksdb:
export ROCKSDB_HOME=/Users/chris/dev/rocksdb
git clone https://github.com/facebook/rocksdb.git $ROCKSDB_HOME
pushd $ROCKSDB_HOME
make clean
make install-static
popd
install gorocksdb
export CGO_CFLAGS="-I$ROCKSDB_HOME/include"
export CGO_LDFLAGS="-L$ROCKSDB_HOME -lrocksdb -lstdc++ -lm -lz -lbz2 -lsnappy -llz4 -lzstd"
go get github.com/tecbot/gorocksdb
compile with rocksdb
cd ~/go/src/github.com/seaweedfs/seaweedfs/weed
go install -tags rocksdb