Uploaded image for project: 'Bookkeeper'
  1. Bookkeeper
  2. BOOKKEEPER-896

VM-local transport

    XMLWordPrintableJSON

    Details

      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

            Activity

              People

              • Assignee:
                eolivelli Enrico Olivelli
                Reporter:
                eolivelli Enrico Olivelli
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: