For complex Apache Storm topology in real time, I need aggregates of my data (stored in CassandraDB) for some stages of the calculation. While data is requested, if necessary, with CQL (Cassandra Query Language) and aggregated in a storm bolt. This is a bit slower, so we want to have the data needed to cache aggregation. There are two options in the table:
- Put the data needed in the Ignite indexed cache and the sliding window, request it from Storm. In this case, we need only one cache and use different requests, depending on the aggregation.
- Put the data in Cassandras in memory, in cache cache.
Argument for Ignite: We only need one indexed cache, while we need one Cassandra table for each aggregation for quick access. (Also ACID, but obviously we already live with CAP, so it’s not a strong argument for our architects.)
An argument for Cassandra: We do not need to introduce new technology.
But: What about speed? How quickly does the Ignite indexed cache compare with the optimized (= native table for each query) in Cassandra in memory?
source share