Details
-
New Feature
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
4.4.0
-
None
Description
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
Attachments
Issue Links
- is related to
-
BOOKKEEPER-930 Option to disable Bookie networking
- Resolved