Skip to content

pH14/fdb-zk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fdb-zk

fdb-zk is a FoundationDB layer that mimics the behavior of Zookeeper. It is installed as a local service to an application, and replaces connections to and the operation of a ZooKeeper cluster.

While the core operations are implemented, fdb-zk has not been vetted for proper production use.

Talk & Slides

Learn about how the layer works in greater detail:

Architecture

Similar to the FoundationDB Document Layer, fdb-zk is hosted locally and translates requests for the target service into FoundationDB transactions.

Applications can continue to use their preferred Zookeeper clients:

┌──────────────────────┐     ┌──────────────────────┐
│ ┌──────────────────┐ │     │ ┌──────────────────┐ │
│ │   Application    │ │     │ │   Application    │ │
│ └──────────────────┘ │     │ └──────────────────┘ │
│           │          │     │           │          │
│           │          │     │           │          │
│       ZooKeeper      │     │       ZooKeeper      │
│        protocol      │     │        protocol      │
│           │          │     │           │          │
│           │          │     │           │          │
│           ▼          │     │           ▼          │
│ ┌──────────────────┐ │     │ ┌──────────────────┐ │
│ │  fdb-zk service  │ │     │ │  fdb-zk service  │ │
│ └──────────────────┘ │     │ └──────────────────┘ │
└──────────────────────┘     └──────────────────────┘
            │                            │
         FDB ops                      FDB ops
            │                            │
            ▼                            ▼
┌───────────────────────────────────────────────────┐
│                   FoundationDB                    │
└───────────────────────────────────────────────────┘

Features

fdb-zk implements the core Zookeeper 3.4.6 API:

  • create
  • exists
  • delete
  • getData
  • setData
  • getChildren
  • watches
  • session management

It partially implements:

  • multi transactions (reads are fine, but there are no read-your-writes)

It does not yet implement:

  • getACL/setACL
  • quotas

Initial Design Discussion

https://forums.foundationdb.org/t/fdb-zk-rough-cut-of-zookeeper-api-layer/1278/

Building with Bazel

  • Compiling: bazel build //:fdb_zk
  • Testing: bazel test //:fdb_zk_test
  • Dependencies: bazel query @maven//:all --output=build

License

fdb-zk is under the Apache 2.0 license. See the LICENSE file for details.

About

ZooKeeper server on top of FoundationDB

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published