![]() |
Your
Ultimate Guide to the Non - Relational Universe! |
[the biggest
nosql link Archive
in the web] ...never miss a conceptual article again... News Feed covering all changes here ! |
|
|
||||||||||||
| NoSQL DEFINITION: Next
Generation Databases mostly addressing some of the points: being
non-relational, distributed, open-source and horizontal
scalable.
The original intention has been modern web-scale databases. The movement began
early
2009 and is growing rapidly. Often more
characteristics
apply as: schema-free, easy replication support, simple API, eventually
consistent / BASE (not ACID), a huge data amount, and more. So the misleading term "nosql" (the community now translates it mostly with "not only sql") should be
seen as an alias to something like the definition above.
[based on 5 sources and 10 feedback emails] LIST OF NOSQL DATABASES [beta] Core NoSQL Systems:
Hadoop / HBase: API: Java / any writer, Protocol: any write call, Query Method: MapReduce Java / any exec, Replication: HDFS Replication, Written in: Java, Concurrency: ?, Misc: Links: 3 Books [1, 2, 3] Cassandra: API: many Thrift » languages, Protocol: ?, Query Method: MapReduce, Replicaton: , Written in: Java, Concurrency: eventually consistent , Misc: like "Big-Table on Amazon Dynamo alike", initiated by Facebook, Slides » , Clients », Installation » Hypertable: API: Thrift (Java, PHP, Perl, Python, Ruby, etc.), Protocol: Thrift, Query Method: HQL, native Thrift API, Replication: HDFS Replication, Concurrency: MVCC, Consistency Model: Fully consistent Misc: High performance C++ implementation of Google's Bigtable. Commercial support » Cloudera: Professional Software & Services based on Hadoop. [SciDB: Array Data Model for Scientists, paper », poster », HiScaBlog »] [OpenNeptune, Qbase, KDI]:
CouchDB:
API: JSON,
Protocol: REST,
Query Method: MapReduceR of
JavaScript Funcs, Replication: Master Master,
Written in: Erlang,
Concurrency: MVCC,
Misc:
Links: 3 CouchDB books », Couch Lounge » (partitioning / clusering), Dr. Dobbs » MongoDB: API: BSON, Protocol: lots of langs, Query Method: dynamic object-based language, Replication: Master Slave, Written in: C++,Concurrency: Update in Place. Misc: ... Links: Talk », Notes » Terrastore: API: Java & http, Protocol: http, Language: Java, Querying: Range queries, Predicates, Replication: Partitioned with consistent hashing, Consistency: Per-record strict consistency, Misc: Based on Terracotta ThruDB: (please help provide more facts!) Uses Apache Thrift to integrate multiple backend databases as BerkeleyDB, Disk, MySQL, S3. OrientDB: Languages: Java, Schema: Has features of an Object-Database, DocumentDB, GraphDB or Key-Value DB, Written in: Java, Query Method: Native and SQL, Misc: really fast, lightweight, ACID with recovery. RavenDB: .Net solution. Provides HTTP/JSON access. LINQ queries & Sharding supported. Misc: » [CloudKit, Perservere, Jackrabbit »]
Amazon SimpleDB: Misc: not open source, Book » Azure Table Storage: Collections of free form entities (row key, partition key, timestamp). Blob and Queue Storage available, 3 times redundant. Accessible via REST or ATOM. Riak: API: JSON, Protocol: REST, Query Method: MapReduce term matching , Scaling: Multiple Masters; Written in: Erlang, Concurrency: eventually consistent (stronger then MVCC via Vector Clocks), Misc: ... Links: talk », Chordless: API: Java & simple RPC to vals, Protocol: internal, Query Method: M/R inside value objects, Scaling: every node is master for its slice of namespace, Written in: Java, Concurrency: serializable transaction isolation, Links: Redis : API: Tons of languages, Written in: C, Concurrency: in memory and saves asynchronous disk after a defined time. Append only mode available. Different kinds of fsync policies. Replication: Master / Slave, Misc: also lists, sets, sorted sets, hashes. Cheat-Sheet: », good slides » Scalaris: (please help provide more facts!) Written in: Erlang, Replication: Strong consistency over replicas, Concurrency: non blocking Paxos. Tokyo Cabinet / Tyrant: Links: nice talk », slides », Misc: Kyoto Cabinet » GT.M: API: M, C, Python, Perl, Protocol: native, inprocess C, Misc: Wrappers: M/DB for SimpleDB compatible HTTP », MDB:X for XML », PIP for mapping to tables for SQL », Features: Small footprint (17MB), Terabyte Scalability, Unicode support, Database encryption, Secure, ACID transactions (single node), eventual consistency (replication), License: AGPL v3 on x86 GNU/Linux, Links: Slides », MEMBASE: distributed K/V store. Apache 2.0 license. Article: » NorthScale: based on Memcached Keyspace: API / Protocol: http (text, html, JSON), C, C++, Python, Java, Ruby, PHP,Perl. Concurrency: Paxos. Berkeley DB: API: Many languages, Written in: C, Replication: Master / Slave, Concurrency: MVCC, License: Sleepycat, Berkeley DB Java Edition: API: Java, Written in: Java, Replication: Master / Slave, Concurrency: serializable transaction isolation, License: Sleepycat MemcacheDB: API: Memcache protocol (get, set, add, replace, etc.), Written in: C, Data Model: Blob, Misc: Is Memcached writing to BerkleyDB. HamsterDB: (embedded solution) ACID Compliance, Lock Free Architecture (transactions fail on conflict rather than block), Transaction logging & fail recovery (redo logs), In Memory support – can be used as a non-persisted cache, B+ Trees – supported [Source: Tony Bain »] Faircom C-Tree: API: C, C++, C#, Java, PHP, Perl, Written in: C,C++. Misc: Transaction logging. Client/server. Embedded. SQL wrapper (not core). Been around since 1979. Mnesia: (ErlangDB ») LightCloud: (based on Tokyo Tyrant) Pincaster: For geolocalized apps. Concurrency: in-memory with asynchronous disk writes. API: HTTP/JSON. Written in: C. License: BSD. GenieDB: Immediate consistency sharded KV store with an eventually consistent AP store bringing eventual consistency issues down to the theoretical minimum. It features efficient record coalescing. GenieDB speaks SQL and co-exists / do intertable joins with SQL RDBMs. [KaTree », TomP2P », Kumofs » ,NMDB, luxio, actord, keyspace, flare, schema-free, RAMCloud]
Amazon Dynamo: Misc: not open source (see KAI below)
Voldemort: Open-Source implementation of Amazons Dynamo Key-Value Store. Dynomite: Open-Source implementation of Amazons Dynamo Key-Value Store. written in Erlang. With "data partitioning, versioning, and read repair, and user-provided storage engines provide persistence and query processing". KAI: Open Source Amazon Dnamo implementation, Misc: slides , [SubRecord, Mo8onDb, Dovetaildb]
Neo4J:
API: lots of langs,
Protocol: Java embedded
/ REST, Query Method: SparQL,
nativeJavaAPI, JRuby, Replication: typical MySQL style master/slave,
Written in: Java,
Concurrency: non-block
reads, writes locks involved nodes/relationships until commit,
Misc: ACID possible, Links: Video », good Blog »
Sones: OO Graph DB, API: .NET, Protocol: .NET embedded, REST, WebServices, Query Method: Graph Query Language, LINQ (M/R), Replication: Master-Master, Written in: C#, Concurrency: MVCC InfoGrid: API: Java, http/REST, Protocol: as API + XPRISO, OpenID, RSS, Atom, JSON, Java embedded, Query Method: Web user interface with html, RSS, Atom, JSON output, Java native, Replication: peer-to-peer, Written in: Java, Concurrency: concurrent reads, write lock within one MeshBase, Misc: Presentation » HyperGraphDB: API: Java (and Java Langs), Written in:Java, Query Method: Java or P2P, Replication: P2P, Concurrency: STM, Misc: Open-Source, Especially for AI and Semantic Web. AllegroGraph: API: Java, Python, Ruby, C#, Perl, Clojure, Lisp Protocol: REST, Query Method: SPARQL and Prolog, Libraries: Social Networking Analytics & GeoSpatial, Written in: Common Lisp , Links: Learning Center », Videos » Bigdata: API: Java, Jini service discovery, Concurrency: very high (MVCC), Written in: Java, Misc: GPL + commercial, Data: RDF data with inference, dynamic key-range sharding of indices, Misc: Blog » (parallel database, high-availability architecture, immortal database with historical views) DEX: API: Java, Protocol: Java Embedded, Query Method: Java API, Written in: Java / C++, Data Model: Labeled Directed Attributed Multigraph, Concurrency: yes, Misc: Free community edition up to 1 Mio nodes, Links: Intro », Tutorial » Infinite Graph: (by Objectivity) API: Java, Protocol: Direct Language Binding, Query Method: Graph Navigation API, Predicate Language Qualification, Written in: Java (Core C++), Data Model: Labeled Directed Multi Graph, Concurrency: Update locking on subgraphs, concurrent non-blocking ingest, Misc: Free for Qualified Startups. OpenLink Virtuoso: Hybrid DBMS covering the following models: Relational, Document, Graph. VertexDB: AllegroGraph: [Java Universal Network / Graph Framework, Sesame, Filament, OWLim, NetworkX, iGraph] Soft NoSQL Systems: [not the original intention of "NoSQL" but mostly worth a look for great non relational solutions]
db4o: API: Java, C#, .Net Langs, Protocol: language, Query Method: QBE (by Example), Soda, Native Queries, LINQ (.NET), Replication: db4o2db4o & dRS to relationals, Written in: Java, Cuncurrency: ACID serialized, Misc: embedded lib, Links: DZone Refcard #53 », Book »,
Versant: Languages/Protocol: Java, C#, C++, Python. Schema: language class model (easy changable). Modes: always consistent and eventually consistent Replication: synchronous fault tolerant and peer to peer asynchronous. Concurrency: optimistic and object based locks. Scaling: can add physical nodes on fly for scale out/in and migrate objects between nodes without impact to application code. Misc: MapReduce via parallel SQL like query across logical database groupings. Objectivity: Languages: Java, C#, C++, Python, Smalltalk, SQL access through ODBC. Schema: native language class model, direct support for references, interoperable across all language bindings. 64 bit unique object ID (OID) supports multi exa-byte. Platforms: 32 and 64 bit Windows, Linux, Mac OSX, *Unix. Modes: always consistent (ACID). Concurrency: locks at cluster of objects (container) level. Scaling: unique distributed architecture, dynamic addition/removal of clients & servers, cloud environment ready. Replication: synchronous with quorum fault tolerant across peer to peer partitions. [Gemstone, Progress ] Perst: API: Java,Java ME,C#,Mono. Query method: OO via Perst collections, QBE, Native Queries, LINQ, native full-text search, JSQL Replication: Async+sync (master-slave) Written in: Java, C#. Caching: Object cache (LRU, weak, strong), page pool, in-memory database Concurrency: Pessimistic+optimistic (MVCC) + async or sync (ACID) Index types: Many tree models + Time Series. Misc.: Embedded lib., encryption, automatic recovery, native full text search, on-line or off-line backup. ZODB: API: Python, Protocol: Internal, ZEO, Query Method: Direct object access, zope.catalog, gocept.objectquery, Replication: ZEO, ZEORAID, RelStorage Written in: Python, C Concurrency: MVCC, License: Zope Public License (OSI approved) Misc:Used in production since 1998 NEO: API: Python - ZODB "Storage" interface, Protocol: native, Query Method: transactional key-value, Replication: native, Written in: Python, Concurrency: MVCC at ZODB level, License: GPL "v2 or later", Misc: Load balancing, fault tolerant, hot-extensible. StupidDB », KiokuDB » (Perl solution),
GigaSpaces: Popular SpaceBased Grid Solution: Hazelcast: P2P Data Grid Solution on java.util.*, On a 100 Noce EC2 Cluster » Joafip: GridGain, Infinispan, Coherence, eXtremeScale
Mark Logic Server: (commercial system) API: Java, .NET Protocols: HTTP, REST Query Method: XQuery, XSLT Written in: C++ (code closed, API open) Concurrency: Share-nothing cluster architecture Misc: Petabyte-scalable XML server. Cloudable. Combines application server, transactional persistent storage (XML, text, and binary), and a full-text search engine. Developer Network » EMC Documentum xDB: (commercial system) API: Java, XQuery, Protocol: WebDAV, web services, Query method: XQuery, XPath, XPointer, Replication: lazy primary copy replication (master/replicas), Written in: Java, Concurrency: concurrent reads, writes with lock; transaction isolation, Misc: Fully transactional persistent DOM; versioning; multiple index types; metadata and non-XML data support; unlimited horizontal scaling. Developer Network » Tamino: eXist: API: XQuery, XML:DB API, DOM, SAX, Protocols: HTTP/REST, WebDAV, SOAP, XML-RPC, Atom, Query Method: XQuery, Written in: Java (open source), Concurrency: Concurrent reads, lock on write; Misc: Entire web applications can be written in XQuery, using XSLT, XHTML, CSS, and Javascript (for AJAX functionality). (1.4) adds a new full text search index based on Apache Lucene, a lightweight URL rewriting and MVC framework, and support for XProc. Sedna: Misc: ACID transactions, security, indices, hot backup. Flexible XML processing facilities include W3C XQuery implementation, tight integration of XQuery with full-text search facilities and a node-level update language. Xindice: Qizx: Open Source version, written in Java, http server. Berkeley DB XML: API: Many languages, Written in: C++, Query Method: XQuery, Replication: Master / Slave, Concurrency: MVCC, License: Sleepycat
U2 (UniVerse, UniData): MultiValue Databases, Data Structure: MultiValued, Supports nested entities, Virtual Metadata, API: BASIC, InterCall, Socket, .NET and Java API's, IDE: Native, Record Oriented, Scalability: automatic table space allocation, Protocol: Client Server, SOA, Terminal Line, X-OFF/X-ON, Written in: C, Query Method: Native mvQuery, (Retrieve/UniQuery) and SQL, Replication: yes, Hot standby, Concurrency: Record and File Locking (Fine and Coarse Granularity) OpenInsight: API: Basic+, .Net, COM, Socket, ODBC, Protocol: TCP/IP, Named Pipes, Telnet, VT100. HTTP/S Query Method: RList, SQL & XPath Written in: Native 4GL, C, C++, Basic+, .Net, Java Replication: Hot Standby Concurrency: table &/or row locking, optionally transaction based & commit & rollback Data structure: Relational &/or MultiValue, supports nested entities Scalability: rows and tables size dynamically
IBM Lotus/Domino: Type: Document Store, API: Java, HTTP, IIOP, C API, REST Web Services, DXL, Languages: Java, JavaScript, LotusScript, C, @Formulas, Protocol: HTTP, NRPC, Replication: Master/Master, Written in: C Concurrency: Eventually Consistent, Scaling: Replication Clusters eXtremeDB: Type: In-Memory Database; Written in: C; API: C/C++, SQL, JNI; Replication: Async+sync (master-slave), Scalability: 64-bit and MVCC ISIS Family: (semistructured databases) » Prevayler: Java RAM Data structure journalling. Yserial: Python wrapper over sqlite3
Twisted Storage », Ringo », Sherpa », tin », Dryad», SkyNet », Disco » [This "NoSQL Archive" has always > 16.000 unique visitors per month, it is top rated on Google for "nosql", and is the #1 source for NoSQL related reference / background information (together with Alex Popescus myNoSQL Site.]
|
EVENTS [15 NOV 10 Devoxx »] 20 OCT Powerday Nürnberg » 14 OCT 10 Strangeloop » 28 SEP 10 Frankfurt » All past NoSQL Conferences » register your event here! » NoSQL Summer in 27 cities » Conceptual quality articles, blogs, links, research papers, etc. NoSQL FORUMS [3] * Global NOSQL Forum » * Forum Berlin » * Forum France » * Forum Japan » GREAT NoSQL NEWS FEEDS * MyNoSQL by Alex P » [He is definetely bigger...] * On Twitter: nosqlupdate » * HighScalability Blog » BREAKING NoSQL NEWS * Twitter Open Souces FlockDB » » * Gizzard Scala Sharding » * Cassandra Spins off Riptano » * VMware hires Redis Antirez » * SF.com rebuilds on MongoDB * CouchDB / Relaxed gets funding » * 10gen / MongoDB has funding » * Neo4j secures funding » CONCEPTS / MISC * Map/Reduce Go » WP » * Plasma MR impl » * Google BigTable » FUN * Why NoSQL is bad for startups » * Tweet found by Damien Katz » * NoSQL East vs Oracle World » * NoSQL Trolls » NoSQL Hosting * CouchDB: » * MongoDB: » |
|||||||||||
|
|
||||||||||||