vacuum method

Future<void> vacuum()

Implementation

Future<void> vacuum() async {
  final threshold = txnManager.oldestActiveTxnId;

  for (final mvcc in mvccTables.values) {
    mvcc.vacuum(threshold);
  }

  for (final pt in pageTables.values) {
    final reclaimed = await pt.vacuum(oldestActiveTxnId: threshold);
    if (reclaimed > 0) {
      print('[Vacuum] ${pt.name}: reclaimed $reclaimed dead tuples.');
    }
  }

  committedTxns.evict(threshold);
  print('[NebulaDB] Vacuum done (threshold txnId=$threshold).');
}