Database Reference
In-Depth Information
Using different client APIs to access
Cassandra
Now that we are acquainted with Cassandra, let's move on to the next step where we will
access (insert or update) data into the cluster programmatically. In general, the APIs we are
talking about are wrappers written over the core Thrift API, which offers various CRUD
operations over the Cassandra cluster using programmer-friendly packages.
The client APIs that are used to access Cassandra are as follows:
Thrift protocol : The most basic of all APIs to access Cassandra is the Remote
Procedure Call ( RPC ) protocol, which provides a language-neutral interface and
thus exposes flexibility to communicate using Python, Java, and so on. Please note
that almost all other APIs we'll discuss use Thrift under the hood. It is simple to
use and it provides basic functionality out of the box like ring discovery and native
access. Complex features such as retry, connection pooling, and so on are not sup-
ported out of the box. However, there are a variety of libraries that have extended
Thrift and added these much required features, and we will touch upon a few
widely used ones in this chapter.
Hector : This has the privilege of being one of the most stable and extensively used
APIs for Java-based client applications to access Cassandra. As mentioned earlier,
it uses Thrift under the hood, so it essentially can't offer any feature or functional-
ity not supported by the Thrift protocol. The reason for its widespread use is that it
has a number of essential features ready to use and available out of the box:
◦ It has implementation for connection pooling
◦ It has a ring discovery feature with an add-on of automatic failover support
◦ It has a retry option for downed hosts in the Cassandra ring
Datastax Java driver : This is, again, a recent addition to the stack of client access
options to Cassandra, and hence goes well with the newer version of Cassandra.
Here are its salient features:
◦ Connection pooling
◦ Reconnection policies
◦ Load balancing
◦ Cursor support
Astyanax : This is a very recent addition to the bouquet of Cassandra client APIs
and has been developed by Netflix, which definitely makes it more fabled than oth-
ers. Let's have a look at its credentials to see where it qualifies:
Search WWH ::




Custom Search