By Kerry DoyleOriginally based on technology developed to run a Salesforce automation business, Riak is a datastore technology heavily influenced by Dr. Eric Brewer’s CAP Theorem and Amazon’s Dynamo. Because of its origin with Akamai (News
- Alert) developers, the technology is also characterized by its operational ease and fault tolerance. Riak is based in both open source and enterprise environments. The enterprise environment is a superset of the open source version with a few features added. The current enterprise features are SNMP support, inter-datacenter replication, a web-based administration interface, and top-tier tech support. Because of its close relationship with data storage, buckets and keys are the only way to organize data inside of Riak.
Since user data is stored and referenced by bucket/key pairs, with these bucket/key entries, Riak can store links that point to other entries. These links can be mapped and put via Riak’s HTTP interface directly or as part of a map/reduce job. This is significant because Riak objects and buckets can store user-defined metadata in addition to the actual data payload. The fact that Riak is an open source NoSQL database means that it shares a number of common features.
These include some of the following characteristics: schema-less, that is, tables in Riak don't have a pre-defined schema; each server uses only its own local storage; elasticity, which designates that both storage and server capacity can be added on-the-fly, and sharding which means that records are partitioned into shards. Finally, Riak attributes share asynchronous replication which means that like other NoSQL databases, they employ asynchronous replication. This allows writes to complete more quickly since they don't depend on extra network traffic.
Because NoSQL databases emphasize performance and availability, they describe a new breed of databases. These are appearing largely in response to the limitations of existing relational databases. Many of the new-generation databases support BASE principles as well as the common features described above. This ability to perform non-SQL querying of the database is part of the agility benefit of NoSQL,. However, the recent launch of Oracle (News
- Alert) NoSQL is indicates that there are trends at work that cannot be solved by adding non-SQL querying to existing relational databases. The discussion will continue as to whether NoSQL databases will effectively answer the needs of database administrators and researchers.