[SERVER-8484] workingSet command pagesInMemory estimate not affected by db "touch" command Created: 08/Feb/13  Updated: 15/Feb/13  Resolved: 09/Feb/13

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

Type: Bug Priority: Major - P3
Reporter: Michael O'Brien Assignee: Eric Milkie
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
Operating System: ALL
Participants:

 Description   

After a server restart, pagesInMemory is low (as expected) but then using "touch" command to try forcing the collection into ram, it only increments by one. The data set used for testing was ~1.4gb.

> use enron_mail
switched to db enron_mail
> db.serverStatus({workingSet:1}).workingSet.pagesInMemory
5
> db.runCommand({touch:"messages", data:true, index:true})
{ "ok" : 1 }
> db.serverStatus({workingSet:1}).workingSet.pagesInMemory
6
> 



 Comments   
Comment by Eliot Horowitz (Inactive) [ 09/Feb/13 ]

This behavior is correct.
touch should not impact working set, as its not actually doing anything about the working set.
This is true of any method to load data from ram besides real usage (dd, etc...)

Comment by Eric Milkie [ 08/Feb/13 ]

I believe the logic for determining when PageFaultException is thrown uses more information than just the PointerTable, although such information is not entirely accurate on Windows.

Comment by Eric Milkie [ 08/Feb/13 ]

I think this is because the touch command bypasses the way we are tracking working set pages, which is a hook in the record accessing functions.

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