[SERVER-4793] Enable journal by default on win32 Created: 27/Jan/12  Updated: 06/Dec/22  Resolved: 28/Sep/17

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

Type: Improvement Priority: Major - P3
Reporter: Mathias Stearn 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

Issue Links:
Related
related to SERVER-6858 enable journaling by default on 32-bi... Closed
Assigned Teams:
Storage Execution
Participants:

 Description   

Since we don't double map on windows anyway, the justification for not journaling on 32-bit doesn't apply to win32. We just need to test that everything works correctly in this case.



 Comments   
Comment by Tad Marshall [ 26/Aug/12 ]

Windows does the same double mapping that Unix does when journaling is enabled.

The main reason not to do journaling by default in 32-bit Windows is the same (more or less) as in Unix ... there isn't enough address space as it is, and journaling doubles the amount of it that gets used for memory-mapped files.

The additional complication in 32-bit Windows is the problem where we have to unmap and then remap the private view as separate operations, and we can't do the trick we do on 64-bit Windows of mapping at a high address (256 GB) to prevent thread stacks and heaps from appearing in our briefly unmapped window of vulnerability. So, 32-bit Windows with journaling will be subject to MapViewOfFileEx() failures with error 487 when a thread stack or heap is created in the location where a private view has just been unmapped. This triggers a fatal assert. Since this would only happen when journaling is on, you would recover on restart.

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