Node.js Driver Adds Support for Cassandra 3.0
Version 3.0.0 of the DataStax Node.js driver is now available with support for Apache Cassandra 3.0.
The main focus for this release was to add support for the changes in the schema metadata introduced in Cassandra 3.0 that is used internally by the driver. Additionally, we exposed Materialized Views metadata information and introduced a new Index metadata API.
We also made other improvements to the driver.
Stream Throttling and Manual Paging
Client#stream()
now features throttling. When retrieving large result sets that spans across multiple pages of rows, the driver will make the request for the following rows once the previous rows have been read from the stream.
Client#eachRow()
result now exposes a nextPage
function to trigger the request for the following page reusing the same callbacks, as an option to manually retrieve the following pages without having to deal with pageState
.
You can read more about retrieving large result sets and paging in the Node.js driver in the documentation.
Performance Improvements
The driver now includes message coalescing, making less syscalls in highly concurrent scenarios. We also added some small performance improvements like avoiding expensive javascript calls in the common execution path. You can read more on the tickets: NODEJS-142, NODEJS-130, NODEJS-198, and NODEJS-200.
A complete list of changes can be found on the changelog.
Looking Forward
Up until now, in the Node.js driver we were using version numbers to denote compatibility with Apache Cassandra. This is a good way to avoid doubts about which driver versions supported Cassandra versions but it constrained us to deliver major/breaking changes to the driver API independently from Cassandra.
For future versions, we decided to move to pure semantic versioning.
As you may already know, when adding support for newer Cassandra / DSE versions in the Node.js driver, compatibility with earlier Cassandra versions were always maintained. This will continue to be the case.
Your feedback is important to us and it influences our priorities. To provide feedback use the following:
- Mailing list
- IRC: #datastax-drivers on irc.freenode.net
- Review and contribute source code on GitHub
- Report issues on JIRA