> For the complete documentation index, see [llms.txt](https://sliu583.gitbook.io/blog/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sliu583.gitbook.io/blog/conference/index/sosp-21/smartnic/linefs-efficient-smartnic-offload-of-a-distributed-file-system-with-pipeline-parallelism.md).

# LineFS: Efficient SmartNIC offload of a distributed file system with pipeline parallelism

### Presentation&#x20;

* Growing DFS host resource consumption&#x20;
  * DFS is popular in cloud and HPC --> applications are consolidated&#x20;
    * ![](/files/5Q9vkgoTib8qeLCOQ7we)
  * Resource contention between DFS and co-running applications&#x20;
    * ![](/files/KgzpUfNjfv37zatnKERd)
* Problem: performance interference&#x20;
  * Host resource contention degrades the performance of both&#x20;
    * 1\) DFS application 2) co-running applications&#x20;
* Solution: offload DFS to SmartNIC&#x20;
  * To reduce interference&#x20;
  * ![](/files/CAd9yKMkEYK4jEZljGbL)
  * Challenges&#x20;
    * C1: high access latency from SmartNIC CPU to host PM&#x20;
    * Wimpy SmartNIC architecture&#x20;
    * ![](/files/IR2KjGL45EdQNq6MqpxJ)
* LineFS: SmartNIC offload of DFS with pipeline parallelism&#x20;
  * Goal: minimizing **host application interference** and **DFS slowdown**&#x20;
  * Design principles&#x20;
    * D1: persist-and-publish&#x20;
      * Persist data / metadata: latency critical task (fast host CPU)
      * Background publish: deferrable task (Wimpy SmartNIC CPU)&#x20;
    * D2: pipeline parallelism&#x20;
      * Increase throughput of offloaded tasks&#x20;
        * D2-1: publishing pipeline&#x20;
        * D2-2: replication pipeline&#x20;

#### D1: persist-and-publish&#x20;

![](/files/jmrF1Xs6fssUyDox45sM)

#### D2-1: pipeline parallelism - publishing&#x20;

![](/files/hfkge3JV60T2ymUi0sME)

#### D2-2: pipeline parallelism - replication&#x20;

* Replication? "persisting data to all the nodes on fsync"
* Persist data in advance: use SmartNIC resources&#x20;
* Reduce fsync latency: most of the data has already been persisted&#x20;

![](/files/KARt8J8Saawke7l9M2Lm)

Other design ideas in the paper:

* Linearizability & prefix crash consistency&#x20;
* Leveraging data-path processing&#x20;
* Availability during host OS failure&#x20;
* Shared file management with lease mechanism&#x20;

Evaluation:

* Does LineFS provide adequate offloaded DFS performance?
* Does LineFS alleviate interference?&#x20;

Conclusion

* Increasing DFS host resource use causes contention&#x20;
  * Degrading applications' performance
  * Unpredictable DFS operation latencies&#x20;
* Naive DFS offload to SmartNIC has high overhead
  * Long distance to host PM
  * Wimpy processing power&#x20;
* **LineFS: Efficient DFS SmartNIC offload**
  * Design principles: persist-and-publish, pipeline parallelism&#x20;
  * 90% lower LevelDB latency, 79% higher Filebench throughput versus Assise under host resource contention&#x20;
