Cassandra storage engine issues
This page lists difficulties and peculiarities of Cassandra Storage Engine. I'm not putting them into bug tracker because it is not clear whether these properties should be considered bugs.
No way to get E(#rows in column family)
There seems to be no way to get even a rough estimate of how many different keys are present in a column family. I'm using an arbitrary value of 1000 now, which causes
- EXPLAIN will always show rows=1000 for full table scans. In the future, this may cause poor query plans.
DELETE FROM table
always prints "1000 rows affected", with no regards how many records were actually there in the table.
MariaDB [j1]> delete from t1; Query OK, 1000 rows affected (0.14 sec)
We could use the new engine-independent-table-statistics feature to get some data statistics.
No way to specify port number
One can specify which host to connect to (thrift_host
parameter), but not port number. It should be easy to add port number parameter.
Authentication is not supported.
Currently, CassandraSE is only able to work with AllowAllAuthenticator, which is the default. We may need to add authentication support when we move to working with cloud deployments.
Quorum level is hardcoded
There is no way to set desired quorum level from SQL.
SHOW CREATE TABLE requires connection to Cassandra to work
Currently, one can create or open a ha_cassandra table only when connection Cassandra works.
This may be inconvenient: if Cassandra backend is down, there is no way to find out where the ha_cassandra table is pointing to.
It seems, we could change ha_cassandra not to establish connection as soon as the table is opened.
NULL values
TODO