Latest Modification: Dec. 18th, 1998
(The thesis paper)
Latest update: Dec, 3rd 1998
Current version: Final
The design and a first implementation of dtfs have been my computer science diploma thesis at the university. The thesis paper is now available online from here (approx. 185kb).
The paper descibes the problems dtfs tries to address. Then the dtfs design is introduced. The next section discusses the implementation of dtfs. Finally, information on testing dtfs is given and a few performance results are preseted.
The paper is formatted for a4 paper (letter available on request). It has 102 pages, of which approx. 30 pages in the appendix are probably only of interest for people wanting to contribute to dtfs.
Here is the abstract of the paper:
This thesis discusses the design and implementation of dtfs, a log-structured filesystem for Linux. dtfs features a generic core providing logging facilities that are filesystem-independent and a "filesystem personality" that borrows heavily from the Linux ext2 filesystem. Furthermore, the dtfs design supports the placement of multiple filesystems (even of different filesystem personalities) on top of one dtfs filesystem device and the creation of snapshots and different versions for these filesyste ms.
I have also made a first implementation of dtfs using the Linux 2.0.33 kernel and investigated the performance effects caused by a log-structured filesystem. The results show that this implementation of dtfs is already approximately on par with the 2.0.33 ext2 filesystem performance-wise. This also illustrates that traditional approaches have been closing the performance gap during the last years, especially when dealing with write and metadata update operations. However, other qualtitative improvements offered by the dtfs design, such as fast crash recovery or the ability to create consistent backups without restricting user access to the filesystem, cannot be added to traditional approaches easily.
Having a look at this paper is highly recommended in order to get an idea of how dtfs works.
ALL OTHER PAPERS IN THIS SECTION ARE NOT UP--TO DATE ANYMORE SINCE THEY ARE MORE OR LESS COVERED BY THE MAIN PAPER. THEY ARE PROVIDED AS "HISTORIC" MATERIAL...
One General Remark:
The purpose of these papers is to serve as a basis for discussion and as a reminder for myself. (There is no point in reasoning about a certain issue for days without writing down the results; you'll probably forget what you have decided to do when you don´t write it down.)
These pages contain ideas to various issues concerning the design of dtfs. They are not up-do-date anymore, but they document the design decisions that have been taken into account.
Latest update: May, 12th 1998
This document gives a short overview of the support for read/write operations in dtfs. It shows how the dtfs core can be implemented without making any assumptions about the traditional file system's indirect addressing scheme. It is recommended to have a look at chapter 1 of "Implementing dtfs", altough this document is not completely up-to-date anymore.
The document is 6 pages long. It is available in the following formats:
Latest update: March, 11th 1998
Here is a document outlining my thoughts on how to integrate a log-structured file system into the Linux kernel. The document is formatted for letter paper and 8 pages long.
Latest update: March, 26th 1998
This paper is a more in-depth outline of how the log-structured file system dtfs should be implemented within the Linux kernel. It should provide enough information to get started.
The document is 12 pages long and formatted (not very pretty at the moment) for letter paper. It is available in the following formats: