Riak is one of the simplest, most effective databases on the market today, offering the benefits of enormous scalability, fault-tolerance, availability, replication and monitoring– all in a highly distributed deployment.
Scalability
As operations fanatics at heart, the Basho team built Riak to ensure that scaling up or down would be as easy as breathing.
Typical databases are problematic to scale in two ways – when scaling up to handle an avalanche of requests and when first deploying your application. Adding machines to handle large numbers of requests can sacrifice throughput. And when first building your application, it’s almost impossible to predict the number of users you’ll have in a month– or in five years. The best way to plan for scaling problems is to use technology that delivers predictable performance.
Riak was designed for simplicity in scaling. What this means is that in order to effectively manage load to your site or application, operations personnel need only to enter a single command line on a newly added Riak server– the software will take care of the rest. Capacity and throughput are automatically provisioned in the cluster with absolutely no requirement for additional configuration or management. Riak scales linearly, predictably, and cost effectively.
And, because Riak’s data schema is flexible, you no longer need to change your data design to add new data formats. With Riak, it’s a simple PUT operation over HTTP to add new data types. Reducing operational complexity also results in reducing the costs related to maintaining your database.
Learn more about how Riak can meet your data scaling needs.
Fault tolerance
Applications built with Riak can sustain multiple machine failures in a cluster or even multiple cluster failures without data loss or loss of write availability. Basho built Riak with the view that regular machine failure, data center outages, and network service interruptions are the norm and not the exception.
Remaining write-available when failures occur requires not just replication of data but a way to resolve diverging data histories between multiple hosts or clusters as operations return back to normal.
Basho has solved this problem with a combination of algorithms and real-world experience running large, distributed systems. Using Riak, your applications will remain available for not just reads but writes during almost any conceivable circumstance, and it won’t break your budget to make this a reality.
Learn more about how Riak can help ensure that you never lose your data.
High availability
For true “high availability,” your database must be available not just for reads but also for writes. If your database relies on a single master node to handle all of your application’s write requests, a crash will result in data loss until your failover instance comes online. The inability to write to your database means lost revenue and lost users.
Riak goes far beyond commonly accepted levels of availability. Riak’s shared-nothing architecture provides ‘complete availability’ which means that applications built on Riak are always online and available for both reads and writes. As well, Riak’s shared-nothing architecture enables nodes in a Riak cluster to coordinate requests via asynchronous messaging. Therefore, if a node in a Riak cluster crashes or hangs, the other nodes handle the failed node’s requests, operating without any noticeable interruption in the clients.
If a node becomes unreachable for any reason, Riak compensates with hinted-handoff. This means that neighbors of the unreachable node will receive the messages that the failed node would otherwise have handled, at the same time ensuring that features such as replication are not degraded in the window before the failed node is repaired or replaced.
Learn more about how Riak delivers high availability.
Replication
Whether you need true high availability at a much lower cost, reduced complexity and expense of failover, or want to ensure better quality of service for a geographically-distributed client base, Riak makes replicating data between distributed clusters simple.
Depending on your replication needs, you can configure Riak to replicate between multiple equal clusters or designate one or more clusters as read-only or backup.
Any node on any Riak cluster can respond to client read and write requests, and our replication eventer process ensures all clusters get updated. Algorithms running on every node ensure data consistency.
Learn more about how riak can help improve your applications performance while reducing costs.

