[SERVER-3635] for non in mem yielding, touch / check whole record not just beginning Created: 17/Aug/11  Updated: 15/Aug/12  Resolved: 05/Apr/12

Status: Closed
Project: Core Server
Component/s: Concurrency
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Aaron Staple Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates SERVER-3711 Record::touch with entireRecord true ... Closed
Related
related to SERVER-4667 Improve support for mincore() Closed
is related to SERVER-2563 When hitting disk, yield lock - phase 1 Closed
Participants:

 Description   

See QA-10

4) It looks like we only check that the beginning of a record is in memory, not the end. So if we fall back to using process info to see if a record is in memory we might get a lot of false positives about records being in memory when only the beginning of the record is - particularly if we are reading back to back medium to large size docs and a doc seeds the beginning of the following doc into memory.

6) It looks like when we are calling touch() we currently just touch the beginning of a record not the whole thing.

  • delete {} - in this case the new code was better on average. With the new code time to acquire a lock was still a lot slower running against deletes than running against nothing - potentially running into the issue described in 4) above

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