What's New With Drivers for DSE 6
With this most recent major DSE release, we took what was already the best distribution of Apache Cassandra™ and made it faster, more resilient, and more intuitive to operate. For a breakdown of these server-side improvements a la carte, head on over to the DataStax Enterprise 6 blog post. In this DataStax Drivers blog post, we will give you the client-side scoop on what’s been added to facilitate interacting with DSE 6.
DSE Graph Fluent API Batches
DataStax Drivers now offer the ability to execute DSE Graph statements in batches. To accomplish this, they leverage CQL Batch under the covers and these DSE Graph Fluent API batches are subject to the same considerations. It’s advised to limit these to vertices and edges that share the same partition key or involve very little unique partitions to reduce coordinator burden and the number of DSE nodes involved. The design was bound to an ease-of-use commitment ( see Java Example, Python Example ).
DSE Graph Fluent API - C# and Node.js
We are very proud to also announce that DSE Graph Fluent API support has extended to more of the DataStax Drivers-supported languages. This continues to build on the momentum that Java and Python started and now this same programmatic style of writing and executing DSE Graph queries through the DataStax Drivers can be accomplished through the C# and Node.js DataStax Drivers. Check out the C# blog post and Node.js documentation for more detail.
NodeSync Information in Table Metadata
Goodbye Repair, Hello DSE NodeSync. Repair in Apache Cassandra™ is the process of making sure that the data on disk across your cluster is in sync. Though this may sound simple, we know that operating and monitoring this action in previous DSE versions was a burden. With DSE 6, this burden is gone and NodeSync now does this for you automatically.
The DataStax Drivers allow you to view NodeSync information via the table metadata. See this example showing how to verify that NodeSync is enabled on a given table and enjoy the peace of mind that comes with knowing that the data you are receiving in your applications is correct and uniform across your underlying servers.
Ports Added to Host Metadata
To facilitate the development of applications that need to connect to both native storage and JMX ports, we added these to the Host class metadata. Happy coding.
For those who soaked up DSE 5.1, the concept of Continuous Paging may sound familiar. If you have not yet reaped the benefits via DSE Analytics, then give it some thought in DSE 6, because we have made this feature even sturdier and more efficient.
At a high level, the performance gains produced by this feature are sourced from the fact that we are continuously preparing result pages on the server side in response to a query. This removes the inefficient chitter chatter from client to server that occurs with normal paging when requesting the next pages of results.
With DSE 6 we’ve improved the communication mechanism in the paging solution such that the driver specifies a number of pages of rows with the initial request and then requests more as it consumes them. Tangibly, this allows Continuous Paging queries to be safely made alongside other queries over the same driver connection without disrupting the connection when the server is producing results faster than the client can handle.
The shiny new DataStax Bulk Loader also sports the improved performance profile that Continuous Paging delivers. I suggest giving that a look if you are loading or unloading data in large quantities.
Prepared Statement Robustness
Recent DataStax Drivers releases have made strides in making prepared statements more durable.
If you have multiple clients connected to the same host, we fixed a case where the driver metadata could become invalid if the underlying schema had been altered (ie, a column has been added or dropped). If you had been working around the issue documented here by not preparing your SELECT* statements, you can now remove that workaround if you upgrade to the latest version of DSE and the DataStax Drivers. See this example to hammer this home.
Keyspace Per Query Support
To wrap up, we addressed the situation when your queries and keyspaces are independent of one another. In the most recent driver versions, you can now supply the keyspace as an option for your statements, rather than resorting to having separate sessions per keyspace or some other hackery. These examples illustrate this usability improvement.
Additional Search Conditionals
The integration of DSE Search was further tightened in DSE 5.1 with the ability to control search indexes through CQL. This journey continues with DSE 6 as native CQL queries can now leverage search indexes for a wider array of CQL query functionality and indexing support. The DataStax Drivers remain in lock step with the DSE server side functionality and the new search conditionals can be found in the Java Driver Query Builder ( see example ).