NoSQL

From TedYunWiki
(Redirected from NoSQL Systems)
Jump to navigation Jump to search

Key-Value Stores

  • Data model: (key, value) pairs
  • Interface: extremely simple
    1. Operations: Insert(key, value), Fetch(key), Update(key), Delete(key)
    2. Some allow (non-uniform) columns within value.
    3. Some allow Fetch on range of keys.
  • Implementation: efficiency, scalability, fault-tolerance
    • Records distributed to nodes based on key
    • Replication
    • Single-record transactions, "eventual consistency".
  • Example Systems (as of Nov 2011)
    • Google BigTable
    • Amazon Dynamo,
    • Cassandra
    • Voldemort
    • HBase

Document Stores

  • Data model: (key, document) pairs
    • document: JSON, XML, other semistructured formats.
  • Interface
    • Basic operations: Insert(key, value), Fetch(key), Update(key), Delete(key)
    • Also Fetch based on document contents (very system/format- specific)
  • Example Systems (as of Nov 2011)
    • CouchDB
    • MongoDB
    • SimpleDB

Graph Database Systems

  • Data model: nodes and edges
    • Nodes may have properties (including ID)
    • Edges may have labels or roles
  • Interface
    • Interfaces and query languages vary
    • Single-step vs "path expressions" vs full recursion
  • Example Systems (as of Nov 2011)
    • Neo4j
    • FlockDB
    • Pregel
    • RDF "triple stores" can map to graph databases