Block allocator on disk, like the malloc on memory. Aimed to provide reliable and highly concurrent storage service. Design and implemented in school time.
Using the decorator and strategy pattern to make underlying storage replaceable. There is also basic data structures built on the block allocator to work purely on disk and made non-blocking and highly concurrent.