Re: [RFC v2 01/83] Introduction and documentation of NOVA filesystem.

2018-03-19 Thread Andiry Xu
Thanks for all the comments.

On Mon, Mar 19, 2018 at 1:43 PM, Randy Dunlap  wrote:
> On 03/10/2018 10:17 AM, Andiry Xu wrote:
>> From: Andiry Xu 
>>
>> NOVA is a log-structured file system tailored for byte-addressable 
>> non-volatile memories.
>> It was designed and developed at the Non-Volatile Systems Laboratory in the 
>> Computer
>> Science and Engineering Department at the University of California, San 
>> Diego.
>> Its primary authors are Andiry Xu , Lu Zhang
>> , and Steven Swanson .
>>
>> These two papers provide a detailed, high-level description of NOVA's design 
>> goals and approach:
>>
>>NOVA: A Log-structured File system for Hybrid Volatile/Non-volatile Main 
>> Memories
>>In The 14th USENIX Conference on File and Storage Technologies (FAST '16)
>>(http://cseweb.ucsd.edu/~swanson/papers/FAST2016NOVA.pdf)
>>
>>NOVA-Fortis: A Fault-Tolerant Non-Volatile Main Memory File System
>>In The 26th ACM Symposium on Operating Systems Principles (SOSP '17)
>>(http://cseweb.ucsd.edu/~swanson/papers/SOSP2017-NOVAFortis.pdf)
>>
>> This patchset contains features from the FAST paper. We leave NOVA-Fortis 
>> features,
>> such as snapshot, metadata and data replication and RAID parity for
>> future submission.
>>
>> Signed-off-by: Andiry Xu 
>> ---
>>  Documentation/filesystems/00-INDEX |   2 +
>>  Documentation/filesystems/nova.txt | 498 
>> +
>>  MAINTAINERS|   8 +
>>  3 files changed, 508 insertions(+)
>>  create mode 100644 Documentation/filesystems/nova.txt
>
>> diff --git a/Documentation/filesystems/nova.txt 
>> b/Documentation/filesystems/nova.txt
>> new file mode 100644
>> index 000..4728f50
>> --- /dev/null
>> +++ b/Documentation/filesystems/nova.txt
>> @@ -0,0 +1,498 @@
>> +The NOVA Filesystem
>> +===
>> +
>> +NOn-Volatile memory Accelerated file system (NOVA) is a DAX file system
>> +designed to provide a high performance and production-ready file system
>> +tailored for byte-addressable non-volatile memories (e.g., NVDIMMs
>> +and Intel's soon-to-be-released 3DXPoint DIMMs).
>> +NOVA combines design elements from many other file systems
>> +and adapts conventional log-structured file system techniques to
>> +exploit the fast random access that NVMs provide. In particular, NOVA 
>> maintains
>> +separate logs for each inode to improve concurrency, and stores file data
>> +outside the log to minimize log size and reduce garbage collection costs. 
>> NOVA's
>> +logs provide metadata and data atomicity and focus on simplicity and
>> +reliability, keeping complex metadata structures in DRAM to accelerate 
>> lookup
>> +operations.
>> +
>> +NOVA was developed by the Non-Volatile Systems Laboratory (NVSL) in
>> +the Computer Science and Engineering Department at the University of
>> +California, San Diego.
>> +
>> +A more thorough discussion of NOVA's design is avaialable in these two 
>> papers:
>
>   available
>
>> +
>> +NOVA: A Log-structured File System for Hybrid Volatile/Non-volatile Main 
>> Memories
>> +Jian Xu and Steven Swanson
>> +In The 14th USENIX Conference on File and Storage Technologies (FAST '16)
>> +
>> +NOVA-Fortis: A Fault-Tolerant Non-Volatile Main Memory File System
>> +Jian Xu, Lu Zhang, Amirsaman Memaripour, Akshatha Gangadharaiah, Amit 
>> Borase,
>> +Tamires Brito Da Silva, Andy Rudoff and Steven Swanson
>> +In The 26th ACM Symposium on Operating Systems Principles (SOSP '17)
>> +
>> +This version of NOVA contains features from the FAST paper.
>> +NOVA-Fortis features, such as snapshot, metadata and data protection and 
>> replication
>> +are left for future submission.
>> +
>> +The main NOVA features include:
>> +
>> +  * POSIX semantics
>> +  * Directly access (DAX) byte-addressable NVMM without page caching
>> +  * Per-CPU NVMM pool to maximize concurrency
>> +  * Strong consistency guarantees with 8-byte atomic stores
>> +
>> +
>> +Filesystem Design
>> +=
>> +
>> +NOVA divides NVMM into several regions. NOVA's 512B superblock contains 
>> global
>
> (prefer:) 512-byte
>
>> +file system information and the recovery inode. The recovery inode 
>> represents a
>> +special file that stores recovery information (e.g., the list of unallocated
>> +NVMM pages). NOVA divides its inode tables into per-CPU stripes. It also
>> +provides per-CPU journals for complex file operations that involve multiple
>> +inodes. The rest of the available NVMM stores logs and file data.
>> +
>> +NOVA is log-structured and stores a separate log for each inode to maximize
>> +concurrency and provide atomicity for operations that affect a single file. 
>> The
>> +logs only store metadata and comprise a linked list of 4 KB pages. Log 
>> entries
>> +are small – between 32 and 64 bytes. Logs are generally non-contiguous, and 
>> log
>> +pages may reside anywhere in NVMM.
>> +
>> +NOVA keeps copies of

Re: [RFC v2 01/83] Introduction and documentation of NOVA filesystem.

2018-03-19 Thread Randy Dunlap
On 03/10/2018 10:17 AM, Andiry Xu wrote:
> From: Andiry Xu 
> 
> NOVA is a log-structured file system tailored for byte-addressable 
> non-volatile memories.
> It was designed and developed at the Non-Volatile Systems Laboratory in the 
> Computer
> Science and Engineering Department at the University of California, San Diego.
> Its primary authors are Andiry Xu , Lu Zhang
> , and Steven Swanson .
> 
> These two papers provide a detailed, high-level description of NOVA's design 
> goals and approach:
> 
>NOVA: A Log-structured File system for Hybrid Volatile/Non-volatile Main 
> Memories
>In The 14th USENIX Conference on File and Storage Technologies (FAST '16)
>(http://cseweb.ucsd.edu/~swanson/papers/FAST2016NOVA.pdf)
> 
>NOVA-Fortis: A Fault-Tolerant Non-Volatile Main Memory File System
>In The 26th ACM Symposium on Operating Systems Principles (SOSP '17)
>(http://cseweb.ucsd.edu/~swanson/papers/SOSP2017-NOVAFortis.pdf)
> 
> This patchset contains features from the FAST paper. We leave NOVA-Fortis 
> features,
> such as snapshot, metadata and data replication and RAID parity for
> future submission.
> 
> Signed-off-by: Andiry Xu 
> ---
>  Documentation/filesystems/00-INDEX |   2 +
>  Documentation/filesystems/nova.txt | 498 
> +
>  MAINTAINERS|   8 +
>  3 files changed, 508 insertions(+)
>  create mode 100644 Documentation/filesystems/nova.txt

> diff --git a/Documentation/filesystems/nova.txt 
> b/Documentation/filesystems/nova.txt
> new file mode 100644
> index 000..4728f50
> --- /dev/null
> +++ b/Documentation/filesystems/nova.txt
> @@ -0,0 +1,498 @@
> +The NOVA Filesystem
> +===
> +
> +NOn-Volatile memory Accelerated file system (NOVA) is a DAX file system
> +designed to provide a high performance and production-ready file system
> +tailored for byte-addressable non-volatile memories (e.g., NVDIMMs
> +and Intel's soon-to-be-released 3DXPoint DIMMs).
> +NOVA combines design elements from many other file systems
> +and adapts conventional log-structured file system techniques to
> +exploit the fast random access that NVMs provide. In particular, NOVA 
> maintains
> +separate logs for each inode to improve concurrency, and stores file data
> +outside the log to minimize log size and reduce garbage collection costs. 
> NOVA's
> +logs provide metadata and data atomicity and focus on simplicity and
> +reliability, keeping complex metadata structures in DRAM to accelerate lookup
> +operations.
> +
> +NOVA was developed by the Non-Volatile Systems Laboratory (NVSL) in
> +the Computer Science and Engineering Department at the University of
> +California, San Diego.
> +
> +A more thorough discussion of NOVA's design is avaialable in these two 
> papers:

  available

> +
> +NOVA: A Log-structured File System for Hybrid Volatile/Non-volatile Main 
> Memories
> +Jian Xu and Steven Swanson
> +In The 14th USENIX Conference on File and Storage Technologies (FAST '16)
> +
> +NOVA-Fortis: A Fault-Tolerant Non-Volatile Main Memory File System
> +Jian Xu, Lu Zhang, Amirsaman Memaripour, Akshatha Gangadharaiah, Amit Borase,
> +Tamires Brito Da Silva, Andy Rudoff and Steven Swanson
> +In The 26th ACM Symposium on Operating Systems Principles (SOSP '17)
> +
> +This version of NOVA contains features from the FAST paper.
> +NOVA-Fortis features, such as snapshot, metadata and data protection and 
> replication
> +are left for future submission.
> +
> +The main NOVA features include:
> +
> +  * POSIX semantics
> +  * Directly access (DAX) byte-addressable NVMM without page caching
> +  * Per-CPU NVMM pool to maximize concurrency
> +  * Strong consistency guarantees with 8-byte atomic stores
> +
> +
> +Filesystem Design
> +=
> +
> +NOVA divides NVMM into several regions. NOVA's 512B superblock contains 
> global

(prefer:) 512-byte

> +file system information and the recovery inode. The recovery inode 
> represents a
> +special file that stores recovery information (e.g., the list of unallocated
> +NVMM pages). NOVA divides its inode tables into per-CPU stripes. It also
> +provides per-CPU journals for complex file operations that involve multiple
> +inodes. The rest of the available NVMM stores logs and file data.
> +
> +NOVA is log-structured and stores a separate log for each inode to maximize
> +concurrency and provide atomicity for operations that affect a single file. 
> The
> +logs only store metadata and comprise a linked list of 4 KB pages. Log 
> entries
> +are small – between 32 and 64 bytes. Logs are generally non-contiguous, and 
> log
> +pages may reside anywhere in NVMM.
> +
> +NOVA keeps copies of most file metadata in DRAM during normal
> +operations, eliminating the need to access metadata in NVMM during reads.
> +
> +NOVA supports both copy-on-write and in-place file data updates and appends
> +metadata

[RFC v2 01/83] Introduction and documentation of NOVA filesystem.

2018-03-10 Thread Andiry Xu
From: Andiry Xu 

NOVA is a log-structured file system tailored for byte-addressable non-volatile 
memories.
It was designed and developed at the Non-Volatile Systems Laboratory in the 
Computer
Science and Engineering Department at the University of California, San Diego.
Its primary authors are Andiry Xu , Lu Zhang
, and Steven Swanson .

These two papers provide a detailed, high-level description of NOVA's design 
goals and approach:

   NOVA: A Log-structured File system for Hybrid Volatile/Non-volatile Main 
Memories
   In The 14th USENIX Conference on File and Storage Technologies (FAST '16)
   (http://cseweb.ucsd.edu/~swanson/papers/FAST2016NOVA.pdf)

   NOVA-Fortis: A Fault-Tolerant Non-Volatile Main Memory File System
   In The 26th ACM Symposium on Operating Systems Principles (SOSP '17)
   (http://cseweb.ucsd.edu/~swanson/papers/SOSP2017-NOVAFortis.pdf)

This patchset contains features from the FAST paper. We leave NOVA-Fortis 
features,
such as snapshot, metadata and data replication and RAID parity for
future submission.

Signed-off-by: Andiry Xu 
---
 Documentation/filesystems/00-INDEX |   2 +
 Documentation/filesystems/nova.txt | 498 +
 MAINTAINERS|   8 +
 3 files changed, 508 insertions(+)
 create mode 100644 Documentation/filesystems/nova.txt

diff --git a/Documentation/filesystems/00-INDEX 
b/Documentation/filesystems/00-INDEX
index b7bd6c9..dc5c722 100644
--- a/Documentation/filesystems/00-INDEX
+++ b/Documentation/filesystems/00-INDEX
@@ -95,6 +95,8 @@ nfs/
- nfs-related documentation.
 nilfs2.txt
- info and mount options for the NILFS2 filesystem.
+nova.txt
+   - info on the NOVA filesystem.
 ntfs.txt
- info and mount options for the NTFS filesystem (Windows NT).
 ocfs2.txt
diff --git a/Documentation/filesystems/nova.txt 
b/Documentation/filesystems/nova.txt
new file mode 100644
index 000..4728f50
--- /dev/null
+++ b/Documentation/filesystems/nova.txt
@@ -0,0 +1,498 @@
+The NOVA Filesystem
+===
+
+NOn-Volatile memory Accelerated file system (NOVA) is a DAX file system
+designed to provide a high performance and production-ready file system
+tailored for byte-addressable non-volatile memories (e.g., NVDIMMs
+and Intel's soon-to-be-released 3DXPoint DIMMs).
+NOVA combines design elements from many other file systems
+and adapts conventional log-structured file system techniques to
+exploit the fast random access that NVMs provide. In particular, NOVA maintains
+separate logs for each inode to improve concurrency, and stores file data
+outside the log to minimize log size and reduce garbage collection costs. 
NOVA's
+logs provide metadata and data atomicity and focus on simplicity and
+reliability, keeping complex metadata structures in DRAM to accelerate lookup
+operations.
+
+NOVA was developed by the Non-Volatile Systems Laboratory (NVSL) in
+the Computer Science and Engineering Department at the University of
+California, San Diego.
+
+A more thorough discussion of NOVA's design is avaialable in these two papers:
+
+NOVA: A Log-structured File System for Hybrid Volatile/Non-volatile Main 
Memories
+Jian Xu and Steven Swanson
+In The 14th USENIX Conference on File and Storage Technologies (FAST '16)
+
+NOVA-Fortis: A Fault-Tolerant Non-Volatile Main Memory File System
+Jian Xu, Lu Zhang, Amirsaman Memaripour, Akshatha Gangadharaiah, Amit Borase,
+Tamires Brito Da Silva, Andy Rudoff and Steven Swanson
+In The 26th ACM Symposium on Operating Systems Principles (SOSP '17)
+
+This version of NOVA contains features from the FAST paper.
+NOVA-Fortis features, such as snapshot, metadata and data protection and 
replication
+are left for future submission.
+
+The main NOVA features include:
+
+  * POSIX semantics
+  * Directly access (DAX) byte-addressable NVMM without page caching
+  * Per-CPU NVMM pool to maximize concurrency
+  * Strong consistency guarantees with 8-byte atomic stores
+
+
+Filesystem Design
+=
+
+NOVA divides NVMM into several regions. NOVA's 512B superblock contains global
+file system information and the recovery inode. The recovery inode represents a
+special file that stores recovery information (e.g., the list of unallocated
+NVMM pages). NOVA divides its inode tables into per-CPU stripes. It also
+provides per-CPU journals for complex file operations that involve multiple
+inodes. The rest of the available NVMM stores logs and file data.
+
+NOVA is log-structured and stores a separate log for each inode to maximize
+concurrency and provide atomicity for operations that affect a single file. The
+logs only store metadata and comprise a linked list of 4 KB pages. Log entries
+are small – between 32 and 64 bytes. Logs are generally non-contiguous, and log
+pages may reside anywhere in NVMM.
+
+NOVA keeps copies of most file metadata in DRAM during normal
+operations, eliminating the need to access metadata in NVMM during reads.
+
+NOVA supports both