Description:
Due to the in-memory nature of MySQL NDB Cluster 5.0, it has found a forte in session management, in applications as diverse as e-commerce and poker. Much of this data is transient and disposable. However, it is often mixed with data which requires more persistence and therefore a cluster typically cannot be run in diskless mode. This creates a situation where a typically high volume of transient data is being journalled unnecessarily. This increases the disk bandwidth, disk size, processor utilization and energy consumption of the cluster. Therefore, selective journalling on a per table table basis would provide a small but significant reduction in cost for a typical cluster.
How to repeat:
mysql> CREATE TABLE t9 (
-> a INT PRIMARY KEY
-> ) ENGINE=NDBCLUSTER JOURNAL=0;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'JOURNAL=0' at line 3
Suggested fix:
The current solution is to commit all data to journals and tune disk bandwidth accordingly. For very specific cases, it may be worthwhile to run multiple instances of a cluster - one a diskless mode for session data. However, the latter solution has not be specified or observed in the wild.