forked from dgraph-io/badger
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[BREAKING]: Change how Badger handles WAL (dgraph-io#1555)
This PR significantly improves Badger's disk usage behavior. Breaking: This PR increases the magic version from 7 to 8. So, no older Badger directories would work with this change. With this PR, we no longer use value log as write-ahead log. Instead, each MemTable has its own WAL. Value logs now only write values which are greater than ValueThreshold, while MemTable WAL only writes smaller values and value pointers. On a crash and restart, the MemTable WALs are replayed to apply updates to Skiplist. When MemTables are flushed to L0, the corresponding WALs are deleted. This PR makes big changes to how value log GC works: - Discard stats are now stored in a separate file, instead of within the LSM tree. - GC only picks up value logs based off discard stats. - GC no longer does sampling, it uses discard stats to inform when a value log needs to be GCed. - Value log would now no longer grow indefinitely, because of the shift to MemTable WAL. - Removed the `badger gc` tool. - Value Log Head pointer tracking is removed. - Only the last value log file is replayed on every start, and truncated as necessary. This PR also makes a bunch of other changes: - Removes ValueLogLoadingMode (always uses mmap now). - Removes TableLoadingMode (always uses mmap now). - Removes Truncate option. - Removes KeepL0InMemory option.
- Loading branch information
1 parent
0b10bb0
commit e3a0d29
Showing
60 changed files
with
1,702 additions
and
3,030 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
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 was deleted.
Oops, something went wrong.
Oops, something went wrong.