Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

README.md

Storage System

Technical Requirements for C++ Storage System Developer

Core Skills

C++ Programming

  • Modern C++ (C++11/14/17/20) features
  • Zero-copy I/O and DMA
  • Async I/O (io_uring, libaio)
  • Memory-mapped files
  • SIMD optimization for data processing

File Systems

  • File system fundamentals (inode, dentry, superblock)
  • POSIX file operations
  • Direct I/O and buffered I/O
  • Sparse files and hole punching
  • File locking mechanisms

Block Storage

  • Block device interfaces
  • iSCSI and NVMe protocols
  • RAID configurations and algorithms
  • Erasure coding (Reed-Solomon)
  • Thin provisioning and snapshots

Object Storage

  • S3-compatible API implementation
  • Consistent hashing for data placement
  • Multi-part upload and resumable transfers
  • Metadata management
  • Lifecycle management

Distributed Storage

  • Distributed file systems (HDFS, Ceph, GlusterFS)
  • Data locality and rack awareness
  • Replication strategies
  • Data consistency models
  • CAP theorem applications

Tools & Technologies

Storage Technologies

  • Ceph (RADOS, RBD, CephFS)
  • MinIO (object storage)
  • SPDK (Storage Performance Development Kit)
  • DPDK for network acceleration
  • io_uring for async I/O

Data Structures

  • Log-Structured Merge Tree (LSM)
  • B-trees and B+ trees
  • Skip lists
  • Merkle trees for data integrity
  • Content-defined chunking (CDC)

Networking

  • RDMA (Remote Direct Memory Access)
  • InfiniBand verbs
  • RoCE (RDMA over Converged Ethernet)
  • NVMe-oF (NVMe over Fabrics)

Domain Knowledge

  • Storage performance metrics (IOPS, throughput, latency)
  • Data durability and reliability
  • Backup and disaster recovery
  • Data deduplication and compression
  • Storage tiering (SSD, HDD, tape)
  • Power-loss protection and journaling
  • Data integrity (checksums, scrubbing)