quickstep-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dylan Bacon <dba...@wisc.edu>
Subject Re: Quickstep Network Mode and C++ Sockets
Date Mon, 04 Dec 2017 20:30:27 GMT
Got this end of things working and am now talking to Quickstep remotely. 
Is there a simple or built in way to parse our query result format or do 
I just have to manually parse through all the column delimiters?


On 11/30/17 6:24 PM, Jianqiao wrote:
> Yes. NetworkCliClient is quite standalone. The dependencies are:
> ----
> (1) #include <grpc++/grpc++.h>
> (2) #include "cli/NetworkCli.grpc.pb.h"
> (3) #include "cli/NetworkCli.pb.h"
> (4) #include "utility/Macros.hpp"
> ----
>
> To write your own client:
> ----
> (A) Setup grpc so that you can include the header files and link to it.
>
> (B) Grab NetworkCli.proto (https://github.com/apache/
> incubator-quickstep/blob/master/cli/NetworkCli.proto), change the package
> name if necessary (originally quickstep).
> Either
> (B.1) use grpc/protobuf tools to compile NetworkCli.proto to generate (2)
> and (3) -- see https://github.com/apache/incubator-quickstep/blob/
> master/cli/CMakeLists.txt#L53
> or
> (B.2) compile quickstep and grab the files from build/cli/
>
> (C) Copy the NetworkCliClient class from QS into your client code.
> ----
>
> (A)/(B) may be somehow annoying to handle as you need to search through
> various documentations ...
>
>
> Best,
> Jianqiao
>
> 2017-11-30 17:07 GMT-06:00 Dylan Bacon <dbacon@wisc.edu>:
>
>> So NetworkCliClient should be something I'm able to include in my program
>> along with the appropriate dependencies and use as the API? I was thinking
>> about needing to do that but I wasn't sure if that was a standalone API QS
>> has implemented or a core part of the system. Unless I'm being mistaken and
>> you're talking about something from gRPC. This is my first time working
>> with it.
>>
>>
>>
>> On 11/30/17 4:58 PM, Jianqiao wrote:
>>
>>> Hi Dylan,
>>>
>>> Currently the network mode is using gRPC, so you probably need to use the
>>> corresponding API (see
>>> https://github.com/apache/incubator-quickstep/blob/master/
>>> cli/NetworkCliClientMain.cpp#L42
>>> as an example). The raw socket connection won't work unless you hack
>>> gRPC's
>>> message exchange protocol ..
>>>
>>> Best,
>>> Jianqiao
>>>
>>> 2017-11-30 16:49 GMT-06:00 Dylan Bacon <dbacon@wisc.edu>:
>>>
>>> Hello,
>>>> I am attempting to interface with Quickstep using its NetworkCliClient
>>>> and
>>>> it's not working as I would expect. I have the default port and IP set to
>>>> 3000 and 0.0.0.0 and am attempting to send single queries to be processed
>>>> over in my test harness. From what I could tell of the code when QS is in
>>>> network mode it accepts a socket connection and string input from that
>>>> function and processes it in NetworkCliClient.hpp and
>>>> NetworkCliClientMain.cpp, and yet this is not happening with my test
>>>> code.
>>>> The connection is being established but Quickstep does not seem to be
>>>> doing
>>>> anything with the queries that come in.
>>>>
>>>> Attached is the test code that I am using. test is just a table by that
>>>> name, I'm selecting a literal from it so the contents shouldn't matter.
>>>> I've also attempted to create a table with this but Quickstep did not
>>>> process that.
>>>>
>>>> --
>>>> Regards,
>>>>
>>>> Dylan Bacon
>>>> University of Wisconsin - Madison
>>>> Department of Computer Sciences
>>>> dbacon@wisc.edu
>>>>
>>>>
>>>>


Mime
View raw message