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
Copy file name to clipboardExpand all lines: libs/cluster/Server/Migration/MigrateSessionSlots.cs
+14Lines changed: 14 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -114,6 +114,20 @@ async Task<bool> CreateAndRunMigrateTasksAsync(long beginAddress, long tailAddre
114
114
returnfalse;
115
115
}
116
116
117
+
// Handle migration of discovered RangeIndex keys with sketch protection.
118
+
// All RI keys are added to the sketch in one batch, then a single epoch
119
+
// barrier per phase gates concurrent operations.
120
+
varrangeIndexKeys=migrateOperation.SelectMany(static mo =>mo.RangeIndexes).GroupBy(static g =>g.Key,ByteArrayComparer.Instance).ToDictionary(static g =>g.Key, g =>g.First().Value,ByteArrayComparer.Instance);
// TODO: Vector Set index keys are excluded from the sketch during scan (MigrateScanFunctions.cs),
129
+
// so concurrent writes are not blocked during transmit and reads are not blocked during delete.
130
+
// This should be fixed with the same sketch-protected batch pattern used for RangeIndex keys above.
117
131
// Handle migration of discovered Vector Set keys now that they're namespaces have been moved
118
132
varvectorSets=migrateOperation.SelectMany(static mo =>mo.VectorSets).GroupBy(static g =>g.Key,ByteArrayComparer.Instance).ToDictionary(static g =>g.Key, g =>g.First().Value,ByteArrayComparer.Instance);
0 commit comments