|Scylla DB Adds Materialized Views|
|Written by Kay Ewbank|
|Monday, 28 January 2019|
There's a new version of Scylla, the open source NoSQL database that's Apache Cassandra compatible. Version 3.0 adds support for materialized views, secondary indexes, and hinted hand-offs, and has improved performance.
The developers of Scylla describe it as a drop-in replacement for Apache Cassandra with as much as 10 times better performance. It is written in C++ to maximize throughput, latency and administration, and the company says Scylla delivers scale-up performance of more than 1,000,000 IOPS per node, scales out to hundreds of nodes, and consistently achieves a 99 percent tail latency of less than 1 millisecond.
The improvements in the new release are aimed at providing more efficient querying, reduced storage requirements, lower repair times, and better overall database performance.
The first change is support for material views, where the results of queries are stored to speed retrieval. Usually, this is handled client-side, and the snapshot of the data is stored locally. Scylla's approach is to move the management of the view onto the servers, as the implementation is faster (fewer round trips to the applications). It also means applications can have multiple views into their data. The application just declares the additional views, Scylla creates the new view tables, and on every update to the base table the view tables are automatically updated. Reads go directly to the view tables. This approach is compatible in features and CQL syntax with the experimental version that is now in Apache Cassandra.
The second improvement to the new release is support for global secondary indexes. The secondary index uses a materialized view index so that it's independent from the number of nodes in the cluster. No matter what columns the index is created on, queries have access to all the columns in the table. Updates can also be more efficient with secondary indexes because only changes to the primary key and indexed column cause an update in the index view.
Hinted handoffs have moved from experimental to production-ready in this release. The aim of hinted handoffs is to deal with situations where an individual node is temporarily unresponsive due to a factor such as heavy write load, network traffic, or hardware failure. The 'hint' is a record of a write request held by the coordinator until an unresponsive replica node comes back online. Once the node becomes available again, the write request data in the hint is written to the replica node.
Another improvement is support for 'allow filtering'. This can be used for more complex query design where you return only a subset of matching results, and the filtering is done on the server, reducing the amount of data transferred over the network.
Elsewhere, there's support for a more performant storage format (SSTable), which is compatible with Apache Cassandra 3.x and also reduces storage volume by as much as three times.
or email your comment to: firstname.lastname@example.org
|Last Updated ( Monday, 28 January 2019 )|