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)

Reply via email to