-
Notifications
You must be signed in to change notification settings - Fork 0
prakharsharma/kvproxy
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Introduction =========================== The purpose of this project is to let users very quickly create proxy for a key, value store. The objectives are following: - 1. To be generic in terms of data (oblivious of key, values stored in store) 2. To be generic in terms of communication protocol (TCP/UDP/shared mem whatever) 3. To be exteremely light weight, 4. To be extremely fast, and 5. Laser focus on developer efficiency (new user should be able to setup solution to his non trivial use case in matter of handful of hours) #1 is attained by using Google protobufs #2 and #3 are attained by using ZMQ #5 is attained by use of standard protocols and well established products. Why Google protobufs ? =========================== Why ZMQ ? =========================== Customization options ? =========================== 1. Data store driver, e.g. Berkeley driver, LevelDB driver. 2. Lookup module driver; to override default behavior of directly looking up a key on key-value store. 3. Data driver; for fetching information from user's proto fomrat. It does not matters how that key, value store is being implemented. It can be a berkeley db, dbm, LevelDB, or anything. Just implement a driver for your key-value store and you are good to go. For being generic, Google protobufs are used throughout for data interchange. For being fast, ZMQ is used for providing communication library between client and server. As protobuf and ZMQ bindings are avaialble for all the major languages, so developer is free to write client in any of these languages. Developer can insert his business logic on the server (lookup module). For the time being, this has to be in C++. Choice of ZMQ also liberates our framework from a single communication protocol (TCP/PGM/ipc). This means user is free to make his own decision depending on latency and reliability requirements of his application.
About
Fast light weight proxy service for key value stores
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published