Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- OptiLock.writeLock has been changed to tryWriteLock and no longer blocks. This means OptiLock is now entirely non-blocking and allocation free. - A bunch of data race bugs has been fixed. Particularly around page faulting and pinning. And eviction. And background flushing. - Pages are now always exclusively locked when they are in the freelist. They are locked by eviction and unlocked by page faulting. This solves a race where a page pin, an eviction and a page fault happen concurrently and interleave in a particular way. - RandomPageCacheTestHarness now also simulates entity locks, and ensures that records are locked when written to. - Flushing a paged file will now spin on exclusively locked pages in its translation table. This way, the flush won't skip pages that are being looked at by the eviciton thread, or the background flush thread. This is important because the flushes might fail, in which case we don't want to miss dirty pages since this can lead to lost data. Especially if we are flushing the file because we want to unmap it. The slow page cache tests are still failing, and we still haven't allowed multiple open page cursors per thread.
- Loading branch information
Showing
13 changed files
with
310 additions
and
330 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.