Skip to content
Luke Bakken edited this page Apr 3, 2015 · 6 revisions

The current release of the Riak .NET Client has the following features:

  • Riak cluster support:
    • One or more nodes in the cluster.
    • Load-balancing and pooling of connections across the nodes.
      • Currently only round-robin is supported, more strategies to come later.
    • Per-node configuration for:
      • Host Name (purely used for identification).
      • Host Address.
      • PBC Port.
      • HTTP/REST Port.
      • Pool Size.
      • Timeout parameters.
  • Server ping.
  • Get server information/version.
  • Get/Put/Delete operations.
  • Bulk Get/Put/Delete operations.
  • List buckets.
  • List keys.
  • Semi-fluent Map/Reduce.
  • Link walking.
  • Set/Get bucket properties.
  • Full Secondary Index support.
  • Fluent Riak Search interface.
  • Batch operations on a single connection.
    • Each time a Client function is called resulting in communication with the Riak cluster, a connection is pulled from a pool on a given node. In most use-cases this functionality is fine as it is often single-shot calls that are made. There are, however, cases where many operations will happen at once. Rather than forcing the user to make multiple calls to the client, resulting in multiple connection acquisitions behind the scenes, the user can use the Batch interface to make many calls on a single connection.
    • Because a batch operation reuses a single connection only a subset of the client API is available for batch actions. The functions that are excluded are the asynchronous functions.
  • Graceful degradation to HTTP/REST API when the request isn't supported via Protocol Buffers.
  • Works with .NET 4.0 on Windows, and Mono on Linux and OSX.

As of Riak .NET Client v1.1 full support of Riak v1.2 is enabled.

Upcoming Features

The authors are currently working the following features (though there are no dates yet as to when they will be ready):

  • Improved self-healing of connections and management of nodes.
  • Connection idling.
  • Discovery of cluster information and nodes.
  • Incorporating feature requests and bug fixes.
  • Playing catch-up with Riak's advances.

Unplanned Features

  • .NET 3.5 support - after careful consideration we decided to not worry about adding support for .NET 3.5 applications. The main reason for this is that Riak is new to the .NET world and any applications that aim to talk to Raik will most likely be new applications themselves and hence would use the latest version of .NET (v4.0 at the time of writing). If the community feels that .NET 3.5 support is required then we can look into the options around adding support. At this stage, we don't think it's worth the effort when we could instead be adding new features to the client.

Missing Features?

Is there a Riak feature you know if which isn't listed here at all? Please let us know or, better still, get involved!