Illustration Image

Cassandra.Link

The best knowledge base on Apache Cassandra®

Helping platform leaders, architects, engineers, and operators build scalable real time data platforms.

1/20/2024

Reading time:2 min

Apache Cassandra Acceleration With Apache Ignite

by John Doe

Apache Cassandra Acceleration With Apache Ignite | Ignite DocumentationEditThe Ignite Cassandra integration implements the CacheStore interface allowing to deploy Ignite as a high-performance caching layer on top of Cassandra.Some observations in regards to the integration:The integration uses Cassandra asynchronous queries for CacheStore batch operations such as such as loadAll(), writeAll() and deleteAll() to provide extremely high performance.The integration automatically creates all necessary tables (and keyspaces) in Cassandra if they are absent. Also, it automatically detects all the necessary fields for Ignite key-value tuples that will be stored as POJOs, and creates an appropriate table structure. Thus you don’t need to care about the Cassandra DDL syntax for table creation and Java to Cassandra type mapping details.You can optionally specify the settings (replication factor, replication strategy, bloom filter and etc.) for Cassandra tables and keyspaces which should be created.Combines functionality of BLOB and POJO storage, allowing to specify how you prefer to store (as a BLOB or as a POJO) key-value tuples from your Ignite cache.Supports standard Java and Kryo serialization for key-values which should be stored as BLOBs in CassandraSupports Cassandra secondary indexes (including custom indexes) through persistence configuration settings for particular Ignite cache or such settings could be detected automatically if you configured SQL Indexes by Annotations by using @QuerySqlField(index = true) annotationSupports sort order for Cassandra cluster key fields through persistence configuration settings or such settings could be detected automatically if you are using @QuerySqlField(descending = true) annotation.Supports affinity co-location for the POJO key classes having one of their fields annotated by @AffinityKeyMapped. In such a way, key-values tuples which were stored on one node in an Ignite cache will be also stored (co-located) on one node in Cassandra.CautionIgnite SQL Queries and CassandraNote that in order to execute SQL queries you need to have all the data loaded from Cassandra into an Ignite cluster. The Ignite SQL engine doesn’t assumes that all the records are available in memory and won’t try to query Cassandra.An alternative would be to use Ignite Native Persistence - a distributed, ACID, and SQL-compliant disk store that allows performing SQL queries on the data stored in-memory as well as on disk.© 2024 The Apache Software Foundation.Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered trademarks or trademarks of The Apache Software Foundation.

Illustration Image
Apache Cassandra Acceleration With Apache Ignite | Ignite Documentation
Apache Ignite logo
Edit

The Ignite Cassandra integration implements the CacheStore interface allowing to deploy Ignite as a high-performance caching layer on top of Cassandra.

Some observations in regards to the integration:

  1. The integration uses Cassandra asynchronous queries for CacheStore batch operations such as such as loadAll(), writeAll() and deleteAll() to provide extremely high performance.

  2. The integration automatically creates all necessary tables (and keyspaces) in Cassandra if they are absent. Also, it automatically detects all the necessary fields for Ignite key-value tuples that will be stored as POJOs, and creates an appropriate table structure. Thus you don’t need to care about the Cassandra DDL syntax for table creation and Java to Cassandra type mapping details.

  3. You can optionally specify the settings (replication factor, replication strategy, bloom filter and etc.) for Cassandra tables and keyspaces which should be created.

  4. Combines functionality of BLOB and POJO storage, allowing to specify how you prefer to store (as a BLOB or as a POJO) key-value tuples from your Ignite cache.

  5. Supports standard Java and Kryo serialization for key-values which should be stored as BLOBs in Cassandra

  6. Supports Cassandra secondary indexes (including custom indexes) through persistence configuration settings for particular Ignite cache or such settings could be detected automatically if you configured SQL Indexes by Annotations by using @QuerySqlField(index = true) annotation

  7. Supports sort order for Cassandra cluster key fields through persistence configuration settings or such settings could be detected automatically if you are using @QuerySqlField(descending = true) annotation.

  8. Supports affinity co-location for the POJO key classes having one of their fields annotated by @AffinityKeyMapped. In such a way, key-values tuples which were stored on one node in an Ignite cache will be also stored (co-located) on one node in Cassandra.

Caution

Ignite SQL Queries and Cassandra

Note that in order to execute SQL queries you need to have all the data loaded from Cassandra into an Ignite cluster. The Ignite SQL engine doesn’t assumes that all the records are available in memory and won’t try to query Cassandra.

An alternative would be to use Ignite Native Persistence - a distributed, ACID, and SQL-compliant disk store that allows performing SQL queries on the data stored in-memory as well as on disk.

© 2024 The Apache Software Foundation.
Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered trademarks or trademarks of The Apache Software Foundation.

Related Articles

integration
ignite
cassandra

Ignite Cassandra Integration Usage Examples

John Doe

1/20/2024

Checkout Planet Cassandra

Claim Your Free Planet Cassandra Contributor T-shirt!

Make your contribution and score a FREE Planet Cassandra Contributor T-Shirt! 
We value our incredible Cassandra community, and we want to express our gratitude by sending an exclusive Planet Cassandra Contributor T-Shirt you can wear with pride.

Join Our Newsletter!

Sign up below to receive email updates and see what's going on with our company

Explore Related Topics

AllKafkaSparkScyllaSStableKubernetesApiGithubGraphQl

Explore Further

integration