From 6c1a64bf58b58c731e862327101199cbcc2abd0a Mon Sep 17 00:00:00 2001 From: searchivairus Date: Wed, 7 Feb 2018 22:31:00 -0500 Subject: [PATCH] Fixing query-server/client --- .../cpp_client_server/QueryService_server.cpp | 6 ++-- query_server/cpp_client_server/makefile | 2 +- .../cpp_client_server/makefile.with_extras | 33 +++++++++++++++++++ .../python_client/protocol/QueryService.py | 8 ++--- query_server/python_client/query_client.py | 18 +++++----- 5 files changed, 51 insertions(+), 16 deletions(-) create mode 100644 query_server/cpp_client_server/makefile.with_extras diff --git a/query_server/cpp_client_server/QueryService_server.cpp b/query_server/cpp_client_server/QueryService_server.cpp index 3e83ef1..ec6e566 100644 --- a/query_server/cpp_client_server/QueryService_server.cpp +++ b/query_server/cpp_client_server/QueryService_server.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include "QueryService.h" #include @@ -40,6 +41,7 @@ #include "knnqueue.h" #include "methodfactory.h" #include "init.h" +#include "logging.h" #include "ztimer.h" #define MAX_SPIN_LOCK_QTY 1000000 @@ -448,7 +450,7 @@ void ParseCommandLineForServer(int argc, char*argv[], po::notify(vm); } catch (const exception& e) { Usage(argv[0], ProgOptDesc); - LOG(LIB_FATAL) << e.what() << endl; + LOG(LIB_FATAL) << e.what(); } if (vm.count("help") ) { @@ -532,7 +534,7 @@ int main(int argc, char *argv[]) { QueryTimeParams ); - initLibrary(LogFile.empty() ? LIB_LOGSTDERR:LIB_LOGFILE, LogFile.c_str()); + initLibrary(0, LogFile.empty() ? LIB_LOGSTDERR:LIB_LOGFILE, LogFile.c_str()); ToLower(DistType); diff --git a/query_server/cpp_client_server/makefile b/query_server/cpp_client_server/makefile index bd47e1b..315db12 100644 --- a/query_server/cpp_client_server/makefile +++ b/query_server/cpp_client_server/makefile @@ -2,7 +2,7 @@ NON_METRIC_SPACE_LIBRARY=../../similarity_search/ NON_METRIC_SPACE_LIBRARY_INC=$(NON_METRIC_SPACE_LIBRARY)/include NON_METRIC_SPACE_LIBRARY_LIB=$(NON_METRIC_SPACE_LIBRARY)/release -LIBS= -lthrift -lNonMetricSpaceLib -lgsl -lgslcblas -llshkit -lboost_program_options +LIBS= -lthrift -lNonMetricSpaceLib -lboost_program_options CXXFLAGS += -I$(NON_METRIC_SPACE_LIBRARY_INC) -I./gen-thrift/ # Enable C++11 diff --git a/query_server/cpp_client_server/makefile.with_extras b/query_server/cpp_client_server/makefile.with_extras new file mode 100644 index 0000000..bd47e1b --- /dev/null +++ b/query_server/cpp_client_server/makefile.with_extras @@ -0,0 +1,33 @@ +NON_METRIC_SPACE_LIBRARY=../../similarity_search/ +NON_METRIC_SPACE_LIBRARY_INC=$(NON_METRIC_SPACE_LIBRARY)/include +NON_METRIC_SPACE_LIBRARY_LIB=$(NON_METRIC_SPACE_LIBRARY)/release + +LIBS= -lthrift -lNonMetricSpaceLib -lgsl -lgslcblas -llshkit -lboost_program_options + +CXXFLAGS += -I$(NON_METRIC_SPACE_LIBRARY_INC) -I./gen-thrift/ +# Enable C++11 +CXXFLAGS += -std=c++11 +# OMP flags +CXXFLAGS += -fopenmp +# Debug flags +#CXXFLAGS += -g +#CXXFLAGS += -g -O3 +CXXFLAGS += -O3 + +BIN=query_server query_client + +all: $(BIN) + +clean: + rm -f *.o gen-thrift/*.o $(BIN) + +THRIFT_SRC=$(wildcard gen-thrift/*.cpp) +THRIFT_OBJ=$(patsubst %.cpp,%.o,$(THRIFT_SRC)) + +# Note -pthread: this enables threads!!! +query_server: $(THRIFT_OBJ) QueryService_server.o gen-thrift/*.h makefile $(NON_METRIC_SPACE_LIBRARY_LIB)/libNonMetricSpaceLib.a + $(CXX) -o$@ $(THRIFT_OBJ) QueryService_server.o -L/usr/local/lib -L$(NON_METRIC_SPACE_LIBRARY_LIB) $(LIBS) -pthread -fopenmp + +query_client: $(THRIFT_OBJ) QueryClient.o gen-thrift/*.h makefile $(NON_METRIC_SPACE_LIBRARY_LIB)/libNonMetricSpaceLib.a + $(CXX) -o$@ $(THRIFT_OBJ) QueryClient.o -L/usr/local/lib -L$(NON_METRIC_SPACE_LIBRARY_LIB) $(LIBS) -pthread -fopenmp + diff --git a/query_server/python_client/protocol/QueryService.py b/query_server/python_client/protocol/QueryService.py index cae1318..67b2881 100644 --- a/query_server/python_client/protocol/QueryService.py +++ b/query_server/python_client/protocol/QueryService.py @@ -237,7 +237,7 @@ class Processor(Iface, TProcessor): result = setQueryTimeParams_result() try: self._handler.setQueryTimeParams(args.queryTimeParams) - except QueryException, err: + except(QueryException, err): result.err = err oprot.writeMessageBegin("setQueryTimeParams", TMessageType.REPLY, seqid) result.write(oprot) @@ -251,7 +251,7 @@ class Processor(Iface, TProcessor): result = knnQuery_result() try: result.success = self._handler.knnQuery(args.k, args.queryObj, args.retExternId, args.retObj) - except QueryException, err: + except(QueryException, err): result.err = err oprot.writeMessageBegin("knnQuery", TMessageType.REPLY, seqid) result.write(oprot) @@ -265,7 +265,7 @@ class Processor(Iface, TProcessor): result = rangeQuery_result() try: result.success = self._handler.rangeQuery(args.r, args.queryObj, args.retExternId, args.retObj) - except QueryException, err: + except(QueryException, err): result.err = err oprot.writeMessageBegin("rangeQuery", TMessageType.REPLY, seqid) result.write(oprot) @@ -279,7 +279,7 @@ class Processor(Iface, TProcessor): result = getDistance_result() try: result.success = self._handler.getDistance(args.obj1, args.obj2) - except QueryException, err: + except(QueryException, err): result.err = err oprot.writeMessageBegin("getDistance", TMessageType.REPLY, seqid) result.write(oprot) diff --git a/query_server/python_client/query_client.py b/query_server/python_client/query_client.py index 4448c9b..f168e9c 100755 --- a/query_server/python_client/query_client.py +++ b/query_server/python_client/query_client.py @@ -14,7 +14,7 @@ from datetime import datetime import argparse def error_exit(s): - print "Error: %s" % s + print("Error: %s" % s) sys.exit(1) parser = argparse.ArgumentParser() @@ -36,7 +36,7 @@ retObj = args.retObj retExternId = args.retObj try: - print "Host %s socket %d" % (host,port) + print("Host %s socket %d" % (host,port)) # Make socket transport = TSocket.TSocket(host, port) # Buffering is critical. Raw sockets are very slow @@ -62,13 +62,13 @@ try: k = args.knn if not args.range is None: error_exit('Range search is not allowed if the KNN search is specified!') - print "Running %d-NN search" % k + print("Running %d-NN search" % k) res = client.knnQuery(k, queryObj, retObj, retExternId) elif not args.range is None: r = args.range if not args.knn is None: error_exit('KNN search is not allowed if the range search is specified') - print "Running range search, range=%f" % r + print("Running range search, range=%f" % r) res = client.rangeQuery(r, queryObj, retObj, retExternId) else: error_exit("Wrong search type %s" % searchType) @@ -79,18 +79,18 @@ try: elapsed = diff.seconds * 1e3 + diff.microseconds / 1e3 - print "Finished in %f ms" % elapsed + print("Finished in %f ms" % elapsed) for e in res: s='' if retExternId: s='externId=' + e.externId - print "id=%d dist=%f %s" % (e.id, e.dist, s) + print("id=%d dist=%f %s" % (e.id, e.dist, s)) if retObj: - print e.obj + print(e.obj) # Close! transport.close() -except Thrift.TException, tx: - print '%s' % (tx.message) +except(Thrift.TException, tx): + print('%s' % (tx.message))