Skip to content

Commit 6b38e39

Browse files
committed
"Update Meta catalog manager for versioning"
1 parent d863e62 commit 6b38e39

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

src/meta/src/manager/catalog/fragment.rs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,9 @@ where
256256
dummy_table_id: TableId,
257257
merge_updates: &[MergeUpdate],
258258
) -> MetaResult<()> {
259-
let map = &mut self.core.write().await.table_fragments;
259+
let mut guard = self.core.write().await;
260+
let current_revision = guard.table_revision;
261+
let map = &mut guard.table_fragments;
260262

261263
let mut table_fragments = BTreeMapTransaction::new(map);
262264

@@ -327,7 +329,17 @@ where
327329
assert!(merge_updates.is_empty());
328330

329331
// Commit changes and notify about the changes.
330-
commit_meta!(self, table_fragments)?;
332+
let mut trx = Transaction::default();
333+
334+
// save next revision
335+
let next_revision = current_revision.next();
336+
next_revision.store(&mut trx);
337+
338+
// commit
339+
commit_meta_with_trx!(self, trx, table_fragments)?;
340+
341+
// update revision in memory
342+
guard.table_revision = next_revision;
331343

332344
// FIXME: Do not notify frontend currently, because frontend nodes might refer to old table
333345
// catalog and need to access the old fragment. Let frontend nodes delete the old fragment

0 commit comments

Comments
 (0)