>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
C

How DAOS Squeezes Maximum Performance from NVMe and SCM Memory

When a standard file system starts choking on millions of small random I/O operations, developers typically look for workarounds. The familiar story: modern NVMe drives operate at blazing speeds, but the standard Linux kernel stack eats up a lot of time on locks and context switches.

DAOS Logo

Linux Foundation specialists are developing DAOS (Distributed Asynchronous Object Storage). This is a distributed object storage system with open-source code written in C. It was designed specifically for non-volatile memory (NVM), Storage Class Memory modules, and NVMe drives.

What's the Idea

Traditional storage tries to force the old POSIX model onto fast memory. This creates bottlenecks. DAOS takes a different approach: the project completely abandons the traditional kernel I/O stack.

Instead of familiar files and folders, the system offers a key-value structure with asynchronous transactional I/O. Data streams don't block each other during writes, and hardware access goes directly through the SPDK and PMDK libraries.

What Features the Project Offers

Developers built several core capabilities into the architecture for working with large data volumes.

  • Asynchronous non-blocking transactions for parallel writes
  • End-to-end data integrity verification from client to storage
  • Automatic recovery when individual nodes fail
  • Elastic cluster scaling without service interruption

An interesting point concerns the interfaces. Unlike narrow-purpose KV stores, DAOS offers convenient client wrappers. You can work with it through a native Python dictionary, connect to Spark, pass it through TensorFlow-IO, or use HDF5 and MPI-IO libraries that are traditional for scientific software. For compatibility with legacy software, there's parallel file system emulation.

What's Under the Hood and What Nuances Exist

The code is written in C, and the repository has existed since 2016. The project has gathered around a thousand stars on GitHub, but don't expect an easy deployment. This isn't a cute CLI utility you install with a single command.

Full DAOS operation requires specialized hardware with NVMe support and preferably non-volatile memory (SCM). You won't be able to evaluate the concept on a budget of a couple of cheap cloud servers. Setting up the control plane and client libraries requires a solid understanding of network stacks and infrastructure.

Error logs and documentation are detailed but voluminous. If something goes wrong during the build, you'll need to dig through logs or seek help on the community Slack and forums.

Who Should Give It a Try

The project wasn't created for everyday websites or small PostgreSQL databases. Its niche is infrastructure with colossal throughput requirements.

  1. Teams training giant neural networks on TensorFlow, where dataset loading has become the bottleneck.
  2. Data engineers working with distributed analytics on Hadoop and Spark.
  3. Scientific labs and HPC clusters where standard Lustre or GPFS have stopped coping.
  4. Developers of high-load systems creating their own storage on raw NVMe disks.

The Bottom Line

DAOS is an excellent example of how software architecture adapts to new hardware. The project is complex, narrow-purpose, and demanding on infrastructure, but in its domain it solves a real problem of system overhead. If you're building storage for machine learning or big data analytics tasks, taking a look at the documentation definitely makes sense.

Projetos relacionados