Feeds

Facebook helps coders get their Rocks off with flash-wringing DB lib

Open-source persistent key-value store sits in your NAND, chugging data

Beginner's guide to SSL certificates

Facebook has developed an open-source database library that wrings more performance out of server-side flash storage than ever before, while building on previous technology published by Google.

The RocksDB embeddable persistent key-value store was announced by Facebook on Thursday, and gives developers a C++ library based on version 1.5 of Google's open-source LevelDB tech to supercharge databases manipulating data held on modern high-IO server flash. Facebook is storing almost a petabyte of data in it at the moment.

Potential apps that may find the tech useful include spam-detection programs that need fast access to memory, real-time graph-search queries, real-time Hadoop queries, message queues that can handle high numbers of inserts and deletes, or user-facing apps that store viewing history and state of a website, Facebook said.

LevelDB was developed by Google and released in 2011 to help it expose some of the tricks it had learned while building BigTable in a way that could be used by outside developers. Some people have adopted the technology, including Riak specialists Basho who serve up a tweaked version of the software to customers that have non-random access patterns.

"We have customers with very large datasets, performing at or very near the I/O subsystem's maximum is a requirement for most if not all of them. Continuing to provide that level of ingest while at the same time servicing the hot subset of the data in read requests is something that LevelDB is very good at doing," Basho technical product manager Greg Burd told us via email.

Now Facebook has hopped on the LevelDB tech as well, and substantially enhanced it.

"RocksDB software can fully utilize the IOPS offered by flash storage, making it perform faster than LevelDB across random read, write, and bulk uploads," Facebook wrote. "Modern storage devices support up to 100,000 random operations per second on a single flash storage card. If you stripe ten of these cards, you get about one million random operations per second. Today, RocksDB is able to run fast enough to avoid being the bottleneck when operating on this type of storage."

The tech works by storing keys and values as arbitrary byte streams. Writes go straight into an in-memory data structure called memtable, and are optionally also written to a logfile that is a sequentially written to main storage. Once memtable fills it up it is flushed into an sstfile on main storage and the logfile is deleted.

The tech has been seen achieving 10 times faster random writes and 30 per cent faster random reads than LevelDB, and seems to have better performance at scale than vanilla LevelDB when dealing with large memory footprints, Facebook said, in an architecture outline published along with the code on Github.

"RocksDB isn't a distributed database - rather the focus is on making an efficient, high-performance, single-node database engine," the company wrote.

The release of RocksDB follows the publication of the code for Facebook's Hive-beating Presto system in early November.

Though Facebook says it is publishing the code under a three-clause BSD license "because we think it will be useful beyond Facebook," there is likely another motivation at play here: if the company gets its tools into the wider IT ecosystem, it makes it easier for Facebook to hire new talent, and can outsource some components of ongoing development to the wider open-source community. ®

Remote control for virtualized desktops

More from The Register

next story
Download alert: Nearly ALL top 100 Android, iOS paid apps hacked
Attack of the Clones? Yeah, but much, much scarier – report
Euro Parliament VOTES to BREAK UP GOOGLE. Er, OK then
It CANNA do it, captain.They DON'T have the POWER!
NSA SOURCE CODE LEAK: Information slurp tools to appear online
Now you can run your own intelligence agency
Post-Microsoft, post-PC programming: The portable REVOLUTION
Code jockeys: count up and grab your fabulous tablets
Microsoft: Your Linux Docker containers are now OURS to command
New tool lets admins wrangle Linux apps from Windows
prev story

Whitepapers

Free virtual appliance for wire data analytics
The ExtraHop Discovery Edition is a free virtual appliance will help you to discover the performance of your applications across the network, web, VDI, database, and storage tiers.
A strategic approach to identity relationship management
ForgeRock commissioned Forrester to evaluate companies’ IAM practices and requirements when it comes to customer-facing scenarios versus employee-facing ones.
10 threats to successful enterprise endpoint backup
10 threats to a successful backup including issues with BYOD, slow backups and ineffective security.
High Performance for All
While HPC is not new, it has traditionally been seen as a specialist area – is it now geared up to meet more mainstream requirements?
Website security in corporate America
Find out how you rank among other IT managers testing your website's vulnerabilities.