Tag Archives: Riak

Slides- Moving from a Relational Database to Riak

January 3, 2013

Most teams considering using Riak come from a relational database background. From our webcast on moving from relational to Riak, the below slide deck covers an overview of Riak, how the architecture differs from a relational approach, the advantages for scaling and development, and what’s different about application building and database operating in a non-relational world. We also include a few stories of Riak users who replaced MySQL or added Riak to the mix.

Interested in learning more? Check out our overview, From Relational to Riak.

Basho Team

Yokozuna Pre-release 0.2.0 Now Available

December 31, 2012

Happy Holidays from all of us here at Basho. We’ve got some new code to help you ring in the new year. Ryan Zezeski and others have been hard at work on Yokozuna, the next generation of Riak Search that marries Riak with Apache Solr.

The latest pre-release, 0.2.0, was just tagged, and there’s plenty to be excited about for those of you who are interested in test-driving the code. In addition to various bug fixes, some of the new features include:

  • Active Anti Entropy Support – Automatic background processing that seeks out and rectifies divergences between data stored in Riak and indexes stored in Yokozuna.
  • Benchmark Scripts – A pre-built collection of benchmarking scripts for automating performance testing.
  • Sibling Support – When enabled, Yokozuna will now index all object versions. It will also handle index cleanup upon sibling resolution.

The full release notes are up on the GitHub repo.

Contributors

Commits in this release came from Ryan Zezeski, Eric Redmond, and Dan Reverri. Mark Steele also reported a few issues that were fixed in this release.

Use Yokozuna

Remember that this is alpha software, and won’t be officially supported by Basho until a future release. That said, Ryan and the team are actively looking for beta testers with use cases that might be appropriate for Yokozuna. If you’re in the market for scalable, distributed full-text search, join the Riak Mailing List and start asking questions.

There’s a pre-built Yokozuna AWS AMI (ami-8b8d03e2) with the latest changes that’ll make it easy to take Yokozuna for a test drive.

And if you’re looking for a high-level introduction to Yokozuna, take 30 minutes to watch Ryan’s RICON2012 talk or browse the matching slide deck.

Enjoy.

The Basho Team

From Relational to Riak- Advantages, Tradeoffs and Considerations

December 19, 2012

We work with many people building platforms and applications on Riak that have traditionally lived on relational systems. The switch to Riak can be driven by the needs of greenfield applications and growing data volumes, business requirements around scale and availability, or the desire for operational ease and multi-site replication.

Some of the most common questions we get are from teams with a primary background in MySQL, Oracle Database or other relational systems wondering about the advantages and tradeoffs of moving to Riak. To address these common questions, we’ve written up an introductory guide on moving from relational to Riak. In it, we cover:

  • Scalability benefits of Riak, including an examination of limitations around master/slave architectures and sharding, and what Riak does differently
  • A look at the operational aspects of Riak and where they differ from relational approaches
  • Riak’s data model and benefits for developers, as well as the tradeoffs and limitations of a key/value approach
  • Migration considerations, including where to start when migrating existing applications to Riak
  • Riak’s eventually consistent design, how it differs from a strongly consistent design, and things you need to know about handling data conflicts in Riak
  • Multi-site replication options in Riak

You can download the paper here, and when you’re ready to dive deeper, check out our online documentation with more information on Riak, building applications on it, and our commercial products.

Basho Team

Riak AMI Now Available on Amazon Marketplace


Running Riak on AWS just got easier. Announcing Riak AMI, a ready-built virtual machine and configuration of Riak for Amazon EC2.

CAMBRIDGE, MA – December 14, 2012 – A number of our community members and customers already use Riak on AWS, and with the Riak AMI getting up and running should be much easier. The Riak AMI helps support a growing number of hybrid implementations where businesses use both private infrastructure and public cloud services. This hybrid model can be leveraged to address burst capacity issues, tenancy/locality concerns, and simple proof-of-concept deployments, in addition to a myriad of other business challenges.

For more information, read our post here: http://basho.com/blog/technical/2012/12/14/Riak-on-Amazon-Marketplace-AMI/.

Riak AMI Now Available on Amazon Marketplace

December 14, 2012

tl;dr – A Riak AMI is now available in the AWS Marketplace. Installation and configuration documentation is on the doc portal.

A number of our community members and customers already use Riak on AWS, and with the Riak AMI getting up and running should be much easier. At its simplest, the AMI is a ready-built virtual machine image and configuration of Riak for those who use Amazon EC2.

The Riak AMI also helps support a growing number of hybrid implementations where businesses use both private infrastructure and public cloud services. This hybrid model can be leveraged to address burst capacity issues, tenancy/locality concerns, and simple proof-of-concept deployments, in addition to a myriad of other business challenges.

The Riak AMI is configured for the OSS Riak implementation. If you need multi-datacenter replication and support, contact us to discuss Riak Enterprise.

We’d love to hear feedback on the AMI and additional things we can do to make running Riak on cloud infrastructure easier for you. Please drop a note in the mailing list with any feedback. Happy deploying!

Basho Team

Riak Cloud Storage in 15 Minutes (Video)

December 12, 2012

Learn the basics of Riak Cloud Storage in 15 minutes in this video from the Citrix CloudPlatform partner program. We discuss the building blocks of cloud services platforms and enterprise requirements for cloud storage. Then we walk through the properties, architecture, interfaces and operations of Riak CS.

If you want to try Riak CS, sign up for a developer trial to get up and running.

Basho Team

Riak Enterprise at Velti

December 3, 2012

In 2009, mobile marketing and advertising technology provider Velti had a good (but challenging) problem on their hands. Their technology, which allows people to interact with their TV by voting, giving feedback, participating in contests, etc., had taken off. It had been adopted by nearly all of the TV broadcasters in the UK and three of the UK’s five mobile operators. As more customers began using their technology, Velti saw quick growth in (inherently spikey) traffic. Their 2003-era .NET, SQLServer platform was becoming a concern.

Because the team at Velti had been working with Erlang (what Riak is written in), in 2010 they brought in Erlang Solutions to help them architect their next generation platform. Riak was chosen for the database, and an early version of Multi-Data Center replication in Riak Enterprise was used to build two geographically separated sites to minimize potential catastrophic outages.

Velti’s new mGageTM platform is now running on 18 servers across two data centers (nine nodes in each data center), with each server running both Erlang applications as well as Riak. We’re pleased to pass along reports that the platform is redundant, queue behavior has significantly improved (especially for large queue populations), and that after Velti moved to Riak 1.2, they saw noticeable disk space utilization thanks to improvements in merge management.

Markus Kern, VP Technology at Velti summarizes, “We operate a 24/7 service for over 140 customers. We cannot afford a single minute of downtime. Riak gives us the ability to meet and exceed our requirements for scale, data, durability, and availability.” Woot!

For more details on Velti’s experience, see our case study Highly Available Mobile Platform With Riak.

Basho Team

The Future of Distributed Systems (RICON Video Roundup)

November 22, 2012

With a growing community understanding of distributed systems architectures, where is the field evolving? How are Riak and other Dynamo-inspired databases handling complex data structures and meeting demands for stronger consistency and more queriability? This blog highlights three talks from last month’s RICON that tackle these questions.

Advancing Distributed Systems – Eric Brewer

In this keynote talk, Dr. Eric Brewer, author of a theorem that helped kick off the NoSQL movement, talks about the challenges facing distributed systems today. Beginning with some historical context–“SQL vs. NoSQL is not really a new religious war, it’s actually the latest round of a very old religious war”– Dr. Brewer walks us through the advantages and disadvantages of top-down (relational) and bottom-up (NoSQL) worldviews, his work at Google, and his thoughts on where next generation databases are headed.

Bringing Consistency to Riak – Joseph Blomstedt

With regard to the CAP Theorem, Riak is an eventually-consistent database with AP semantics. But, this may soon change. In this talk, Basho engineer Joseph Blomstedt presents, for the first time, on-going R&D at Basho to add true strongly-consistent/CP semantics to Riak.

Data Structures in Riak – Sean Cribbs and Russell Brown

Since the beginning, Riak has supported high write-availability using Dynamo-style multi-valued keys – also known as conflicts or siblings. The tradeoff for this type of availability is that the application must include logic to resolve conflicting updates. This ad hoc resolution strategy is error-prone and can result in surprising anomalies. In this talk, Basho engineers Sean Cribbs and Russel Brown present recent work done to address these issues by adding convergent data structures to Riak.

For more RICON videos on a range of distributed systems topics, visit our RICON aftermath site.

The Basho Team

Monitoring Distributed Systems (New Approaches)

November 13, 2012

Legacy RDBMS systems offered mature monitoring capabilities that usually gave operators a clear view of how their databases were (or weren’t) performing. Emerging distributed systems introduce new levels of complexity, presenting new problems in monitoring and diagnosis. In this blog we highlight two talks given at last month’s RICON which shed light on this problem and offer some interesting solutions.

Next Generation Monitoring of Large Scale Riak Applications

In this talk, Theo Schlossnage, founder of OmniTI, talks about moving beyond standard monitoring metrics (average, mean, 95th percentile, 99th percentile, etc.), and advocates for more sophisticated methods, namely histograms and new visualization techniques. He illustrates this with some interesting real world examples in which metrics such as average response time have little meaning in the face of real world distributions which are often multi-modal and rapidly evolving.

Modern Radiology for Distributed Systems

In this talk, Boundary engineer Dietrich Featherston uses radiological imaging as a metaphor to explore the challenges of monitoring distributed systems –Boundary uses Riak to store high-resolution network data for its analysis engine. In this metaphor, if we just look at metrics pulled from individual hosts (CPU usage, memory usage, etc.), we can see diseased “cells”, but ignore the whole organism. We react to problems, instead of preventing them. To illustrate, Dietrich walks through a series of case studies highlighting new, “context aware”, non-invasive monitoring techniques.

For more RICON videos on a range of distributed systems topics, visit our RICON aftermath site.

A Fresh Start For riak-js

November 13, 2012

Today I’m happy to announce a new release of riak-js, the Riak client for Node.js. This release breathes new life back into riak-js. For various reasons, development on riak-js had been dormant for quite a while, but that has changed for the better and we’re committed to making it a viable client library for production applications.

Ancient History

riak-js has been around for a quite a while. The first commit by its original author, Francisco Treacy, dates back to March 2010. The original implementation was written in JavaScript and running on Node 0.1. Subsequent versions were rewritten in CoffeeScript, until Francisco wanted a clean start. CoffeeScript is a great language, but shipping compiled code to the user meant increased headaches during debugging and a slightly increased entrance barrier for the JavaScript community.

So he started a complete rewrite in JavaScript more than a year ago. It progressed quite nicely, but hit a wall when Frank was looking for a new maintainer for the library. Thankfully the guys from mostlyserious picked up the torch, and eventually I joined them in the effort to finalize the library into a new release.

During the transition, riak-js got a new home as well, and can now be found on mostlyserious/riak-js. Please make sure to send all issues an pull requests to this repository.

The Present

Version 0.9.0 of riak-js was shipped today and can be installed from npmjs.org:

While the new release is mostly backwards-compatible, it does come with some changes that I deemed worthwhile to make before hitting the big 1.0.

Most notably, the functions for using MapReduce and Riak Search have moved into their own namespace. That brings riak-js more on par with other libraries in making both functionalities a bit more separate from normal client operations.

To run MapReduce, you now use something like the following example:

The same goes for Riak Search, which is now fully supported, including adding, removing and querying documents directly from a search index:

There are other minor changes, e.g. accessing bucket properties:

To get a good overview of the current API of riak-js, check out the documentation.

Back To The Future

Development on future versions has already begun, and we still have a good list of things to work on for future releases.

Most notable, Protocol Buffer support is going to return. For simplicity reasons, it was removed from the JavaScript implementation. It will be back!

I’ve also started adding instrumentation to the HTTP API operations for easier tracking of metrics and logging. But more on that in another blog post.

If there’s anything you’d like to see in future version, open an issue, send a pull request or start a discussion on the Riak mailing list!

Mathias