Vault '20 - Programming Emerging Storage Interfaces
Programming Emerging Storage Interfaces
Simon Lund, Samsung
The popularity of NVMe has gone beyond the limits of the block device. Currently, NVMe is standardizing Key-Value (KV) and Zoned (ZNS) namespaces, and discussions on the standardization of computational storage namespaces have already started.
While modern I/O submission APIs are designed to support non-block submission (e.g., io_uring), these new interfaces incur an extra burden into applications, who now need to deal with memory constraints (e.g., barriers, DMA-able memory).
To address this problem, we have created xNVMe (pronounced cross-NVMe): a user-space library that provides a generic layer for memory allocations and I/O submission, and abstracts the underlying I/O engine (e.g., libaio, io_uring, SPDK).
In this talk, we (i) present the design and architecture of xNVMe, (ii) give examples of how applications can easily integrate with it and (iii) provide an evaluation of the overhead that it adds to the I/O path.
View the full Vault '20 program at https://www.usenix.org/conference/vault20/program
Видео Vault '20 - Programming Emerging Storage Interfaces канала USENIX
Simon Lund, Samsung
The popularity of NVMe has gone beyond the limits of the block device. Currently, NVMe is standardizing Key-Value (KV) and Zoned (ZNS) namespaces, and discussions on the standardization of computational storage namespaces have already started.
While modern I/O submission APIs are designed to support non-block submission (e.g., io_uring), these new interfaces incur an extra burden into applications, who now need to deal with memory constraints (e.g., barriers, DMA-able memory).
To address this problem, we have created xNVMe (pronounced cross-NVMe): a user-space library that provides a generic layer for memory allocations and I/O submission, and abstracts the underlying I/O engine (e.g., libaio, io_uring, SPDK).
In this talk, we (i) present the design and architecture of xNVMe, (ii) give examples of how applications can easily integrate with it and (iii) provide an evaluation of the overhead that it adds to the I/O path.
View the full Vault '20 program at https://www.usenix.org/conference/vault20/program
Видео Vault '20 - Programming Emerging Storage Interfaces канала USENIX
Показать
Комментарии отсутствуют
Информация о видео
Другие видео канала
LISA16 - Building a Billion User Load BalancerUSENIX Security '21 - SyzVegas: Beating Kernel Fuzzing Odds with Reinforcement LearningOSDI '21 - Marius: Learning Massive Graph Embeddings on a Single MachineUSENIX Security '22 - Under the Hood of DANE Mismanagement in SMTPSREcon19 Europe/Middle East/Africa - Building Resilience: How to Learn More from IncidentsNSDI '21 - When Cloud Storage Meets RDMALISA21 - Can Infrastructure as Code Apply to Bare Metal?NSDI '21 - Ownership: A Distributed Futures System for Fine-Grained TasksUSENIX Security '21 - ALPACA: Application Layer Protocol Confusion - Analyzing and Mitigating CracksUSENIX Security '20 - Timeless Timing Attacks: Exploiting Concurrency to Leak Secrets over RemoteNSDI '22 - Runtime Programmable SwitchesLISA16 - Network-Based LUKS Volume Decryption with TangSREcon20 Americas - The Evolution of Traffic Routing in a Streaming WorldNSDI '22 - MLaaS in the Wild: Workload Analysis and Scheduling in Large-Scale Heterogeneous GPU...USENIX ATC '20 - SplinterDB: Closing the Bandwidth Gap for NVMe Key-Value StoresOSDI '22 - Alpa: Automating Inter- and Intra-Operator Parallelism for Distributed Deep LearningUSENIX Security '21 - PrivateDrop: Practical Privacy-Preserving Authentication for Apple AirDropOSDI '21 - Polyjuice: High-Performance Transactions via Learned Concurrency ControlLISA21 - Lessons Learned from a Ransomware AttackVault '20 - Crimson: A New Ceph OSD for the Age of Persistent Memory and Fast NVMe StorageNSDI '22 - Packet Order Matters! Improving Application Performance by Deliberately Delaying Packets