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

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

              Dates

                Created:
                Updated:
                Resolved: