Skip to content

Commit

Permalink
Added rudimentary framework for journaling metadata pairs
Browse files Browse the repository at this point in the history
This is a big change stemming from the fact that resizable entries
were surprisingly complicated to implement and came in with a sizable
code cost.

The theory is that the journalling has a comparable cost to resizable
entries. Both need to handle overflowing blocks, and managing offsets is
comparable to managing attribute IDs. But by jumping all the way to full
journaling, we can statically wear-level the metadata written to
metadata pairs.

The idea of journaling littlefs's metadata has been mentioned several times in
discussions and fits well into how littlefs works. You could even view the
existing metadata log as a log of size 2.

The downside of this approach is that changing the metadata in this way
would break compatibility from the existing layout on disk. Something
that resizable entries does not do.

That being said, adopting journaling at the metadata layer offers a big
improvement to littlefs's performance and wear-leveling, with very
little cost (maybe even none or negative after resizable entries?).
  • Loading branch information
geky committed Oct 13, 2018
1 parent 61f454b commit 8070abe
Show file tree
Hide file tree
Showing 3 changed files with 966 additions and 5 deletions.
Loading

0 comments on commit 8070abe

Please sign in to comment.