Skip to content

Commit f20dc19

Browse files
author
Wojtek
committed
dirty pre-check
1 parent 4e65579 commit f20dc19

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

‎src/dbzero/core/memory/SlabManager.cpp‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -626,7 +626,9 @@ namespace db0
626626
if (!unique || ((*slab)->tryMakeAddressUnique(*addr, instance_id))) {
627627
// Modified slabs are tracked per atomic frame so rollback can evict
628628
// only stale allocator instances from that frame.
629-
markDirty(slab);
629+
if (!slab->m_is_dirty) {
630+
markDirty(slab);
631+
}
630632
return addr;
631633
}
632634

@@ -689,7 +691,9 @@ namespace db0
689691
auto slab = find(slab_id);
690692
assert(slab);
691693
(*slab)->free(address);
692-
markDirty(slab);
694+
if (!slab->m_is_dirty) {
695+
markDirty(slab);
696+
}
693697
if ((*slab)->empty()) {
694698
// erase or mark as erased
695699
erase(slab);

0 commit comments

Comments
 (0)