You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The infrastructure for store-level migrations is currently very primitive: a single Store.migrate method exists which is called for every range descriptor every time the store starts. This is both overly expensive and insufficiently flexible.
Two recent candidates for store-level migrations are recomputing system key stats to fix an inconsistency caused by a bug in handling of Raft tombstone keys and migrating the Raft tombstone key to the unreplicated key space. Recomputing the system key stats for every replica is a reasonably expensive operation which we wouldn't want to perform on every replica every time the store starts. Migrating the Raft tombstone keys is interesting because those keys are intended to exist only when a range descriptor for the range does not exist.
I think the existing migration mechanism should be replaced with something similar to the cluster upgrade tool. Each migration would have an associated name and the store will keep a /Local/Store/Migration/<migration> key that is only present after the migration has been run. Migrations would be run early in the lifetime of a store before the replicas have been loaded.
The infrastructure for store-level migrations is currently very primitive: a single
Store.migrate
method exists which is called for every range descriptor every time the store starts. This is both overly expensive and insufficiently flexible.Two recent candidates for store-level migrations are recomputing system key stats to fix an inconsistency caused by a bug in handling of Raft tombstone keys and migrating the Raft tombstone key to the unreplicated key space. Recomputing the system key stats for every replica is a reasonably expensive operation which we wouldn't want to perform on every replica every time the store starts. Migrating the Raft tombstone keys is interesting because those keys are intended to exist only when a range descriptor for the range does not exist.
I think the existing migration mechanism should be replaced with something similar to the cluster upgrade tool. Each migration would have an associated name and the store will keep a
/Local/Store/Migration/<migration>
key that is only present after the migration has been run. Migrations would be run early in the lifetime of a store before the replicas have been loaded.See #12289
The text was updated successfully, but these errors were encountered: