BACKGROUND IMAGE: iSTOCK/GETTY IMAGES
Riak KV from Basho Technologies is a fault-tolerant, highly available, scalable, distributed multi-model NoSQL DBMS. It enables application developers to store, manage and secure unstructured data.
Riak is a good choice for supporting highly scalable applications that access large amounts of unstructured data requiring around-the-clock availability. The NoSQL database management system (DBMS) comes in three versions: open source, supported enterprise and cloud storage.
Riak NoSQL DBMS features
Riak 2.1.4 offers the following features, which reduce code complexity and enhance operational simplicity:
- The redesigned Riak Search leverages Apache Solr, which enables integration with several existing software and commercial solutions through client query APIs.
- Authorization and authentication are provided to manage users and groups. Security measures, including data access and functional permissions, can be applied within Riak.
- Operational simplicity has been improved by consolidating configuration information and storing it in an easy-to-parse, transparent format.
- With bucket types, users can now create and administer bucket properties and apply them to a collection of buckets.
- LevelDB users can split data files across two mount points, based on access patterns, to optimize for low latency access of the most frequently accessed data.
Riak 2.1.0 added write-once buckets for data that's written and never updated. For this type of data, performance can be improved with write-once buckets because Riak won't incur the overhead of the usual get, merge, update cycle.
Riak is designed to support fast development and ease of operations. The key-value store enables storage and access of various types of unstructured data at massive scale with high availability. But Riak is more accurately termed a multi-model platform, supporting key-value, object store and search, all from the same platform.
Query capabilities are supported by Riak Search (with Apache Solr), secondary indexes and MapReduce, making it easy to access and analyze data.
The Riak NoSQL DBMS can be deployed to multiple servers and provides continuous functionally in the presence of hardware and network failures. Data is evenly distributed across nodes so it's spread around the cluster, making it easy for nodes to be added or removed. Riak is a masterless system, meaning any server can respond to read or write requests. If one server fails, others will continue to service client requests.
Replication is managed by the Automatic Data Replication feature and Multi-Datacenter Replication for globally distributed data.
Riak provides an HTTP API, as well as a protocol buffers interface. Additionally, there are several client libraries for Riak, including Java, Python, Perl, Erlang, Ruby, PHP and .NET.
Riak is available in five editions: Riak Open Source, Riak Developer, Riak Pro, Riak Enterprise and Riak Enterprise Plus. Riak Developer, Riak Enterprise and Riak Enterprise Plus include support. Riak Pro is designed for sites that require only Basho Engineer support for a production deployment of Riak Open Source with a strict service-level agreement.
Riak CS (Cloud Storage) is also an option, providing open source storage software built on top of Riak. It can be used to build public or private clouds, or as reliable storage to power applications and services.
Riak supports storing data of all kinds, including text, images, JSON/XML/HTML documents, user and session data, backups, and log files.
Additionally, Riak provides conflict-free replicated data types (CRDTs), which are built-in, flexible data types that simplify development with automatic conflict resolution and no client-side code to write. They enable operations such as Create, Read, Update and Delete to be tracked in an eventually consistent environment. Riak 1.4 introduced the counter CRDT and Riak 2.0 adds support for these CRDTs: sets, registers, flags and maps.
The Riak NoSQL DBMS is available for the following operating systems and environments:
- Debian and Ubuntu
- Red Hat Enterprise Linux and CentOS
- Apple OS X
- Windows Azure
- Amazon Web Services Marketplace
Riak offers two licensing options: Riak Open Source and Riak Enterprise. Riak Open Source is free under the Apache 2 License. Riak Enterprise requires a commercial license agreement. Riak is sold by Basho Technologies via a direct global sales model supported by global integration and distribution partners.
Basho Technologies offers support at several different pricing tiers, depending on end-user requirements and inclusion of multi-datacenter capabilities. In addition, Basho Technologies offers a support option for open source as well as commercial versions. Actual pricing is based on deployment requirements and the required tier of product support. This includes per-node and perpetual licenses.
Riak NoSQL DBMS benchmarks
Basho has developed a benchmarking tool called Basho Bench, which can be used to conduct accurate and repeatable Riak performance and stress tests with performance graphs. Basho Bench exposes a pluggable driver interface, and has been extended to serve as a benchmarking tool against a variety of projects.
About the author
Craig S. Mullins is a data management strategist, researcher, consultant and author with more than 30 years of experience in all facets of database systems development. He is president and principal consultant of Mullins Consulting Inc. and publisher/editor of TheDatabaseSite.com. Email him at firstname.lastname@example.org.
This article was updated in September 2016.
Is a NoSQL database management system right for you?
How to choose the right NoSQL database management system
Why you should carefully sort through NoSQL technologies