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

Security and trust: The backbone of doing business over the internet

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. ®

Security and trust: The backbone of doing business over the internet

More from The Register

next story
New 'Cosmos' browser surfs the net by TXT alone
No data plan? No WiFi? No worries ... except sluggish download speed
'Windows 9' LEAK: Microsoft's playing catchup with Linux
Multiple desktops and live tiles in restored Start button star in new vids
iOS 8 release: WebGL now runs everywhere. Hurrah for 3D graphics!
HTML 5's pretty neat ... when your browser supports it
Mathematica hits the Web
Wolfram embraces the cloud, promies private cloud cut of its number-cruncher
Google extends app refund window to two hours
You now have 120 minutes to finish that game instead of 15
Intel: Hey, enterprises, drop everything and DO HADOOP
Big Data analytics projected to run on more servers than any other app
Mozilla shutters Labs, tells nobody it's been dead for five months
Staffer's blog reveals all as projects languish on GitHub
SUSE Linux owner Attachmate gobbled by Micro Focus for $2.3bn
Merger will lead to mainframe and COBOL powerhouse
iOS 8 Healthkit gets a bug SO Apple KILLS it. That's real healthcare!
Not fit for purpose on day of launch, says Cupertino
prev story

Whitepapers

Providing a secure and efficient Helpdesk
A single remote control platform for user support is be key to providing an efficient helpdesk. Retain full control over the way in which screen and keystroke data is transmitted.
WIN a very cool portable ZX Spectrum
Win a one-off portable Spectrum built by legendary hardware hacker Ben Heck
Saudi Petroleum chooses Tegile storage solution
A storage solution that addresses company growth and performance for business-critical applications of caseware archive and search along with other key operational systems.
Protecting users from Firesheep and other Sidejacking attacks with SSL
Discussing the vulnerabilities inherent in Wi-Fi networks, and how using TLS/SSL for your entire site will assure security.
Security for virtualized datacentres
Legacy security solutions are inefficient due to the architectural differences between physical and virtual environments.