Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Ensure that store copy also moves non-store files
Store files (with the current exception of the counts store) have to be moved via the page cache, because that is the only way to communicate with any block device storage that might be configured on the given instance. The rest of the files are still on kept on the normal file system, and have to be moved in the old fashion way. However, we can't queue up these moves like we can with the store files, because we are not going to do the move until after we have run recovery on the store. The recovery process may delete some files and add others – Lucene files are particularly susceptible to this – and so we have to traverse the file system after the recovery. This is made somewhat awkward by the MoveAfterCopy callback, and the fact that our file system traversal should not encounter any to-be-moved-by-the-page-cache store files. We get around both of these issues by using streams. With the streams, we make sure that the via-page-cache moves are ordered before our file system traversal, so no moves get queued up twice. The reason is that the streams are iterated lazily, and they have been carefully composed to retain their lazy nature until the very last moment.
- Loading branch information
Showing
6 changed files
with
81 additions
and
20 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