[SERVER-45847] Pull the JournalFlusher out of the storage engine layer and place it above the storage engine Created: 29/Jan/20 Updated: 29/Oct/23 Resolved: 17/Mar/20 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Storage |
| Affects Version/s: | None |
| Fix Version/s: | 4.7.0, 4.4.5 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Dianna Hohensee (Inactive) | Assignee: | Dianna Hohensee (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||||||||||||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||||||||||||||||||||||||||||||
| Backport Requested: |
v4.4
|
||||||||||||||||||||||||||||||||||||||||||||||||
| Sprint: | Execution Team 2020-03-23 | ||||||||||||||||||||||||||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||||||||||||||||||||||||||
| Linked BF Score: | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||
| Description |
|
This requires moving the WiredTigerJournalFlush above the storage layer, and establishing a new code layer – perhaps StorageControl. This new code layer should have things like all the oplog collection specific code currently splattered across the generic WiredTigerRecordStore class. |
| Comments |
| Comment by Githook User [ 23/Feb/21 ] |
|
Author: {'name': 'Dianna Hohensee', 'email': 'dianna.hohensee@mongodb.com', 'username': 'DiannaHohensee'}Message: |
| Comment by Githook User [ 22/Feb/21 ] |
|
Author: {'name': 'Dianna Hohensee', 'email': 'dianna.hohensee@mongodb.com', 'username': 'DiannaHohensee'}Message: Creating a new storage/control/ directory that contains StorageControl to handle manipulation of create mode 100644 src/mongo/db/storage/control/journal_flusher.cpp (cherry picked from commit 6af5a08234f59cd00650a8e3b141a56b6a5ebf14) |
| Comment by Githook User [ 17/Mar/20 ] |
|
Author: {'email': 'dianna.hohensee@mongodb.com', 'name': 'Dianna Hohensee', 'username': 'DiannaHohensee'}Message: Creating a new storage/control/ directory that contains StorageControl to handle manipulation of create mode 100644 src/mongo/db/storage/control/journal_flusher.cpp |
| Comment by Dianna Hohensee (Inactive) [ 02/Mar/20 ] |
|
Adding a todo reference in |
| Comment by Dianna Hohensee (Inactive) [ 29/Jan/20 ] |
|
I wonder if we could either eliminate the JournalListener, or at least move it up to wrap around the JournalFlusher's – whatever we rename it too – waitUntilDurable call. This would get the JournalListener out of the WiredTigerSessionCache:waitUntilDurable code. Also, it would reduce future risk of racing to set the truncate point in the JournalListener with unsetting it for stepdown. (move the journal_listener.h/cpp out of storage/, too) Could even make the JournalFlusher (whatever we name it) stop on stepdown and start on stepup: all the other modes call waitUntilDurable manually for new data writes? Might not be 100% accurate. |