Open
Description
BP
This is the master ticket for tracking BP-29 :
We have already abstracted all the metadata operations into interfaces. And all the bookkeeper implementations only reply on metadata interfaces, rather than depending on zookeeper. This proposal is to organize the metadata interfaces and its implementations in a separate module and make bookkeeper implementation only depends on metadata interfaces, not depends on zookeeper. This would a few benefits:
- It allows supporting different metadata storages, without bringing in dependencies of metadata store implementation directly into bookkeeper-server module. The development of different metadata storage can be done without interleaving with each other.
- It would define a clean module dependency between bookkeeper implementation and metadata api, and how bookkeeper load a different metadata implementation.
Proposal PR - #1117
Tasks:
- Introduce metadataServiceUrl
- Move zookeeper based metadata service as a separate module
- Remove direct zookeeper usage from Auditor/ReplicationWorker
- Update tests/benchmark/example to use metadata service uri