Date: Fri, 17 May 2013 09:42:44 GMT From: Veniamin Gvozdikov <g.veniamin@googlemail.com> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/178709: [new port]: databases/hyperdex Searchable distributed key-value store Message-ID: <201305170942.r4H9gi6j097528@oldred.FreeBSD.org> Resent-Message-ID: <201305170950.r4H9o1CE078362@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 178709 >Category: ports >Synopsis: [new port]: databases/hyperdex Searchable distributed key-value store >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Fri May 17 09:50:01 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Veniamin Gvozdikov >Release: FreeBSD 9.1-RELEASE >Organization: >Environment: FreeBSD ololo 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243825: Tue Dec 4 09:23:10 UTC 2012 root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64 >Description: HyperDex is a next-generation key-value store with the following features: Fast HyperDex has lower latency, higher throughput, and lower variance than other key-value stores. Specifically, HyperDex is a factor of 2-14 faster than MongoDB, Cassandra and Redis on the industry-standard YCSB benchmarks. Searchable HyperDex enables lookups of non-primary data attributes. Such searches are implemented efficiently and contact a small number of servers. Scalable HyperDex scales as more machines are added to the system. Consistent The value you GET is always the latest value you PUT. Not just "eventually," but immediately and always. Fault tolerant HyperDex handles failures. Data is automatically replicated on multiple machines so that failures do not cause data loss >How-To-Repeat: >Fix: # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # hyperdex # hyperdex/pkg-descr # hyperdex/files # hyperdex/files/patch-coordinator_coordinator.cc # hyperdex/files/patch-tools_async-benchmark.cc # hyperdex/files/patch-tools_benchmark.cc # hyperdex/files/patch-coordinator_coordinator.h # hyperdex/files/patch-common_serialization.cc # hyperdex/files/patch-daemon_index_encode.cc # hyperdex/files/patch-common_float_encode.cc # hyperdex/files/patch-daemon_daemon.cc # hyperdex/Makefile # hyperdex/distinfo # hyperdex/pkg-plist # echo c - hyperdex mkdir -p hyperdex > /dev/null 2>&1 echo x - hyperdex/pkg-descr sed 's/^X//' >hyperdex/pkg-descr << '4f081fa0d18b9bdbe033b8c3e7675d01' XHyperDex is a next-generation key-value store with the following features: X XFast HyperDex has lower latency, higher throughput, and lower variance than Xother key-value stores. Specifically, HyperDex is a factor of 2-14 Xfaster than MongoDB, Cassandra and Redis on the industry-standard XYCSB benchmarks. X XSearchable HyperDex enables lookups of non-primary data attributes. Such Xsearches are implemented efficiently and contact a small number of servers. X XScalable HyperDex scales as more machines are added to the system. X XConsistent The value you GET is always the latest value you PUT. Not just X"eventually," but immediately and always. X XFault tolerant HyperDex handles failures. Data is automatically replicated Xon multiple machines so that failures do not cause data loss X XWWW: http://hyperdex.org 4f081fa0d18b9bdbe033b8c3e7675d01 echo c - hyperdex/files mkdir -p hyperdex/files > /dev/null 2>&1 echo x - hyperdex/files/patch-coordinator_coordinator.cc sed 's/^X//' >hyperdex/files/patch-coordinator_coordinator.cc << '2c6c3d82b98ce75bb5bc5a30afda5d29' X--- coordinator/coordinator.cc.orig 2013-05-14 12:36:06.346911864 +0000 X+++ coordinator/coordinator.cc 2013-05-14 12:41:43.671911204 +0000 X@@ -424,7 +424,7 @@ X fprintf(log, "initializing HyperDex cluster with id %lu\n", token); X m_cluster = token; X memset(&m_seed, 0, sizeof(m_seed)); X-#ifdef __APPLE__ X+#if defined __APPLE__ || defined __FreeBSD__ X srand(m_seed); X #else X srand48_r(m_cluster, &m_seed); X@@ -1308,7 +1308,7 @@ X X while (available.size() > replicas.size()) X { X-#ifdef __APPLE__ X+#if defined __APPLE__ || defined __FreeBSD__ X int y; X y = rand_r(&m_seed); X #else 2c6c3d82b98ce75bb5bc5a30afda5d29 echo x - hyperdex/files/patch-tools_async-benchmark.cc sed 's/^X//' >hyperdex/files/patch-tools_async-benchmark.cc << '7bd11c58c139ff850ceef507e0ddd5d4' X--- tools/async-benchmark.cc.orig 2013-05-14 13:54:17.292911708 +0000 X+++ tools/async-benchmark.cc 2013-05-15 11:54:22.354909975 +0000 X@@ -26,6 +26,8 @@ X // POSSIBILITY OF SUCH DAMAGE. X X // POSIX X+#define _WITH_GETLINE X+#include <stdio.h> X #include <errno.h> X X // STL X@@ -112,7 +114,7 @@ X assert(o->line == NULL); X assert(o->line_sz == 0); X X- ssize_t amt = getline(&o->line, &o->line_sz, fin); X+ ssize_t amt = ::getline(&o->line, &o->line_sz, fin); X X if (amt < 0) X { 7bd11c58c139ff850ceef507e0ddd5d4 echo x - hyperdex/files/patch-tools_benchmark.cc sed 's/^X//' >hyperdex/files/patch-tools_benchmark.cc << '1b08280a468d53a283375a530edf4cda' X--- tools/benchmark.cc.orig 2013-05-15 06:14:45.662910140 +0000 X+++ tools/benchmark.cc 2013-05-15 06:15:27.639909533 +0000 X@@ -26,6 +26,8 @@ X // POSSIBILITY OF SUCH DAMAGE. X X // POSIX X+#define _WITH_GETLINE X+#include <stdio.h> X #include <errno.h> X X // LevelDB 1b08280a468d53a283375a530edf4cda echo x - hyperdex/files/patch-coordinator_coordinator.h sed 's/^X//' >hyperdex/files/patch-coordinator_coordinator.h << '1b46e92c15a7528625a2af13c4c79f3b' X--- coordinator/coordinator.h.orig 2013-05-14 12:44:44.359909945 +0000 X+++ coordinator/coordinator.h 2013-05-14 12:45:03.875912156 +0000 X@@ -146,7 +146,7 @@ X std::vector<std::pair<region_id, server_id> > m_region_server_references; X std::auto_ptr<e::buffer> m_latest_config; // cached config X std::auto_ptr<e::buffer> m_resp; // response space X-#ifdef __APPLE__ X+#if defined __APPLE__ || defined __FreeBSD__ X unsigned int m_seed; X #else X drand48_data m_seed; 1b46e92c15a7528625a2af13c4c79f3b echo x - hyperdex/files/patch-common_serialization.cc sed 's/^X//' >hyperdex/files/patch-common_serialization.cc << 'a96e1bfc9dcc8a2e77f9b520bf7df84e' X--- common/serialization.cc.orig 2013-05-14 12:33:50.140913585 +0000 X+++ common/serialization.cc 2013-05-14 12:34:19.696912124 +0000 X@@ -50,7 +50,7 @@ X rhs.pack(&sa, 0); X #ifdef _MSC_VER X memmove(data, &sa.sin6_addr.u.Byte, 16); X-#elif defined __APPLE__ X+#elif defined __APPLE__ || defined __FreeBSD__ X memmove(data, &sa.sin6_addr.__u6_addr.__u6_addr8, 16); X #else X memmove(data, &sa.sin6_addr.__in6_u.__u6_addr8, 16); X@@ -91,7 +91,7 @@ X in6_addr ia; X #ifdef _MSC_VER X memmove(ia.u.Byte, rem.data(), 16); X-#elif defined __APPLE__ X+#elif defined __APPLE__ || defined __FreeBSD__ X memmove(ia.__u6_addr.__u6_addr8, rem.data(), 16); X #else X memmove(ia.__in6_u.__u6_addr8, rem.data(), 16); a96e1bfc9dcc8a2e77f9b520bf7df84e echo x - hyperdex/files/patch-daemon_index_encode.cc sed 's/^X//' >hyperdex/files/patch-daemon_index_encode.cc << '7939e7a6a4f0e935cf94dfecd74926a9' X--- daemon/index_encode.cc.orig 2013-05-14 13:34:51.139911307 +0000 X+++ daemon/index_encode.cc 2013-05-14 13:35:05.215911622 +0000 X@@ -33,7 +33,7 @@ X #include <cstdlib> X X // Linux X-#ifdef __APPLE__ X+#if defined __APPLE__ || __FreeBSD__ X #include <osx/ieee754.h> X #else X #include <ieee754.h> 7939e7a6a4f0e935cf94dfecd74926a9 echo x - hyperdex/files/patch-common_float_encode.cc sed 's/^X//' >hyperdex/files/patch-common_float_encode.cc << 'c880c929b22a8c76342cf897977824cb' X--- common/float_encode.cc.orig 2013-05-14 13:13:46.020911210 +0000 X+++ common/float_encode.cc 2013-05-14 13:14:14.184910633 +0000 X@@ -36,7 +36,7 @@ X #include <cstdlib> X X // Linux X-#ifdef __APPLE__ X+#if defined __APPLE__ || defined __FreeBSD__ X #include <osx/ieee754.h> X #else X #include <ieee754.h> c880c929b22a8c76342cf897977824cb echo x - hyperdex/files/patch-daemon_daemon.cc sed 's/^X//' >hyperdex/files/patch-daemon_daemon.cc << '4b243d2e42b81a777c625ae64edac1bd' X--- daemon/daemon.cc.orig 2013-05-14 13:22:58.881910010 +0000 X+++ daemon/daemon.cc 2013-05-14 13:32:31.434911933 +0000 X@@ -43,6 +43,13 @@ X #include "common/serialization.h" X #include "daemon/daemon.h" X X+#ifdef __FreeBSD__ X+#include <sys/param.h> X+#include <sys/cpuset.h> X+#include <pthread_np.h> X+typedef cpuset_t cpu_set_t; X+#endif X+ X using hyperdex::daemon; X X int s_interrupts = 0; 4b243d2e42b81a777c625ae64edac1bd echo x - hyperdex/Makefile sed 's/^X//' >hyperdex/Makefile << 'bd8cd84cb0326e7e6245e3e77e54ab24' X# Created by: Gvozdikov Veniamin <g.veniamin@googlemail.com> X# $FreeBSD$ X XPORTNAME= hyperdex XPORTVERSION= 1.0 XCATEGORIES= databases XMASTER_SITES= http://hyperdex.org/src/ XDISTNAME= ${PORTNAME}-${PORTVERSION}.rc4 X XMAINTAINER= g.veniamin@googlemail.com XCOMMENT= Searchable distributed key-value store X XLICENSE= BSD X XBUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/libpo6.pc:${PORTSDIR}/devel/libpo6 XLIB_DEPENDS= e:${PORTSDIR}/devel/libe \ X cityhash:${PORTSDIR}/devel/cityhash \ X glog:${PORTSDIR}/devel/glog \ X popt:${PORTSDIR}/devel/popt \ X replicant:${PORTSDIR}/sysutils/replicant X XONLY_FOR_ARCHS= amd64 X XGNU_CONFIGURE= yes XONLY_FOR_ARCHS= amd64 XUSE_GCC= 4.6+ XUSE_LDCONFIG= yes XUSE_PYTHON= yes XUSES= pathfix pkgconfig XCONFIGURE_ARGS= CXXFLAGS="-I${LOCALBASE}/include" \ X LDFLAGS="-L${LOCALBASE}/lib" X XMAN1= hyperdex.1 X XOPTIONS_DEFINE= ALL_LOG GTEST PY_BINDINGS WARNINGS XALL_LOG_DESC= Enable all messages in log XPY_BINDINGS_DESC= Enable Python bindings XGTEST_DESC= Enable tests using the Google C++ XWARNINGS_DESC= Enable many warnings X X.include <bsd.port.options.mk> X X.if ${PORT_OPTIONS:MALL_LOG} XCONFIGURE_ARGS+= --enable-log-all-messages X.endif X X.if ${PORT_OPTIONS:MGTEST} XLIB_DEPENDS+= gtest:${PORTSDIR}/devel/googletest XCONFIGURE_ARGS+= --enable-gtest X.endif X X.if ${PORT_OPTIONS:MPY_BINDINGS} X#RUN_DEPENDS+= devel/py-parsing XCONFIGURE_ARGS+= --enable-python-bindings XPLIST_SUB+= PY_BINDINGS="" X.else XPLIST_SUB+= PY_BINDINGS="@comment " X.endif X X.if ${PORT_OPTIONS:MWARNINGS} XCONFIGURE_ARGS+= --enable-wanal-cxxflags X.endif X X.include <bsd.port.mk> bd8cd84cb0326e7e6245e3e77e54ab24 echo x - hyperdex/distinfo sed 's/^X//' >hyperdex/distinfo << 'ea8919aaad9a02dafdb3c6b1439146a5' XSHA256 (hyperdex-1.0.rc4.tar.gz) = cff1df7adedde3fb02696eab3cc9cf1644cb6abdb3719ec16d55e6d36eddd278 XSIZE (hyperdex-1.0.rc4.tar.gz) = 1185411 ea8919aaad9a02dafdb3c6b1439146a5 echo x - hyperdex/pkg-plist sed 's/^X//' >hyperdex/pkg-plist << '45afc1ce089a5d716bd8f946104c7e1a' Xbin/hyperdex Xbin/hyperdex-replication-stress-test Xbin/hyperdex-search-stress-test Xbin/hyperdex-simple-consistency-stress-test Xinclude/hyperclient.h Xinclude/hyperdex.h Xlib/libhyperclient.a Xlib/libhyperclient.la Xlib/libhyperclient.so Xlib/libhyperclient.so.0 Xlibdata/pkgconfig/hyperclient.pc Xlibexec/hyperdex-1.0.rc4/hyperdex-add-space Xlibexec/hyperdex-1.0.rc4/hyperdex-async-benchmark Xlibexec/hyperdex-1.0.rc4/hyperdex-benchmark Xlibexec/hyperdex-1.0.rc4/hyperdex-coordinator Xlibexec/hyperdex-1.0.rc4/hyperdex-daemon Xlibexec/hyperdex-1.0.rc4/hyperdex-initialize-cluster Xlibexec/hyperdex-1.0.rc4/hyperdex-initiate-transfer Xlibexec/hyperdex-1.0.rc4/hyperdex-rm-space Xlibexec/hyperdex-1.0.rc4/hyperdex-show-config Xlibexec/hyperdex-1.0.rc4/libhypercoordinator.a Xlibexec/hyperdex-1.0.rc4/libhypercoordinator.la Xlibexec/hyperdex-1.0.rc4/libhypercoordinator.so Xlibexec/hyperdex-1.0.rc4/libhypercoordinator.so.0 X%%PY_BINDINGS%%%%PYTHON_SITELIBDIR%%/hyperclient.a X%%PY_BINDINGS%%%%PYTHON_SITELIBDIR%%/hyperclient.la X%%PY_BINDINGS%%%%PYTHON_SITELIBDIR%%/hyperclient.so X@dirrm libexec/hyperdex-1.0.rc4 X%%PY_BINDINGS%%@dirrmtry %%PYTHON_LIBDIR%%/site-packages X%%PY_BINDINGS%%@dirrmtry %%PYTHON_LIBDIR%% 45afc1ce089a5d716bd8f946104c7e1a exit >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201305170942.r4H9gi6j097528>