Code Monkey home page Code Monkey logo

fluent's People

Contributors

cw75 avatar haal avatar jhellerstein avatar mogorman avatar taramirmira avatar vsreekanti avatar waterdrips avatar xcharleslin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fluent's Issues

Cluster state should be stored in S3 for recovery

Soft state about the cluster configuration should be periodically checkpointed to S3 for recovery & sanity. This includes:

  • The numbers, identities, and roles of each node
  • The partitioning scheme for multiple monitoring nodes
  • ...

Make Kubernetes pod ids monotonically increasing

We currently assume implicitly that pods never die because we assign pod ids by incrementing the count of the current number of pods. This is bad, because we might have a situation in which a pod dies (say memory-pod-n), so the count becomes n-1. If we increment the count, we'll next create memory-pod-n, which already exists and will fail.

[zeromqcpp] from 4.3.1, use recv taking a reference to message_t and recv_flags

Here is a problem about zeromqcpp.
In the laste version, we can see:

#ifdef ZMQ_CPP11
    ZMQ_DEPRECATED("from 4.3.1, use recv taking a reference to message_t and recv_flags")
#endif
    bool recv(message_t *msg_, int flags_
#ifndef ZMQ_CPP11
              = 0
#endif
    )
    {
        int nbytes = zmq_msg_recv(msg_->handle(), _handle, flags_);
        if (nbytes >= 0)
            return true;
        if (zmq_errno() == EAGAIN)
            return false;
        throw error_t();
    }

flags_ cannot be automaticlly set to be 0 when using "-std=c++11", and we need to pass 0 when calling recv.
However, in this way, the system cannot work right. It shows error like:

./build/kvs/client/cpp/terminate called after throwing an instance of 'zmq::error_t'
  what():  Operation cannot be accomplished in current state

I am now trying another solutions is to use an older version of zeromqcpp and will update here.

Gossip keys based on access frequency

Currently, all keys are gossipped under the same gossip period. Ideally, we should adjust the gossip frequency based on the access frequency. Hot keys will be gossipped more often and cold keys less often.

Expose non-last writer wins lattices to users

Currently, all data is stored in a last-writer-wins lattice by default. We should expose lattices that are already supported for other operations as well -- e.g., we might want to store a set of things, and that set should be able to be merged instead of being overridden as a stream of bits.

Merge causal & non-causal modes

Currently the system operates at either causal mode or non-causal mode.
Refactor the codebase so that it can support both with a single build.

can u avoid clock unsync between several servers ?

Hi, Riselab's researchers:
I see ur rc_pair_lattice.cpp lattice merge function and generate_timestamp function in ur common.hpp, I see u just use max timestamp to decide whether needing replace current obj, eg. if a key have n replicas across several servers, one of them has been updated by a new value, but because of time gaps between these servers, maybe updated values's timestamp less than timestamps in other replicas, how can I decide to use which one in the future ?
so I have these question as follow:

  1. CRDT can resolve time gaps between several servers ?
  2. Can I use Dotted Version Vectors or Vector Clock as Conflict Resolution? it's necessary ?

build-all.sh fails on OS X 10.13.6

Hi! I'm trying to build Fluent on my 2013 MacBook Pro running OS X 10.13.6, and I hit a problem once I get to flkvs-ring:

Scanning dependencies of target flkvs-ring
[ 50%] Building CXX object kvs/src/hash_ring/CMakeFiles/flkvs-ring.dir/hash_ring.cpp.o
/Users/gamache/code/Appcues/fluent/kvs/src/hash_ring/hash_ring.cpp:184:12: error: no member named
      'cerr' in namespace 'std'
      std::cerr << "No servers have joined the cluster yet. Retrying request."
      ~~~~~^
/Users/gamache/code/Appcues/fluent/kvs/src/hash_ring/hash_ring.cpp:189:12: error: no member named
      'cerr' in namespace 'std'
      std::cerr
      ~~~~~^
2 errors generated.
make[2]: *** [kvs/src/hash_ring/CMakeFiles/flkvs-ring.dir/hash_ring.cpp.o] Error 1
make[1]: *** [kvs/src/hash_ring/CMakeFiles/flkvs-ring.dir/all] Error 2
make: *** [all] Error 2
Click here for the full output of scripts/install-dependencies-osx.sh and scripts/build-all.sh.
gamache@silver-rocket:~/code/Appcues/fluent master be28a44
$ scripts/install-dependencies-osx.sh
Installing the following packages via homebrew:
	* autoconf
	* automake
	* libtool
	* build-essential
	* unzip
	* pkg-config
	* wget
Updating Homebrew...
Warning: autoconf 2.69 is already installed and up-to-date
To reinstall 2.69, run `brew reinstall autoconf`
Warning: libtool 2.4.6_1 is already installed and up-to-date
To reinstall 2.4.6_1, run `brew reinstall libtool`
Warning: pkg-config 0.29.2 is already installed and up-to-date
To reinstall 0.29.2, run `brew reinstall pkg-config`
Error: automake 1.15.1 is already installed
To upgrade to 1.16.1_1, run `brew upgrade automake`
Error: wget 1.14 is already installed
To upgrade to 1.19.5, run `brew upgrade wget`
Installing cmake...
Installing lcov...
You might be asked for your password to install lcov...
--2018-09-26 19:23:41--  http://downloads.sourceforge.net/ltp/lcov-1.13.tar.gz
Resolving downloads.sourceforge.net... 216.105.38.13
Connecting to downloads.sourceforge.net|216.105.38.13|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://downloads.sourceforge.net/project/ltp/Coverage%20Analysis/LCOV-1.13/lcov-1.13.tar.gz [following]
--2018-09-26 19:23:41--  http://downloads.sourceforge.net/project/ltp/Coverage%20Analysis/LCOV-1.13/lcov-1.13.tar.gz
Reusing existing connection to downloads.sourceforge.net:80.
HTTP request sent, awaiting response... 302 Found
Location: https://astuteinternet.dl.sourceforge.net/project/ltp/Coverage%20Analysis/LCOV-1.13/lcov-1.13.tar.gz [following]
--2018-09-26 19:23:41--  https://astuteinternet.dl.sourceforge.net/project/ltp/Coverage%20Analysis/LCOV-1.13/lcov-1.13.tar.gz
Resolving astuteinternet.dl.sourceforge.net... 162.213.157.36
Connecting to astuteinternet.dl.sourceforge.net|162.213.157.36|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 156709 (153K) [application/x-gzip]
Saving to: ‘lcov-1.13.tar.gz’

100%[==========================================================>] 156,709      404KB/s   in 0.4s

2018-09-26 19:23:43 (404 KB/s) - ‘lcov-1.13.tar.gz’ saved [156709/156709]

Password:
Sorry, try again.
Password:
bin/install.sh bin/lcov /usr/local/bin/lcov -m 755
bin/install.sh bin/genhtml /usr/local/bin/genhtml -m 755
bin/install.sh bin/geninfo /usr/local/bin/geninfo -m 755
bin/install.sh bin/genpng /usr/local/bin/genpng -m 755
bin/install.sh bin/gendesc /usr/local/bin/gendesc -m 755
bin/install.sh man/lcov.1 /usr/local/share/man/man1/lcov.1 -m 644
bin/install.sh man/genhtml.1 /usr/local/share/man/man1/genhtml.1 -m 644
bin/install.sh man/geninfo.1 /usr/local/share/man/man1/geninfo.1 -m 644
bin/install.sh man/genpng.1 /usr/local/share/man/man1/genpng.1 -m 644
bin/install.sh man/gendesc.1 /usr/local/share/man/man1/gendesc.1 -m 644
bin/install.sh man/lcovrc.5 /usr/local/share/man/man5/lcovrc.5 -m 644
bin/install.sh lcovrc /usr/local/etc/lcovrc -m 644
bin/updateversion.pl /usr/local/bin/lcov 1.13 1 1.13
Updating bin tool /usr/local/bin/lcov
Done.
bin/updateversion.pl /usr/local/bin/genhtml 1.13 1 1.13
Updating bin tool /usr/local/bin/genhtml
Done.
bin/updateversion.pl /usr/local/bin/geninfo 1.13 1 1.13
Updating bin tool /usr/local/bin/geninfo
Done.
bin/updateversion.pl /usr/local/bin/genpng 1.13 1 1.13
Updating bin tool /usr/local/bin/genpng
Done.
bin/updateversion.pl /usr/local/bin/gendesc 1.13 1 1.13
Updating bin tool /usr/local/bin/gendesc
Done.
bin/updateversion.pl /usr/local/share/man/man1/lcov.1 1.13 1 1.13
Updating man page /usr/local/share/man/man1/lcov.1
Done.
bin/updateversion.pl /usr/local/share/man/man1/genhtml.1 1.13 1 1.13
Updating man page /usr/local/share/man/man1/genhtml.1
Done.
bin/updateversion.pl /usr/local/share/man/man1/geninfo.1 1.13 1 1.13
Updating man page /usr/local/share/man/man1/geninfo.1
Done.
bin/updateversion.pl /usr/local/share/man/man1/genpng.1 1.13 1 1.13
Updating man page /usr/local/share/man/man1/genpng.1
Done.
bin/updateversion.pl /usr/local/share/man/man1/gendesc.1 1.13 1 1.13
Updating man page /usr/local/share/man/man1/gendesc.1
Done.
bin/updateversion.pl /usr/local/share/man/man5/lcovrc.5 1.13 1 1.13
Updating man page /usr/local/share/man/man5/lcovrc.5
Done.
/usr/local/bin/lcov
lcov: LCOV version 1.13
All dependencies installed!

gamache@silver-rocket:~/code/Appcues/fluent master be28a44
$ scripts/build-all.sh
-- The C compiler identification is AppleClang 10.0.0.10001145
-- The CXX compiler identification is AppleClang 10.0.0.10001145
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/clang++
-- Check for working CXX compiler: /usr/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE
-- Found Protobuf: /usr/local/lib/libprotobuf.dylib (found version "2.5.0")
-- Downloading/updating googletest
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/gamache/code/Appcues/fluent/build/googletest-download
Scanning dependencies of target googletest-download
[ 11%] Creating directories for 'googletest-download'
[ 22%] Performing download step (git clone) for 'googletest-download'
Cloning into 'googletest-src'...
Note: checking out 'release-1.8.0'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at ec44c6c... Merge pull request #821 from mazong1123/master
[ 33%] No patch step for 'googletest-download'
[ 44%] Skipping update step for 'googletest-download'
[ 55%] No configure step for 'googletest-download'
[ 66%] No build step for 'googletest-download'
[ 77%] No install step for 'googletest-download'
[ 88%] No test step for 'googletest-download'
[100%] Completed 'googletest-download'
[100%] Built target googletest-download
-- Found PythonInterp: /usr/bin/python (found version "2.7.10")
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/gamache/code/Appcues/fluent/build
Scanning dependencies of target zeromqcpp
Scanning dependencies of target zeromq
[  1%] Creating directories for 'zeromqcpp'
[  2%] Creating directories for 'zeromq'
[  3%] Performing download step (download, verify and extract) for 'zeromq'
[  4%] Performing download step (git clone) for 'zeromqcpp'
-- Downloading...
   dst='/Users/gamache/code/Appcues/fluent/build/vendor/zeromq/src/zeromq-4.2.5.tar.gz'
   timeout='none'
-- Using src='https://github.com/zeromq/libzmq/releases/download/v4.2.5/zeromq-4.2.5.tar.gz'
Cloning into 'zeromqcpp'...
-- [download 0% complete]
-- [download 1% complete]
-- [download 2% complete]
-- [download 4% complete]
-- [download 5% complete]
-- [download 6% complete]
-- [download 7% complete]
-- [download 9% complete]
-- [download 10% complete]
Already on 'master'
Your branch is up-to-date with 'origin/master'.
-- [download 11% complete]
-- [download 12% complete]
-- [download 13% complete]
-- [download 14% complete]
-- [download 15% complete]
-- [download 16% complete]
-- [download 17% complete]
-- [download 18% complete]
-- [download 20% complete]
-- [download 21% complete]
-- [download 22% complete]
-- [download 23% complete]
-- [download 25% complete]
-- [download 26% complete]
-- [download 27% complete]
-- [download 28% complete]
-- [download 30% complete]
-- [download 31% complete]
-- [download 32% complete]
-- [download 33% complete]
-- [download 34% complete]
-- [download 35% complete]
-- [download 36% complete]
-- [download 37% complete]
-- [download 38% complete]
-- [download 39% complete]
-- [download 41% complete]
-- [download 42% complete]
-- [download 43% complete]
-- [download 44% complete]
-- [download 46% complete]
-- [download 47% complete]
-- [download 48% complete]
-- [download 49% complete]
[  5%] No patch step for 'zeromqcpp'
-- [download 51% complete]
-- [download 52% complete]
-- [download 53% complete]
-- [download 54% complete]
-- [download 55% complete]
-- [download 56% complete]
-- [download 57% complete]
-- [download 58% complete]
-- [download 59% complete]
-- [download 60% complete]
[  6%] No update step for 'zeromqcpp'
-- [download 62% complete]
-- [download 63% complete]
-- [download 64% complete]
-- [download 65% complete]
-- [download 67% complete]
-- [download 68% complete]
-- [download 69% complete]
-- [download 70% complete]
-- [download 72% complete]
[  7%] No configure step for 'zeromqcpp'
-- [download 73% complete]
-- [download 74% complete]
-- [download 75% complete]
-- [download 76% complete]
-- [download 77% complete]
-- [download 78% complete]
-- [download 79% complete]
-- [download 80% complete]
-- [download 81% complete]
-- [download 83% complete]
-- [download 84% complete]
-- [download 85% complete]
[  8%] No build step for 'zeromqcpp'
-- [download 86% complete]
-- [download 88% complete]
-- [download 89% complete]
-- [download 90% complete]
-- [download 91% complete]
-- [download 93% complete]
-- [download 94% complete]
-- [download 95% complete]
-- [download 96% complete]
-- [download 97% complete]
-- [download 98% complete]
-- [download 99% complete]
[  9%] No install step for 'zeromqcpp'
-- [download 100% complete]
-- Downloading... done
-- extracting...
     src='/Users/gamache/code/Appcues/fluent/build/vendor/zeromq/src/zeromq-4.2.5.tar.gz'
     dst='/Users/gamache/code/Appcues/fluent/build/vendor/zeromq/src/zeromq'
-- extracting... [tar xfz]
[ 10%] Completed 'zeromqcpp'
[ 10%] Built target zeromqcpp
[ 11%] Running C++ protocol buffer compiler on ./include/proto/requests.proto
Scanning dependencies of target flproto
-- extracting... [analysis]
-- extracting... [rename]
-- extracting... [clean up]
-- extracting... done
[ 12%] Building CXX object CMakeFiles/flproto.dir/requests.pb.cc.o
[ 13%] No patch step for 'zeromq'
[ 14%] No update step for 'zeromq'
[ 14%] Performing configure step for 'zeromq'
checking for a BSD-compatible install... /usr/local/bin/ginstall -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/local/bin/gmkdir -p
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether UID '501' is supported by ustar format... yes
checking whether GID '20' is supported by ustar format... yes
checking how to create a ustar tar archive... gnutar
checking whether make supports nested variables... (cached) yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... [ 14%] Linking CXX static library libflproto.a
[ 14%] Built target flproto
Scanning dependencies of target spdlog
gcc3
checking whether C compiler accepts -std=gnu11... [ 15%] Creating directories for 'spdlog'
yes
checking for g++... g++
[ 16%] Performing download step (git clone) for 'spdlog'
Cloning into 'spdlog'...
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking whether g++ supports C++11 features by default... no
checking whether g++ supports C++11 features with -std=gnu++11... yes
checking for a sed that does not truncate output... /usr/bin/sed
checking whether to build with code coverage support... no
checking for a sed that does not truncate output... (cached) /usr/bin/sed
checking for gawk... (cached) awk
checking for pkg-config... /usr/local/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for xmlto... no
checking for asciidoc... no
checking build system type... x86_64-apple-darwin17.7.0
checking host system type... x86_64-apple-darwin17.7.0
checking how to print strings... printf
checking for a sed that does not truncate output... (cached) /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
checking if the linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 196608
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-apple-darwin17.7.0 file names to x86_64-apple-darwin17.7.0 format... func_convert_file_noop
checking how to convert x86_64-apple-darwin17.7.0 file names to toolchain format... func_convert_file_noop
checking for /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... dlltool
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... no
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... no
checking if : is a manifest tool... no
checking for dsymutil... dsymutil
checking for nmedit... nmedit
checking for lipo... lipo
checking for otool... otool
checking for otool64... no
checking for -single_module linker flag... yes
checking for -exported_symbols_list linker flag... yes
checking for -force_load linker flag... yes
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... yes
checking for gcc option to produce PIC... -fno-common -DPIC
checking if gcc PIC flag -fno-common -DPIC works... yes
checking if gcc static flag -static works... no
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... darwin17.7.0 dyld
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking how to run the C++ preprocessor... g++ -std=gnu++11 -E
checking for ld used by g++ -std=gnu++11... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
checking if the linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no
checking whether the g++ -std=gnu++11 linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) supports shared libraries... yes
checking for g++ -std=gnu++11 option to produce PIC... -fno-common -DPIC
checking if g++ -std=gnu++11 PIC flag -fno-common -DPIC works... yes
checking if g++ -std=gnu++11 static flag -static works... no
checking if g++ -std=gnu++11 supports -c -o file.o... yes
checking if g++ -std=gnu++11 supports -c -o file.o... (cached) yes
checking whether the g++ -std=gnu++11 linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... darwin17.7.0 dyld
checking how to hardcode library paths into programs... immediate
checking for valgrind... no
checking whether the C compiler works... yes
checking whether we are using Intel C compiler... no
checking whether we are using Sun Studio C compiler... no
checking whether we are using clang C compiler... yes
checking whether we are using gcc >= 4 C compiler... yes
checking whether the C++ compiler works... yes
checking whether we are using Intel C++ compiler... no
checking whether we are using Sun Studio C++ compiler... no
checking whether we are using clang C++ compiler... yes
checking whether we are using gcc >= 4 C++ compiler... yes
checking whether to enable debugging information... no
checking whether to enable code coverage... no
checking if TIPC is available and supports nonblocking connect... no
checking whether to enable ASan... no
checking whether C++ compiler supports -Wno-uninitialized... yes
checking for pthread_create in -lpthread... yes
checking for clock_gettime in -lrt... no
checking whether C++ compiler supports -fvisibility=hidden... yes
checking whether C++ compiler supports dso visibility... yes
checking for asciidoc... no
checking for xmlto... no
checking whether to build documentation... no
checking whether to install manpages... yes
configure: Choosing polling system from 'kqueue epoll devpoll pollset poll select'...
configure: Using 'kqueue' polling system
checking for ANSI C header files... (cached) yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking time.h usability... yes
checking time.h presence... yes
checking for time.h... yes
checking for unistd.h... (cached) yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking netinet/tcp.h usability... yes
checking netinet/tcp.h presence... yes
checking for netinet/tcp.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking ifaddrs.h usability... yes
checking ifaddrs.h presence... yes
checking for ifaddrs.h... yes
checking sys/uio.h usability... yes
checking sys/uio.h presence... yes
checking for sys/uio.h... yes
checking sys/eventfd.h usability... no
checking sys/eventfd.h presence... no
checking for sys/eventfd.h... no
checking whether SO_PEERCRED is declared... no
checking whether LOCAL_PEERCRED is declared... no
checking for stdbool.h that conforms to C99... no
checking for _Bool... no
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for size_t... yes
checking for ssize_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking for uint32_t... yes
checking for working volatile... yes
configure: Using tweetnacl for CURVE security
checking "with_norm_ext = no"... no
checking how to enable additional warnings for C++ compiler... -Wall
checking whether compiler supports __atomic_Xxx intrinsics... yes
checking return type of signal handlers... void
checking for perror... yes
checking for gettimeofday... yes
checking for clock_gettime... yes
checking for memset... yes
checking for socket... yes
checking for getifaddrs... yes
checking for freeifaddrs... yes
checking for fork... yes
checking for posix_memalign... yes
checking for mkdtemp... yes
checking for accept4... no
checking alloca.h usability... yes
checking alloca.h presence... yes
checking for alloca.h... yes
checking whether signature of pthread_setname_np() has 1 argument... yes
checking whether signature of pthread_setname_np() has 2 arguments... no
checking whether signature of pthread_setname_np() has 3 arguments... no
checking whether pthread_set_name_np() exists... no
checking whether pthread_setaffinity_np() exists... no
checking whether SOCK_CLOEXEC is supported... no
checking whether O_CLOEXEC is supported... yes
checking whether SO_BINDTODEVICE is supported... no
checking whether SO_KEEPALIVE is supported... yes
checking whether TCP_KEEPCNT is supported... yes
checking whether TCP_KEEPIDLE is supported... no
checking whether TCP_KEEPINTVL is supported... yes
checking whether TCP_KEEPALIVE is supported... yes
checking whether getrandom is supported... no
checking for ./.git... no
configure: Building stable and legacy API (no draft API)
checking for LIBUNWIND... no
configure: WARNING: Cannot find libunwind
checking for clang-format... no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/libzmq.pc
config.status: creating doc/Makefile
config.status: creating builds/Makefile
config.status: creating builds/msvc/Makefile
config.status: creating src/platform.hpp
config.status: executing depfiles commands
config.status: executing libtool commands
[ 17%] Performing build step for 'zeromq'
Making all in doc
  CC       external/unity/unity.o
  CXX      src/src_libzmq_la-address.lo
  CXX      src/src_libzmq_la-client.lo
Switched to a new branch 'master'
Branch master set up to track remote branch master from origin.
[ 18%] No patch step for 'spdlog'
[ 18%] No update step for 'spdlog'
[ 19%] No configure step for 'spdlog'
[ 20%] No build step for 'spdlog'
[ 21%] No install step for 'spdlog'
  CXX      src/src_libzmq_la-clock.lo
[ 22%] Completed 'spdlog'
[ 22%] Built target spdlog
  CXX      src/src_libzmq_la-ctx.lo
Scanning dependencies of target yamlcpp
[ 23%] Creating directories for 'yamlcpp'
[ 24%] Performing download step (download, verify and extract) for 'yamlcpp'
-- Downloading...
   dst='/Users/gamache/code/Appcues/fluent/build/vendor/yamlcpp/src/yaml-cpp-0.6.2.tar.gz'
   timeout='none'
-- Using src='https://github.com/jbeder/yaml-cpp/archive/yaml-cpp-0.6.2.tar.gz'
-- Downloading... done
-- extracting...
     src='/Users/gamache/code/Appcues/fluent/build/vendor/yamlcpp/src/yaml-cpp-0.6.2.tar.gz'
     dst='/Users/gamache/code/Appcues/fluent/build/vendor/yamlcpp/src/yamlcpp'
-- extracting... [tar xfz]
-- extracting... [analysis]
-- extracting... [rename]
-- extracting... [clean up]
-- extracting... done
[ 24%] No patch step for 'yamlcpp'
[ 25%] No update step for 'yamlcpp'
[ 26%] Performing configure step for 'yamlcpp'
CMake Deprecation Warning at CMakeLists.txt:9 (cmake_policy):
  The OLD behavior for policy CMP0012 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.


CMake Deprecation Warning at CMakeLists.txt:13 (cmake_policy):
  The OLD behavior for policy CMP0015 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.


-- The C compiler identification is AppleClang 10.0.0.10001145
-- The CXX compiler identification is AppleClang 10.0.0.10001145
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/clang++
-- Check for working CXX compiler: /usr/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test FLAG_WEXTRA
-- Performing Test FLAG_WEXTRA - Success
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/gamache/code/Appcues/fluent/build/vendor/yamlcpp/src/yamlcpp
[ 27%] Performing build step for 'yamlcpp'
Scanning dependencies of target yaml-cpp
[  3%] Building CXX object CMakeFiles/yaml-cpp.dir/src/binary.cpp.o
  CXX      src/src_libzmq_la-curve_client.lo
[  6%] Building CXX object CMakeFiles/yaml-cpp.dir/src/convert.cpp.o
[  9%] Building CXX object CMakeFiles/yaml-cpp.dir/src/directives.cpp.o
  CXX      src/src_libzmq_la-curve_mechanism_base.lo
[ 12%] Building CXX object CMakeFiles/yaml-cpp.dir/src/emit.cpp.o
[ 16%] Building CXX object CMakeFiles/yaml-cpp.dir/src/emitfromevents.cpp.o
  CXX      src/src_libzmq_la-curve_server.lo
[ 19%] Building CXX object CMakeFiles/yaml-cpp.dir/src/emitter.cpp.o
[ 22%] Building CXX object CMakeFiles/yaml-cpp.dir/src/emitterstate.cpp.o
  CXX      src/src_libzmq_la-dealer.lo
[ 25%] Building CXX object CMakeFiles/yaml-cpp.dir/src/emitterutils.cpp.o
  CXX      src/src_libzmq_la-devpoll.lo
[ 29%] Building CXX object CMakeFiles/yaml-cpp.dir/src/exceptions.cpp.o
[ 32%] Building CXX object CMakeFiles/yaml-cpp.dir/src/exp.cpp.o
  CXX      src/src_libzmq_la-dgram.lo
[ 35%] Building CXX object CMakeFiles/yaml-cpp.dir/src/memory.cpp.o
  CXX      src/src_libzmq_la-dish.lo
[ 38%] Building CXX object CMakeFiles/yaml-cpp.dir/src/node.cpp.o
[ 41%] Building CXX object CMakeFiles/yaml-cpp.dir/src/node_data.cpp.o
[ 45%] Building CXX object CMakeFiles/yaml-cpp.dir/src/nodebuilder.cpp.o
  CXX      src/src_libzmq_la-dist.lo
[ 48%] Building CXX object CMakeFiles/yaml-cpp.dir/src/nodeevents.cpp.o
  CXX      src/src_libzmq_la-epoll.lo
[ 51%] Building CXX object CMakeFiles/yaml-cpp.dir/src/null.cpp.o
[ 54%] Building CXX object CMakeFiles/yaml-cpp.dir/src/ostream_wrapper.cpp.o
  CXX      src/src_libzmq_la-err.lo
  CXX      src/src_libzmq_la-fq.lo
[ 58%] Building CXX object CMakeFiles/yaml-cpp.dir/src/parse.cpp.o
  CXX      src/src_libzmq_la-gather.lo
[ 61%] Building CXX object CMakeFiles/yaml-cpp.dir/src/parser.cpp.o
[ 64%] Building CXX object CMakeFiles/yaml-cpp.dir/src/regex_yaml.cpp.o
  CXX      src/src_libzmq_la-gssapi_mechanism_base.lo
  CXX      src/src_libzmq_la-gssapi_client.lo
  CXX      src/src_libzmq_la-gssapi_server.lo
  CXX      src/src_libzmq_la-io_object.lo
[ 67%] Building CXX object CMakeFiles/yaml-cpp.dir/src/scanner.cpp.o
  CXX      src/src_libzmq_la-io_thread.lo
[ 70%] Building CXX object CMakeFiles/yaml-cpp.dir/src/scanscalar.cpp.o
  CXX      src/src_libzmq_la-ip.lo
[ 74%] Building CXX object CMakeFiles/yaml-cpp.dir/src/scantag.cpp.o
  CXX      src/src_libzmq_la-ipc_address.lo
[ 77%] Building CXX object CMakeFiles/yaml-cpp.dir/src/scantoken.cpp.o
  CXX      src/src_libzmq_la-ipc_connecter.lo
[ 80%] Building CXX object CMakeFiles/yaml-cpp.dir/src/simplekey.cpp.o
  CXX      src/src_libzmq_la-ipc_listener.lo
[ 83%] Building CXX object CMakeFiles/yaml-cpp.dir/src/singledocparser.cpp.o
  CXX      src/src_libzmq_la-kqueue.lo
[ 87%] Building CXX object CMakeFiles/yaml-cpp.dir/src/stream.cpp.o
[ 90%] Building CXX object CMakeFiles/yaml-cpp.dir/src/tag.cpp.o
  CXX      src/src_libzmq_la-lb.lo
[ 93%] Building CXX object CMakeFiles/yaml-cpp.dir/src/contrib/graphbuilder.cpp.o
[ 96%] Building CXX object CMakeFiles/yaml-cpp.dir/src/contrib/graphbuilderadapter.cpp.o
  CXX      src/src_libzmq_la-mailbox.lo
[100%] Linking CXX shared library libyaml-cpp.dylib
[100%] Built target yaml-cpp
[ 28%] No install step for 'yamlcpp'
[ 29%] Completed 'yamlcpp'
[ 29%] Built target yamlcpp
Scanning dependencies of target gmock
[ 30%] Building CXX object googletest-build/googlemock/CMakeFiles/gmock.dir/__/googletest/src/gtest-all.cc.o
  CXX      src/src_libzmq_la-mailbox_safe.lo
  CXX      src/src_libzmq_la-mechanism.lo
  CXX      src/src_libzmq_la-mechanism_base.lo
  CXX      src/src_libzmq_la-metadata.lo
  CXX      src/src_libzmq_la-msg.lo
[ 31%] Building CXX object googletest-build/googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o
  CXX      src/src_libzmq_la-mtrie.lo
  CXX      src/src_libzmq_la-norm_engine.lo
  CXX      src/src_libzmq_la-null_mechanism.lo
[ 32%] Linking CXX static library libgmock.a
[ 32%] Built target gmock
Scanning dependencies of target gmock_main
[ 33%] Building CXX object googletest-build/googlemock/CMakeFiles/gmock_main.dir/__/googletest/src/gtest-all.cc.o
  CXX      src/src_libzmq_la-object.lo
  CXX      src/src_libzmq_la-options.lo
  CXX      src/src_libzmq_la-own.lo
  CXX      src/src_libzmq_la-pair.lo
[ 34%] Building CXX object googletest-build/googlemock/CMakeFiles/gmock_main.dir/src/gmock-all.cc.o
  CXX      src/src_libzmq_la-pgm_receiver.lo
  CXX      src/src_libzmq_la-pgm_sender.lo
  CXX      src/src_libzmq_la-pgm_socket.lo
  CXX      src/src_libzmq_la-pipe.lo
  CXX      src/src_libzmq_la-plain_client.lo
[ 35%] Building CXX object googletest-build/googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o
[ 36%] Linking CXX static library libgmock_main.a
[ 36%] Built target gmock_main
  CXX      src/src_libzmq_la-plain_server.lo
Scanning dependencies of target gtest
[ 37%] Building CXX object googletest-build/googlemock/gtest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
  CXX      src/src_libzmq_la-poll.lo
  CXX      src/src_libzmq_la-poller_base.lo
  CXX      src/src_libzmq_la-pollset.lo
  CXX      src/src_libzmq_la-precompiled.lo
  CXX      src/src_libzmq_la-proxy.lo
[ 37%] Linking CXX static library libgtest.a
[ 37%] Built target gtest
  CXX      src/src_libzmq_la-pub.lo
[ 38%] Running C++ protocol buffer compiler on ./include/proto/replication.proto
[ 39%] Running C++ protocol buffer compiler on ./include/proto/misc.proto
Scanning dependencies of target flkvs-proto
[ 39%] Building CXX object kvs/CMakeFiles/flkvs-proto.dir/misc.pb.cc.o
  CXX      src/src_libzmq_la-pull.lo
[ 40%] Building CXX object kvs/CMakeFiles/flkvs-proto.dir/replication.pb.cc.o
[ 41%] Linking CXX static library libflkvs-proto.a
  CXX      src/src_libzmq_la-push.lo
[ 41%] Built target flkvs-proto
  CXX      src/src_libzmq_la-radio.lo
Scanning dependencies of target run_lattice_tests
[ 42%] Building CXX object kvs/tests/include/lattices/CMakeFiles/run_lattice_tests.dir/run_lattice_tests.cpp.o
  CXX      src/src_libzmq_la-random.lo
  CXX      src/src_libzmq_la-raw_decoder.lo
  CXX      src/src_libzmq_la-raw_encoder.lo
  CXX      src/src_libzmq_la-reaper.lo
[ 43%] Linking CXX executable run_lattice_tests
[ 43%] Built target run_lattice_tests
  CXX      src/src_libzmq_la-rep.lo
Scanning dependencies of target gtest_main
[ 44%] Building CXX object googletest-build/googlemock/gtest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o
  CXX      src/src_libzmq_la-req.lo
[ 45%] Linking CXX static library libgtest_main.a
[ 45%] Built target gtest_main
  CXX      src/src_libzmq_la-router.lo
  CXX      src/src_libzmq_la-scatter.lo
  CXX      src/src_libzmq_la-select.lo
  CXX      src/src_libzmq_la-server.lo
  CXX      src/src_libzmq_la-session_base.lo
  CXX      src/src_libzmq_la-signaler.lo
  CXX      src/src_libzmq_la-socket_base.lo
  CXX      src/src_libzmq_la-socks.lo
  CXX      src/src_libzmq_la-socks_connecter.lo
  CXX      src/src_libzmq_la-stream.lo
  CXX      src/src_libzmq_la-stream_engine.lo
  CXX      src/src_libzmq_la-sub.lo
  CXX      src/src_libzmq_la-tcp.lo
  CXX      src/src_libzmq_la-tcp_address.lo
  CXX      src/src_libzmq_la-tcp_connecter.lo
  CXX      src/src_libzmq_la-tcp_listener.lo
  CXX      src/src_libzmq_la-thread.lo
  CXX      src/src_libzmq_la-timers.lo
  CXX      src/src_libzmq_la-tipc_address.lo
  CXX      src/src_libzmq_la-tipc_connecter.lo
  CXX      src/src_libzmq_la-tipc_listener.lo
  CXX      src/src_libzmq_la-trie.lo
  CXX      src/src_libzmq_la-udp_address.lo
  CXX      src/src_libzmq_la-udp_engine.lo
  CXX      src/src_libzmq_la-v1_decoder.lo
  CXX      src/src_libzmq_la-v2_decoder.lo
  CXX      src/src_libzmq_la-v1_encoder.lo
  CXX      src/src_libzmq_la-v2_encoder.lo
  CXX      src/src_libzmq_la-vmci.lo
  CXX      src/src_libzmq_la-vmci_address.lo
  CXX      src/src_libzmq_la-vmci_connecter.lo
  CXX      src/src_libzmq_la-vmci_listener.lo
  CXX      src/src_libzmq_la-xpub.lo
  CXX      src/src_libzmq_la-xsub.lo
  CXX      src/src_libzmq_la-zmq.lo
  CXX      src/src_libzmq_la-zmq_utils.lo
  CXX      src/src_libzmq_la-decoder_allocators.lo
  CXX      src/src_libzmq_la-socket_poller.lo
  CXX      src/src_libzmq_la-zap_client.lo
  CC       src/src_libzmq_la-tweetnacl.lo
  CXX      tools/curve_keygen.o
  CXX      perf/local_lat.o
  CXX      perf/remote_lat.o
  CXX      perf/local_thr.o
  CXX      perf/remote_thr.o
  CXX      perf/inproc_lat.o
  CXX      perf/inproc_thr.o
  AR       external/unity/libunity.a
  CXXLD    src/libzmq.la
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-devpoll.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-epoll.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-gssapi_mechanism_base.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-gssapi_client.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-gssapi_server.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-norm_engine.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-pgm_receiver.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-pgm_sender.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-pgm_socket.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-poll.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-pollset.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-select.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-tipc_address.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-tipc_connecter.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-tipc_listener.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-vmci.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-vmci_address.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-vmci_connecter.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-vmci_listener.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-devpoll.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-epoll.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-gssapi_mechanism_base.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-gssapi_client.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-gssapi_server.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-norm_engine.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-pgm_receiver.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-pgm_sender.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-pgm_socket.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-poll.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-pollset.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-select.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-tipc_address.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-tipc_connecter.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-tipc_listener.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-vmci.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-vmci_address.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-vmci_connecter.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: src/.libs/libzmq.a(src_libzmq_la-vmci_listener.o) has no symbols
  CXXLD    perf/local_lat
  CXXLD    tools/curve_keygen
  CXXLD    perf/remote_lat
  CXXLD    perf/local_thr
  CXXLD    perf/remote_thr
  CXXLD    perf/inproc_lat
  CXXLD    perf/inproc_thr
[ 46%] No install step for 'zeromq'
[ 47%] Completed 'zeromq'
[ 47%] Built target zeromq
Scanning dependencies of target flzmq
[ 47%] Building CXX object CMakeFiles/flzmq.dir/include/zmq/zmq_util.cpp.o
[ 48%] Building CXX object CMakeFiles/flzmq.dir/include/zmq/socket_cache.cpp.o
[ 49%] Linking CXX static library libflzmq.a
[ 49%] Built target flzmq
Scanning dependencies of target flkvs-ring
[ 50%] Building CXX object kvs/src/hash_ring/CMakeFiles/flkvs-ring.dir/hash_ring.cpp.o
/Users/gamache/code/Appcues/fluent/kvs/src/hash_ring/hash_ring.cpp:184:12: error: no member named
      'cerr' in namespace 'std'
      std::cerr << "No servers have joined the cluster yet. Retrying request."
      ~~~~~^
/Users/gamache/code/Appcues/fluent/kvs/src/hash_ring/hash_ring.cpp:189:12: error: no member named
      'cerr' in namespace 'std'
      std::cerr
      ~~~~~^
2 errors generated.
make[2]: *** [kvs/src/hash_ring/CMakeFiles/flkvs-ring.dir/hash_ring.cpp.o] Error 1
make[1]: *** [kvs/src/hash_ring/CMakeFiles/flkvs-ring.dir/all] Error 2
make: *** [all] Error 2

Thanks for any help!

Rebuild Docker images when merging to master

When a change is merged to master, we should build a Docker image and push to Dockerhub. We need to create a Dockerhub account for the project first before doing this as well.

A detailed document

fluent and anna is cool ,Is there a detailed document?
It’s hard to learn without documentation.

Proposal: Create Docker containers for initialising an AWS cluster

Motivation:

  • I dont want to have to install stuff locally if im only going to use it for this
  • Portability - Other OS platforms can run the commands (Windows?) inside docker
  • Becomes more robust - specific versions of libs can be installed and tested as a unit rather than having the developer have to manage and debug these

Anna how tow use?

My should have a anna docker image,place how toe use thes docker?

Any advices of compaction & compression integrate with Anna's actor ?

Hi, riselab's researchers:

I have seen your kv write function, it's just a normal file i/o.

Anna can get high throughput but can't get similar compression rate like cassandra or scylla.

if I want to implement some LSM features in an Anna's actor thread, features as follows:

  1. memtables and WAL for cache write
  2. a background thread, that can check memtable size, and flush to ssfile when memtable up to special size.
  3. a background compaction checking thread, that can trigger a compaction action when the count of ssfiles until special size.
  4. a background compaction thread, that can compact many kvs at trigger time.

Like above, I need to use multi-thread in an Anna's actor threads, coordination in multi-threads will reduce Anna's actor throughput. Do you have any ideas for doing this?

What's more, I need really column storage to save a series of kvs, then I can use some algos to compress my data, such as simple8b, zigzag, snappy and so on. How can I achieve this in Anna?

Enable run-time specification of conf file via Kubernetes

All the run-time constants that the KVS relies on are now encapsulated in conf/kvs-config.yml, which means that we don't need to recompile the server in order to change them. This is great, but the problem is that they are fixed in the Docker image, which means that we do need to rebuild the Docker image to change constants, which is just as silly.

Instead, we should allow users to specify a server configuration when the create_cluster.sh script is called. Everything from this script would be coped into the run-time configuration. Note that we'd have to be careful of what's specified by Kubernetes and the bash scripts during cluster and node creation, but as long as we limit the conf file to only have things like node counts and replica counts, this should be fine. We should probably add a Python scripts that verifies the conf file before creating the cluster.

This will be particularly valuable when doing experiments.

Colocate routing and memory tier processes

We want to do this for a few reasons:

  • Reduce resource overhead & cost from having explicit routing tier
  • Enables more efficient request lifecycle -- GET requests can be transferred directly from the routing process to the server process for response

[Compile issue] Compiling fluent with GNU g++

Hi, I encounter a problem:
I pay attention on that the default compiler is clang.
Is it possible to use GNU g++ to compile this project, thus I can easily use it in my other projects?
I used to directly add the path of dependent libs to the CMake configuration files, and replace clang++ with g++ but failed.

Many thanks

Debug mode fails to compile

I got cannot find /usr/local/lib/clang/6.0.0/lib/linux/libclang_rt.profile-x86_64.a when building the repo in "Debug" mode

AWS getting started depends on non namespaced env vars

fluent/docs/getting-started-aws.md states that it requires NAME and KOPS... env vars

These env vars could
a) conflict with existing setups on a dev machine
b) If found without context they might not be identifiable to the code that uses them

Proposal:
Migrate these to a namespaced (and more descriptive) variable, say FLUENT_NAME or similar

can't find function_server.py

in getting-started.md

start the FaaS server

$ cd functions && python3 function_server.py

I can't find function_server.py , only have server.py in the directory.
When I use the command "python3 server.py" to start the script, I get errors as follows:
Traceback (most recent call last):
File "server.py", line 20, in
from benchmarks.server import *
File "/xxx/fluent-master/functions/benchmarks/server.py", line 7, in
from . import composition
File "/xxx/fluent-master/functions/benchmarks/composition.py", line 6, in
from include.functions_pb2 import *

Thanks!

Eliminate redundant gossip during durable PUT

Currently, durable PUT is implemented by letting the client issuing multiple PUT requests to servers that hold replicas. These servers, however, will again gossip the payload to each other, which is redundant. We should eliminate these gossips to improve performance.

Reduce per-key metadata overheads

There are a few places in which we could reduce metadata overheads:

  • Instead of tracking key access frequencies for every single key in the database, we should instead use a heavy hitters sketch to track the most frequently accessed keys.
  • We shouldn't explicitly cache and materialize the replication factor for a key whose rep factor is the default rep factor.
  • Depending on how we use key sizes and what for, it might make sense to store a histogram of key sizes rather than every single size.

Consider renaming the project

this project not google/search-engine friendly (obviously to attract more contributor)

there's already a lot of project called fluent or anna

suggestion: fluentkv or fluentanna

python client causes fluentkvs to segfault

i am trying to run fluentkvs and perform a query on it using the included python client it crashes on all get and put queries

# ./build/kvs/src/kvs/flkvs
No server type specified. The default behavior is to start the server in memory mode.
terminating with uncaught exception of type std::invalid_argument: stoi: no conversion
Aborted (core dumped)
#!bin/env python

from  anna.client import AnnaClient

anna_client = AnnaClient("localhost",ip="127.0.0.1")

anna_client.get("a")
anna_client.put("1","2")
print("hello there")

Node failure protocol is broken

We currently rely on Kubernetes to detect when nodes or containers fail and to bring them back up, but our software doesn't do the right thing on top of that.

When a node fails, k8s detects that its failed and restarts it with the same IP it had before it failed. The restarted node announces itself to the rest of the cluster with the same IP it had previously. The problem is that this IP will not be re-inserted into the existing hash rings on other nodes because they think they already knew about it and are receiving a duplicate message for whatever reason (e.g., it's a rebroadcast around the network by a lagging node). This means that the restarted node will not receive any of the keys its responsible for.

We don't want to remove the check for an already-existing node because that might trigger a ton of unnecessary gossip around the network

There are two ways we can address this without forcing a ton of extra gossip, I think:

  1. We implement a heartbeat protocol to detect when a node has died, broadcast that information to all the nodes so they remove the node from their hash rings, and wait for a new node to join. Cons: This could significantly increase repartitioning costs because we will pay the node-removal repartitioning cost and then pay the cost of addition.
  2. We rely on Kubernetes metadata to capture a "start count" for each node. When a node is added, it's start count is set to 1, and this count is incremented on every restart. When inserting a node into the hash ring, we also check to see what its previous start count was if it already existed, and we only add it and trigger gossip if the start count of the message we received is greater than the already-stored value. Cons: We're rely on Kubernetes metadata, which could be a single point of failure.

From @jhellerstein:
Be sure to separate failure detection discussion from failure recovery discussion. Also separate unexpected/transient failure from expected churn for cluster resizing.

Failure detection could be done in a couple of ways:

  1. Fluent detects (e.g. via heartbeats)
  2. K8s detects, restarts an empty node, the empty node announces that it lost its brain.

Goals for unexpected failure (put things back the way they were, quickly)

  • Restore replica minimums
  • Restore load balance and service capacity

Goals for planned resizing:

  • Establish load balance and service capacity on new config

Mechanisms:

  • Checkpoint/Restore node state (e.g. using external storage). (Can log rather than checkpoint).
  • Replication from peers
    • Use the basic gossip protocol
    • Develop a more efficient directed recovery protocol (avoid redundant key sending)

Key doesn't exist error returned during repartitioning

When nodes are added or removed from the cluster, we incrementally repartition data by gossiping keys to the new sets of nodes responsible for them. However, we immediately change the hash ring to reflect the new cluster state. As a result, requests will sometimes be sent to an old node once the key has been gossiped to a new node or to a new node that hasn't yet received the key. The result is that the user gets a "key does not exist" error.

We probably want to maintain both the old and new hash rings, so we can appropriately forward a request to the right node when it is sent to the wrong one. (Of course, we should be careful about making sure we don't infinite loop between the two if a key actually doesn't exist.)

Joe also proposed something related to multiple hash rings, which change at different rates (à la LSM), but I don't completely understand how this would work.

Hierarchical namespaces

The key value store currently only has a flat, global namespace. Hierarchical namespacing would be nice. We should also have privileged namespaces for things like system metadata, so that we don't have to rely on wonky key naming formats.

fail to install dependencies on OSX

./scripts/install-dependencies-osx.sh
Installing the following packages via homebrew:
* autoconf
* automake
* libtool
* build-essential
* unzip
* pkg-config
* wget
Updating Homebrew...
Error: No available formula with the name "build-essential"
Warning: homebrew/core is shallow clone. To get complete history run:
git -C "$(brew --repo homebrew/core)" fetch --unshallow

Error: No previously deleted formula found.
Error: No similarly named formulae found.
==> Searching taps on GitHub...
Error: No formulae found in taps.
./scripts/install-dependencies-osx.sh: line 55: unexpected EOF while looking for matching `"'
./scripts/install-dependencies-osx.sh: line 56: syntax error: unexpected end of file

Can Anna loss update when node failed before send merge request to other node?

Anna is multi master system and need coordination-free merge function to implement replica consistency.

Each Anna actor repeatedly checks for incoming requests for puts and gets from client proxies, serves those requests, and appends results to a local change set, which tracks the key-value pair updated within a period of time (the multicast epoch).

Now, during the epoch, if this node failed, Anna has any method to prevent loss of update?

Compile errors and warnings

$ scripts/build-all.sh 
-- The C compiler identification is GNU 8.1.1
-- The CXX compiler identification is Clang 6.0.1
-- Check for working C compiler: /bin/cc
-- Check for working C compiler: /bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/clang++
-- Check for working CXX compiler: /usr/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Found Protobuf: /usr/lib64/libprotobuf.so;-lpthread (found version "3.5.0") 
-- Found Protobuf: /usr/lib64/libprotobuf.so;-lpthread;-lpthread (found version "3.5.0") 
-- Downloading/updating googletest
-- Configuring done
-- Generating done
-- Build files have been written to: /src/github.com/fluent-project/fluent/build/googletest-download
Scanning dependencies of target googletest-download
[ 11%] Creating directories for 'googletest-download'
[ 22%] Performing download step (git clone) for 'googletest-download'
Cloning into 'googletest-src'...
Note: checking out 'release-1.8.0'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at ec44c6c Merge pull request #821 from mazong1123/master
[ 33%] No patch step for 'googletest-download'
[ 44%] Skipping update step for 'googletest-download'
[ 55%] No configure step for 'googletest-download'
[ 66%] No build step for 'googletest-download'
[ 77%] No install step for 'googletest-download'
[ 88%] No test step for 'googletest-download'
[100%] Completed 'googletest-download'
[100%] Built target googletest-download
-- Found PythonInterp: /bin/python (found version "2.7.15") 
-- Found Protobuf: /usr/lib64/libprotobuf.so;-lpthread;-lpthread;-lpthread (found version "3.5.0") 
-- Found Protobuf: /usr/lib64/libprotobuf.so;-lpthread;-lpthread;-lpthread;-lpthread (found version "3.5.0") 
-- Configuring done
-- Generating done
-- Build files have been written to: /src/github.com/fluent-project/fluent/build
Scanning dependencies of target zeromq
Scanning dependencies of target zeromqcpp
[  1%] Creating directories for 'zeromqcpp'
[  2%] Creating directories for 'zeromq'
[  3%] Performing download step (download, verify and extract) for 'zeromq'
[  4%] Performing download step (git clone) for 'zeromqcpp'
-- Downloading...
   dst='/src/github.com/fluent-project/fluent/build/vendor/zeromq/src/zeromq-4.2.5.tar.gz'
   timeout='none'
-- Using src='https://github.com/zeromq/libzmq/releases/download/v4.2.5/zeromq-4.2.5.tar.gz'
Cloning into 'zeromqcpp'...
-- Retrying...
-- Using src='https://github.com/zeromq/libzmq/releases/download/v4.2.5/zeromq-4.2.5.tar.gz'
-- [download 0% complete]
-- [download 1% complete]
-- [download 2% complete]
Already on 'master'
Your branch is up to date with 'origin/master'.
[  5%] No patch step for 'zeromqcpp'
[  6%] No update step for 'zeromqcpp'
[  7%] No configure step for 'zeromqcpp'
[  8%] No build step for 'zeromqcpp'
-- [download 4% complete]
[  9%] No install step for 'zeromqcpp'
[ 10%] Completed 'zeromqcpp'
[ 10%] Built target zeromqcpp
[ 11%] Running C++ protocol buffer compiler on ./include/proto/requests.proto
Scanning dependencies of target flproto
[ 12%] Building CXX object CMakeFiles/flproto.dir/requests.pb.cc.o
In file included from /src/github.com/fluent-project/fluent/build/requests.pb.cc:4:
/src/github.com/fluent-project/fluent/build/requests.pb.h:7:10: fatal error: 'string' file not found
#include <string>
         ^~~~~~~~
-- [download 5% complete]
1 error generated.
make[2]: *** [CMakeFiles/flproto.dir/build.make:71: CMakeFiles/flproto.dir/requests.pb.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:106: CMakeFiles/flproto.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
-- [download 6% complete]
.
.
.
-- [download 100% complete]
-- Downloading... done
-- extracting...
     src='/src/github.com/fluent-project/fluent/build/vendor/zeromq/src/zeromq-4.2.5.tar.gz'
     dst='/src/github.com/fluent-project/fluent/build/vendor/zeromq/src/zeromq'
-- extracting... [tar xfz]
-- extracting... [analysis]
-- extracting... [rename]
-- extracting... [clean up]
-- extracting... done
[ 14%] No update step for 'zeromq'
[ 14%] No patch step for 'zeromq'
[ 14%] Performing configure step for 'zeromq'
checking for a BSD-compatible install... /bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether UID '1000' is supported by ustar format... yes
checking whether GID '1000' is supported by ustar format... yes
checking how to create a ustar tar archive... gnutar
checking whether make supports nested variables... (cached) yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking whether C compiler accepts -std=gnu11... yes
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking whether g++ supports C++11 features by default... yes
checking for a sed that does not truncate output... /bin/sed
checking whether to build with code coverage support... no
checking for a sed that does not truncate output... (cached) /bin/sed
checking for gawk... (cached) gawk
checking for pkg-config... /bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for xmlto... /bin/xmlto
checking for asciidoc... /bin/asciidoc
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... (cached) /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /bin/ld
checking if the linker (/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /bin/nm -B
checking the name lister (/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... dlltool
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... no
checking if : is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... no
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /bin/ld -m elf_x86_64
checking if the linker (/bin/ld -m elf_x86_64) is GNU ld... yes
checking whether the g++ linker (/bin/ld -m elf_x86_64) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... yes
checking if g++ static flag -static works... no
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for valgrind... no
checking whether the C compiler works... yes
checking whether we are using Intel C compiler... no
checking whether we are using Sun Studio C compiler... no
checking whether we are using clang C compiler... no
checking whether we are using gcc >= 4 C compiler... yes
checking whether the C++ compiler works... yes
checking whether we are using Intel C++ compiler... no
checking whether we are using Sun Studio C++ compiler... no
checking whether we are using clang C++ compiler... no
checking whether we are using gcc >= 4 C++ compiler... yes
checking whether to enable debugging information... no
checking whether to enable code coverage... no
checking if TIPC is available and supports nonblocking connect... yes
checking whether to enable ASan... no
checking for library containing dladdr... -ldl
checking for pthread_create in -lpthread... yes
checking for clock_gettime in -lrt... yes
checking whether C++ compiler supports -fvisibility=hidden... yes
checking whether C++ compiler supports dso visibility... yes
checking for asciidoc... yes
checking for xmlto... yes
checking whether to build documentation... yes
checking whether to install manpages... yes
configure: Choosing polling system from 'kqueue epoll devpoll pollset poll select'...
configure: Using 'epoll' polling system with CLOEXEC
checking for ANSI C header files... (cached) yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking time.h usability... yes
checking time.h presence... yes
checking for time.h... yes
checking for unistd.h... (cached) yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking netinet/tcp.h usability... yes
checking netinet/tcp.h presence... yes
checking for netinet/tcp.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking ifaddrs.h usability... yes
checking ifaddrs.h presence... yes
checking for ifaddrs.h... yes
checking sys/uio.h usability... yes
checking sys/uio.h presence... yes
checking for sys/uio.h... yes
checking sys/eventfd.h usability... yes
checking sys/eventfd.h presence... yes
checking for sys/eventfd.h... yes
checking whether EFD_CLOEXEC is supported... yes
checking whether SO_PEERCRED is declared... yes
checking whether LOCAL_PEERCRED is declared... no
checking for stdbool.h that conforms to C99... no
checking for _Bool... no
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for size_t... yes
checking for ssize_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking for uint32_t... yes
checking for working volatile... yes
configure: Using tweetnacl for CURVE security
checking "with_norm_ext = no"... no
checking how to enable additional warnings for C++ compiler... -Wall
checking how to turn warnings to errors in C++ compiler... -Werror
checking how to enable strict standards compliance in C++ compiler... -pedantic
checking whether compiler supports __atomic_Xxx intrinsics... yes
checking return type of signal handlers... void
checking for perror... yes
checking for gettimeofday... yes
checking for clock_gettime... yes
checking for memset... no
checking for socket... yes
checking for getifaddrs... yes
checking for freeifaddrs... yes
checking for fork... no
checking for posix_memalign... no
checking for mkdtemp... yes
checking for accept4... yes
checking alloca.h usability... yes
checking alloca.h presence... yes
checking for alloca.h... yes
checking whether signature of pthread_setname_np() has 1 argument... no
checking whether signature of pthread_setname_np() has 2 arguments... yes
checking whether signature of pthread_setname_np() has 3 arguments... no
checking whether pthread_set_name_np() exists... no
checking whether pthread_setaffinity_np() exists... yes
checking whether SOCK_CLOEXEC is supported... yes
checking whether O_CLOEXEC is supported... yes
checking whether SO_BINDTODEVICE is supported... yes
checking whether SO_KEEPALIVE is supported... yes
checking whether TCP_KEEPCNT is supported... yes
checking whether TCP_KEEPIDLE is supported... yes
checking whether TCP_KEEPINTVL is supported... yes
checking whether TCP_KEEPALIVE is supported... no
checking whether getrandom is supported... yes
checking for ./.git... no
configure: Building stable and legacy API (no draft API)
checking for LIBUNWIND... yes
checking for dladdr in -ldl... yes
checking for clang-format... /bin/clang-format
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/libzmq.pc
config.status: creating doc/Makefile
config.status: creating builds/Makefile
config.status: creating builds/msvc/Makefile
config.status: creating src/platform.hpp
config.status: executing depfiles commands
config.status: executing libtool commands
[ 15%] Performing build step for 'zeromq'
make[3]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
Making all in doc
  CC       external/unity/unity.o
  AR       external/unity/libunity.a
  CXX      src/src_libzmq_la-address.lo
  CXX      src/src_libzmq_la-client.lo
  CXX      src/src_libzmq_la-clock.lo
  CXX      src/src_libzmq_la-ctx.lo
  CXX      src/src_libzmq_la-curve_client.lo
  CXX      src/src_libzmq_la-curve_mechanism_base.lo
  CXX      src/src_libzmq_la-curve_server.lo
  CXX      src/src_libzmq_la-dealer.lo
  CXX      src/src_libzmq_la-devpoll.lo
  CXX      src/src_libzmq_la-dgram.lo
  CXX      src/src_libzmq_la-dish.lo
  CXX      src/src_libzmq_la-dist.lo
  CXX      src/src_libzmq_la-epoll.lo
  CXX      src/src_libzmq_la-err.lo
  CXX      src/src_libzmq_la-fq.lo
  CXX      src/src_libzmq_la-gather.lo
  CXX      src/src_libzmq_la-gssapi_mechanism_base.lo
  CXX      src/src_libzmq_la-gssapi_client.lo
  CXX      src/src_libzmq_la-gssapi_server.lo
  CXX      src/src_libzmq_la-io_object.lo
  CXX      src/src_libzmq_la-io_thread.lo
  CXX      src/src_libzmq_la-ip.lo
  CXX      src/src_libzmq_la-ipc_address.lo
  CXX      src/src_libzmq_la-ipc_connecter.lo
  CXX      src/src_libzmq_la-ipc_listener.lo
  CXX      src/src_libzmq_la-kqueue.lo
  CXX      src/src_libzmq_la-lb.lo
  CXX      src/src_libzmq_la-mailbox.lo
  CXX      src/src_libzmq_la-mailbox_safe.lo
  CXX      src/src_libzmq_la-mechanism.lo
  CXX      src/src_libzmq_la-mechanism_base.lo
  CXX      src/src_libzmq_la-metadata.lo
  CXX      src/src_libzmq_la-msg.lo
  CXX      src/src_libzmq_la-mtrie.lo
  CXX      src/src_libzmq_la-norm_engine.lo
  CXX      src/src_libzmq_la-null_mechanism.lo
  CXX      src/src_libzmq_la-object.lo
  CXX      src/src_libzmq_la-options.lo
  CXX      src/src_libzmq_la-own.lo
  CXX      src/src_libzmq_la-pair.lo
  CXX      src/src_libzmq_la-pgm_receiver.lo
  CXX      src/src_libzmq_la-pgm_sender.lo
  CXX      src/src_libzmq_la-pgm_socket.lo
  CXX      src/src_libzmq_la-pipe.lo
  CXX      src/src_libzmq_la-plain_client.lo
  CXX      src/src_libzmq_la-plain_server.lo
  CXX      src/src_libzmq_la-poll.lo
  CXX      src/src_libzmq_la-poller_base.lo
  CXX      src/src_libzmq_la-pollset.lo
  CXX      src/src_libzmq_la-precompiled.lo
  CXX      src/src_libzmq_la-proxy.lo
  CXX      src/src_libzmq_la-pub.lo
  CXX      src/src_libzmq_la-pull.lo
  CXX      src/src_libzmq_la-push.lo
  CXX      src/src_libzmq_la-radio.lo
  CXX      src/src_libzmq_la-random.lo
  CXX      src/src_libzmq_la-raw_decoder.lo
  CXX      src/src_libzmq_la-raw_encoder.lo
  CXX      src/src_libzmq_la-reaper.lo
  CXX      src/src_libzmq_la-rep.lo
  CXX      src/src_libzmq_la-req.lo
  CXX      src/src_libzmq_la-router.lo
  CXX      src/src_libzmq_la-scatter.lo
  CXX      src/src_libzmq_la-select.lo
  CXX      src/src_libzmq_la-server.lo
  CXX      src/src_libzmq_la-session_base.lo
  CXX      src/src_libzmq_la-signaler.lo
  CXX      src/src_libzmq_la-socket_base.lo
  CXX      src/src_libzmq_la-socks.lo
  CXX      src/src_libzmq_la-socks_connecter.lo
  CXX      src/src_libzmq_la-stream.lo
  CXX      src/src_libzmq_la-stream_engine.lo
  CXX      src/src_libzmq_la-sub.lo
  CXX      src/src_libzmq_la-tcp.lo
  CXX      src/src_libzmq_la-tcp_address.lo
  CXX      src/src_libzmq_la-tcp_connecter.lo
  CXX      src/src_libzmq_la-tcp_listener.lo
  CXX      src/src_libzmq_la-thread.lo
  CXX      src/src_libzmq_la-timers.lo
  CXX      src/src_libzmq_la-tipc_address.lo
  CXX      src/src_libzmq_la-tipc_connecter.lo
  CXX      src/src_libzmq_la-tipc_listener.lo
  CXX      src/src_libzmq_la-trie.lo
  CXX      src/src_libzmq_la-udp_address.lo
  CXX      src/src_libzmq_la-udp_engine.lo
  CXX      src/src_libzmq_la-v1_decoder.lo
  CXX      src/src_libzmq_la-v2_decoder.lo
  CXX      src/src_libzmq_la-v1_encoder.lo
  CXX      src/src_libzmq_la-v2_encoder.lo
  CXX      src/src_libzmq_la-vmci.lo
  CXX      src/src_libzmq_la-vmci_address.lo
  CXX      src/src_libzmq_la-vmci_connecter.lo
  CXX      src/src_libzmq_la-vmci_listener.lo
  CXX      src/src_libzmq_la-xpub.lo
  CXX      src/src_libzmq_la-xsub.lo
  CXX      src/src_libzmq_la-zmq.lo
  CXX      src/src_libzmq_la-zmq_utils.lo
  CXX      src/src_libzmq_la-decoder_allocators.lo
  CXX      src/src_libzmq_la-socket_poller.lo
  CXX      src/src_libzmq_la-zap_client.lo
  CC       src/src_libzmq_la-tweetnacl.lo
  CXXLD    src/libzmq.la
  CXX      tools/curve_keygen.o
  CXXLD    tools/curve_keygen
  CXX      perf/local_lat.o
  CXXLD    perf/local_lat
  CXX      perf/remote_lat.o
  CXXLD    perf/remote_lat
  CXX      perf/local_thr.o
  CXXLD    perf/local_thr
  CXX      perf/remote_thr.o
  CXXLD    perf/remote_thr
  CXX      perf/inproc_lat.o
  CXXLD    perf/inproc_lat
  CXX      perf/inproc_thr.o
  CXXLD    perf/inproc_thr
[ 16%] No install step for 'zeromq'
[ 17%] Completed 'zeromq'
[ 17%] Built target zeromq
make: *** [Makefile:130: all] Error 2
$ cmake --version
cmake version 3.11.2

CMake suite maintained and supported by Kitware (kitware.com/cmake).

Im running Fedora 28 x86-64.

Random KVS server ZMQ error

The KVS server crashes at random intervals with a ZMQ error saying that an operation cannot be accomplished in the current state of some socket. This isn't a super useful error message, but my hunch is that this has to do with one of the REQ/REP sockets (probably the func_nodes_requester?) trying to send a message before receiving one, but I'm not sure.

Put system configuration parameters into KVS at runtime

There a bunch of system parameters that are configured in conf files and initialized as runtime variables, like the number of threads on a particular node type and the default replication factor. If we eventually want to make our policy engine pluggable and have privileged functions with access to system parameters, it would be nice if these were retrievable and modifiable from within the system.

error while running the scrpit/build-all.sh

While running this script, some source files turn out error, and the message is : no member named 'cerr' in namespace 'std'
It only can be build if I add the #include <iostream> in these files
os : mac high sierra 10.13.6

Hash Ring API should expose ordered data structures

Currently, the responsible_* and get_responsible_threads methods return ServerThreadSet objects, which are typedefed unordered_sets. However, the hash ring is actually order-sensitive, and there are cases where we want to exploit that order. The example that prompted this issue was in the node_join_handler in the server logic -- we want the first node to gossip lost data back to a rejoining node, but we can't figure out what the first node because we are getting an unordered data structure back. We should change this be a ServerThreadList and use ordered data structures everywhere, ignoring the order when possible.

@cw75, you mentioned that you had hacked around this somewhere else in the code, but I can't find it at the moment. Please comment here saying where that is, because we would ideally like all the guardrails in the current call stack and shouldn't avoid them.

Node removal is broken in kops scripts

The current node removal scripts k8s/remove-node.sh relies on an older version of the naming scheme for nodes. As a result, it doesn't actually do anything because it tries to delete nodes that don't actually exist.

Distribute the monitoring system

Currently, the monitoring system runs single node single threaded, which could be a bottleneck when we increase the scale of the workload. We should make it multi-threaded and distributed!

Fail to install dependencies on Centos7.2

Detected that this is a Fedora-based distribution.

No compiler is specified. Default compiler is clang++.
We currently are unable to support clang++ installation on Fedora distributions.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.