Enrico Olivelli created BOOKKEEPER-896:
------------------------------------------
Summary: VM-local transport
Key: BOOKKEEPER-896
URL: https://issues.apache.org/jira/browse/BOOKKEEPER-896
Project: Bookkeeper
Issue Type: New Feature
Components: bookkeeper-client, bookkeeper-server
Affects Versions: 4.4.0
Reporter: Enrico Olivelli
Priority: Minor
Hi,
I’m wondering if it is feasible to have a way to launch a Bookie and a
Bookkeeper client in the same JVM without using network, valid use cases are:
1) Unit testing
2) Installations using a single Bookie
1) Unit testing
For unit testing I’m using mock classes which reproduce the functions of
Bookkeeper but it makes my code more complex.
Running network-related libraries limits the possibility of running tests in
parallel and slows down the overall throughput of the tests
2) Single Bookie deployment
Sometimes I need to launch software which uses Bookkeeper in a single-machine
deployment, in this case using an embedded Bookie will let to have only a
single JVM process which runs the full stack of the service.
For instance when I’m using Bookkeeper as a commit log I need to implement a
commit log which uses Bookkeeper for replicated deployments, a simple “file”
based commit log and a pure in-memory commit log for unit testing.
I think it could be done using Netty LocalServerChannelFactory (and related
client-side classes) and some tricks about the use of hostnames, registration
on Zookeeper and so on
Of course the same issue will be on Zookkeeper
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)