Hi Zuyu,
Yes, that helps. I am making a prototype right now where I took the
QuickstepCli code and made another executable, QuickstepServer. The server
does all of the same initialization process. The main difference is that,
instead of communicating with a linereader, it must communicate with a
NetworkWrapper. Also, communication must not be one-way and rely on prints
to the screen, but it is two way and sends the results of STDOUT and ERR to
the NetworkWrapper.

Once the prototype is complete, we'll have a better idea if the CLI can be
refactored to save some code duplication.

--Marc

On Fri, Mar 31, 2017 at 3:06 PM, Zuyu Zhang <z...@cs.wisc.edu> wrote:

> Hi Marc,
>
> The distributed version uses the network-based implementation of TMB to
> communicate among multiple components, including DistributedCli, Conductor
> (which contains Foreman), and Executor (which contains a Worker pool). We
> have defined additional TMB message types for the communication.
>
> For your purpose, you might want to split QuickstepCli.cpp into two new
> executables, one for the cli, and one the database core. Both need to link
> the Protobuf 3 and gRPC. And then, the python program could talk to the cli
> executable to send a query or a command.
>
> Hope it helps.
>
> Cheers,
> Zuyu
>

Reply via email to