NewsBits: RocksDB and Instagram gives 10x boost to Cassandra

Published

Welcome to NewsBits where you'll find the database, cloud, and developer news from around the net for the week ending March 9th, 2018:

Database Bits

Cassandra: Over at Instagram, they are heavy users of Apache Cassandra but they, like many, hit the problems of Java-based applications, latency and garbage collection. Where others like ScyllaDB went to build a Cassandra-compatible database in C++, Instagram's solution was to replace the storage engine with RocksDB. This was a big challenge, there's no pluggable storage engine support in Cassandra.

Instagram got to work and the result is Rocksandra which they have now open sourced along with a benchmark suite. That benchmark suite is what shows a 10x performance improvement over Cassandra. According to Instagram's engineering blog, they are also working on a pluggable storage API for upstream Cassandra.

Vim-db: Use Vim? Use DBs? Then you'll probably really like vim-db which is a new plug-in from Tim Pope. It adds the :db command to vim which can be followed by a connection string, and then everything else is a sent to the database as a command and the results are displayed in a preview window. It calls up the command line tools for the respective databases - MongoDB, PostgreSQL, Redis, MySQL or SQLite - in the background which means Vim-db is also easily adapted to other databases. It can also kick off an interactive terminal session and has ways to store connection strings you use a lot. Ideal if you rarely leave your editor or sit in a single session on a connection.

RabbitMQ 3.7.4: The RabbitMQ developers continue sharpening up their latest release of RabbitMQ 3.7.4. This is a bug fix and usability enhancement release with new options to tune the Erlang engine that powers it. Full details in the release notes.

Etcd: IBM has open sourced a Java driver for etcd3, etcd-java. it was created when the official Java driver for etcd3, jetcd, was problematic for some use cases. etcd-java focuses on working with the key/value store, so there's no support for the cluster administration and other management parts of the API. In other etcd news, updates for more etcd versions were released, including etcd 3.3.2. It includes fixes for overflows with long TTL values and a note - "Again, etcd Lease is meant for short-periodic keepalives or sessions, in the range of seconds or minutes. Not for hours or days!"

VeritasDB: In a new paper on VeritasDB(pdf) the authors discuss a different approach to ensuring the integrity of databases in the cloud. Specifically, a proxy key/value store which acts as an intermediary between unsecured clients and unsecured source databases. It's a different approach to an intriguing, almost catastrophic, threat model where the adversary takes control of all surrounding systems.

Developer Bits

NodeJS: The LTS editions of NodeJS have seen updates in the past week. Most notable of the updates is NodeJS 8.10 LTS which rolls in an updated V8 JavaScript engine, new libuv, npm fixes and support of OpenSSL 1.1.0 and 1.0.2. The NodeJS 6.13.1 LTS update is more restrained with better IPv6 address support and various doc and test fixes. If you are on the bleeding edge of non-LTS versions, there's a new NodeJS 9.x series update, 9.8.0 which sees the usual mix of fixes and tuning up as the developers head towards what will be Node 10 in April. That'll go LTS in October and be supported till 2020.

Languages: Ideal for your discussion of which language is more popular - Redmonk's January Language rankings - It uses a simpler methodology that other ranking systems. This round of results sees Go stalling, Kotlin climbing rapidly, and Scala dropping away. Read the full article for more analysis.

LLVM - LLVM is the compiler toolchain at the heart of many compilers now. LLVM's 6.0.0 release includes reptolines support, a mitigation for one of the Spectre exploits. There are many improvements for the MIPS and x86 code generation too. One thing LLVM enables is quicker development of new and novel languages and toolchains. This release notes three projects building on LLVM: LDC (an LLVM-based D Compiler), JFS (a JIT-enabled constraint solver) and Zig, a language designed to replace C with something clearer and more robust.

X-Ray: Github's Atom is a great editor which, if nothing else, kickstarted work on better editors again. But now that people rely on it, it is not a good place for radical experiments. Enter Xray, Github's new editor which is designed to be a testing ground for those radical experiments. That includes using Rust inside an Electron UI shell to get performance up, rendering with WebGL and presenting with React. They aspire to RAIL performance levels - 8ms scrolling, 50ms coarse actions and an open application window in 150ms. This is going to be one to watch.

Code: Visual Studio Code's February update has arrived, with new notifications, built in terminal splitting, bidirectional scrolling in the Markdown preview (hooray!), better large file support and a new centered editor layout for when you want all the real estate for your code.

And finally, check out this Nixie clock which used neon lamps... for the clock's logic. It was driven by the 50Hz cycle of mains which has hit the news recently. The design had no transistors; it was all worked by neon lights and light-sensitive resistors. Unfortunately, due to a lack of components and stability, it is no longer with us but for a shining moment, it told the time.

NewsBits. News in bits, every Friday at Compose.


Read more articles about Compose databases - use our Curated Collections Guide for articles on each database type. If you have any feedback about this or any other Compose article, drop the Compose Articles team a line at articles@compose.com. We're happy to hear from you.

Dj Walker-Morgan
Dj Walker-Morgan is Compose's resident Content Curator, and has been both a developer and writer since Apples came in II flavors and Commodores had Pets. Love this article? Head over to Dj Walker-Morgan’s author page to keep reading.

Conquer the Data Layer

Spend your time developing apps, not managing databases.