Font Size: a A A

The Design And Implementation Of A User-Space In-memory File System For Non-Volatile Memory

Posted on:2018-01-30Degree:MasterType:Thesis
Country:ChinaCandidate:Y JiaFull Text:PDF
GTID:2348330533961357Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
With the arrival of large data age,people put forward a greater demand for power and the performance of data processing.NVM appears in recent years,which has the advantages of sustainable data,fast read and write,low power consumption,byte addressing,etc.It is very possible that block device is replaced with NVM in storing data.However,the traditional file systems are designed for slow block devices.Read and write process of files will go through a number of software levels,resulting in a great overhead.Therefore traditional file systems can not take full advantage of NVM.On this issue,there are already a number of memory file systems appearing for NVM.The read and write of in memory file system are very different from block device file system and the performance is far more than that of the traditional block device file system.But the current memory file systems will go through the kernel software stack when accessing a file,such as the VFS layer,which will produce the overhead of accessing software levels and switching states.The overhead reduces the performance of the file systems.To avoid the overheads of kernel stack,the file systems use memory-mapped technology(MMAP)and FUSE(File System In User Space)to provide accessing files in user space.However,MMAP map file data in the user space,which will have a huge overhead;FUSE will switch between kernel space and user space multiple times when accessing files,which will also generate the overhead kernel software stack seriously.To this end,this paper deeply studied the advantages and disadvantages of MMAP technology and FUSE technology,and put forward the design of a real user space in memory file system,which is called UMFS(User-space in-Memory File System).The main contents of the UMFS are as follows:(1)Reading and writing files directly with the virtual address of the user process.The data of files can be accessed directly in the user space by opening files.A file can be mapped into the user space in constant time regardless of the file size.(2)The process of file operations in user space.The traditional memory file system exists in the kernel space,the applications need to copy the data from the kernel space to the user space to access files.Compared with the traditional file systems,the file system in user space bypasses a lot of kernel path and reduces the overhead of kernel stack when accessing files.Therefore the performance get better.(3)Designing a software library which complies with POSIX standard.UMFS packages the operations of file system into the library and these operations work in user space,such as read and write operations.With the POSIX-compliant library,existing applications can use UMFS directly without modification.(4)The consistency of write in the file system.UMFS provides a log in user space to ensure data consistency of write operations.The log is stored in non-volatile memory persistently and can be mapped in the virtual address space of different processes at the same time.The log provide process synchronization while ensuring consistency.The experiments about UMFS are conducted in this paper.UMFS is compared with three typical in-memory file systems,including SIMFS,NOVA and EXT4-DAX.The experimental results show that the throughput of UMFS exceeds these of the other memory file systems.For example,the throughput of UMFS is 0.4 times,0.8 times,1 times faster than SIMFS,NOVA and EXT4-DAX for sequential read by single thread,respectively.
Keywords/Search Tags:Non-Volatile Memory, File System, Kernel overhead, User Space, MMAP
PDF Full Text Request
Related items