- Key value store - Run on large number of commodity machines -
Data are partitioned and replicated among these machines - Relax
the data consistency requirement. (because the CAP theorem
proves that you cannot get Consistency, Availability and
Partitioning at the the same time) The underlying data model can
be considered as a large Hashtable (key/value store). The basic
form of API access is - get(key) -- Extract the value given a
key - put(key, value) -- Create or Update the value given its
key - delete(key) -- Remove the key and its associated value -
execute(key, operation, parameters) -- Invoke an operation to
the value (given its key) which is a special data structure
(e.g. List, Set, Map .... etc). - mapreduce(keyList, mapFunc,
reduceFunc) -- Invoke a map/reduce function across a key range.
The underlying infratructure is composed of large number
(hundreds or thousands) of cheap, commoditized, unreliable
machines connected through a network. We call each machine a
physical node (PN). Each PN has the sa