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
"Table {} snapshot lacks required timestamp. This table was created with a significantly outdated version that is no longer directly supported by the current version and requires migration.
159
160
Please contact us at https://www.databend.com/contact-us/ or email [email protected]",
160
161
tid
161
162
)));
162
-
};
163
-
164
-
// By enforcing txn_begin_timestamp >= latest_snapshot_timestamp, we ensure that
165
-
// vacuum operations won't remove table data (segment, blocks, etc.) that newly
166
-
// created in the current active transaction.
167
-
168
-
// In the current transaction, all the newly created table data (segments, blocks, etc.)
169
-
// has timestamps that are greater than or equal to txn_begin_timestamp, but the
170
-
// final snapshot which contains those data (and is yet to be committed) may have a timestamp
171
-
// that is larger than txn_begin_timestamp.
172
-
173
-
// To maintain vacuum safety, we must ensure that if the latest snapshot's timestamp
174
-
// (latest_snapshot_timestamp) is larger than txn_begin_timestamp, we abort the transaction
175
-
// to prevent potential data loss during vacuum operations.
176
-
177
-
// Example:
178
-
// session1: session2: session3:
179
-
// begin;
180
-
// -- newly created table data
181
-
// -- timestamped as A
182
-
// insert into t values (1);
183
-
// -- new snapshot S's ts is B
184
-
// insert into t values (2);
185
-
// -- using S as gc root
186
-
// -- if B > A, then newly created table data
187
-
// -- in session1 will be purged
188
-
// call fuse_vacuum2('db', 't');
189
-
// -- while merging with S
190
-
// -- if A < B, this txn should abort
191
-
// commit;
192
-
193
-
if txn_begin_timestamp < latest_snapshot_timestamp {
"Unresolvable conflict detected for table {} while resolving conflicts: txn started with logical timestamp {}, which is less than the latest table timestamp {}. Transaction must be aborted.",
0 commit comments