Type: New Feature
Fix Version/s: None
Component/s: Legacy/Distributed Metadata
The current way Cassandra handle schema modification can lead to some schema disagreements as DDL statements execution doesn't come with any absolute guarantee. I understand that entirely seamless schema updates in such a distributed system will be challenging to reach and probably not a high priority for now.
That being said these disagreements can sometime lead to challenging situation for scripts or tools that need things to be in order to move on. To clarify the situation, help the user to figure out what's going on, as well as to properly log these sensitive operations, it would be interesting to add a schema_change_history table in the system keyspace.
I would expect it to be local to a node and to contain the following information:
- DDL statement that has been executed
- User login used for the operation
- IP of the client that originated the request
- Date/Time of the change
- Schema version before the change
- Schema version after the change
Under normal conditions, Cassandra shouldn't handle a massive amount of DDL statements so this table should grow at a descent pace. Nevertheless to bound its growth we can consider adding a TTL.