Some time ago and his colleagues discuss the key-Value DB purposes, that is very useful. Intended to achieve a prototype next week. A few days ago to write today to summarize the documents. Hope that some suggestions and opinions.

Features:

Relational database functions vis-à-vis less, only a limited inquiry of Key-Value, as well as some management functions. Compared with the relational database can provide more robust performance, provide better manageability (mostly self-management), scalability.

Objectives:

Key-Value simple operation

Management functions

Self-management features

High-performance

Data security



The scope of application:

Large amount of data, high-traffic site

Requirements for data security software



Project:

Less because the overall function, can use the various components of the existing technology, development work should not be very big. 1-2 individuals will be able to complete.

Data storage layer can be used berkeydb or Mysql

Http data communication can be used or tcp



Functional Design

N data for each deposit of Copy

Client write data to a node, while the other copy to the copy node



Client API
get (groupName, key)

getMulti (groupName, keys)

set (groupName, key, value)

setMulit (groupName, keyValuePairs)

listKey (groupName, startPos, count)

listKey (groupName, startKey, count)



Management functions

View the operation of each node

Add node

Remove node



Performance Management

See the client (ip) the use of data (the number of memory hits, did not hit the number of memory, write the number)

See the various accounts of the use of data (the number of memory hits, did not hit the number of memory, write the number)

Restricted to a certain client (ip) the use of

Restrictions on the use of an account