[SERVER-13473] journaling too much on key deletions Created: 03/Apr/14  Updated: 06/Dec/22  Resolved: 14/Sep/18

Status: Closed
Project: Core Server
Component/s: Index Maintenance, MMAPv1
Affects Version/s: 2.6.0-rc3
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Dwight Merriman Assignee: Backlog - Storage Execution Team
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Storage Execution
Participants:

 Description   

it appears that it's common for the whole btree bucket to get journaled. that's suboptimal.



 Comments   
Comment by Dwight Merriman [ 03/Apr/14 ]

so – yes. btreemod() declares written the full bucket. we can make delKeyAtPos smarter for the common case, and have it do the whole bucket for rare situations.

bool BtreeBucket<V>::unindex(IndexCatalogEntry* btreeState,
const DiskLoc thisLoc,
const BSONObj& key,
const DiskLoc recordLoc) const {
int pos;
bool found;
DiskLoc loc = locate(btreeState, thisLoc, key, pos, found, recordLoc, 1);
if ( found )

{ loc.btreemod<V>()->delKeyAtPos(btreeState, loc, pos); return true; }

return false;
}
}}

Comment by Dwight Merriman [ 03/Apr/14 ]

i'm just starting to check...will let u know

Comment by Eric Milkie [ 03/Apr/14 ]

Interesting. Is this due to overly aggressive write intent range declaring, or something else more subtle?

Generated at Thu Feb 08 03:31:50 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.