SPDK в публичном облаке: лезем внутрь дисковой подсистемы в user-space

Всем привет! Меня зовут Василий Иванов, я ведущий разработчик в команде Data Storage в

https://habr.com/ru/companies/mws/articles/943206/

#cloud #mwscloudplatform #mws #разработка_облака #spdk #data_storage #dpdk #vhost

SPDK в публичном облаке: лезем внутрь дисковой подсистемы в user-space

Всем привет! Меня зовут Василий Иванов, я ведущий разработчик в команде Data Storage в MWS Cloud Platform , занимаюсь тем, чтобы диски наших виртуальных машин были надёжные и быстрые. В этой статье я...

Хабр

Not even bad the latency (this is just about latency, not overall bandwidth which reaches the full 4.9Gbit via 2x 2.5Gbit links).

Taken inside a Debian VM running on a Proxmox node connected to the storage:

GMKTec G9 NAS
2x 2.5Gbit
NFS 4.2 (with pNFS)
2x WD Back SN7100 NVMe
Mirror mode ZFS

While this are already pretty awesome latencies, let's see how it performs with SPDK and NVMe-oF (TCP).

#homelab #proxmox #storage #zfs #gmktec #gmktecg9 #latency #freebsd #NFS #SPDK #NVMe #NVMEoF

Just send a patch series in #guix adding #spdk #ssd #storage

https://patches.guix-patches.cbaines.net/project/guix-patches/list/?series=16472

Sorry for a little misplaced formatting. Had some problems calling emacsclient as an editor in my ~/.git/config/config

Guix Patches - Patchwork

Почему СУБД такие медленные

Недавно на Хабре публиковался перевод статьи «Просто выберите Postgres» ( оригинал , англ. яз) с аргументами, что Postgres — оптимальная БД для десктопных и мобильных приложений. Аналогичное мнение высказывают в других популярных статьях вроде «До свидания MongoDB, здравствуй PostgreSQL» . Главным недостатком SQLite называют то, что данные хранятся в одном файле, а MongoDB (а также DynamoDB и Cassandra) — низкую производительность: «Всё это связано с тем, что подобные базы данных, по сути, представляют собой огромную распределённую хеш-таблицу. Единственные операции, работающие без необходимости сканирования всей базы данных — это поиск по секционному ключу и сканы, при которых используется ключ сортировки. …Если паттерны доступа существенно изменятся, то может потребоваться полная повторная обработка всех данных». Более производительные резидентные БД хранят данные в памяти (Redis, Valkey), но их использование ограничено объёмом ОЗУ. После такого заявления интересно посмотреть на независимые тесты производительности разных СУБД.

https://habr.com/ru/companies/ruvds/articles/851330/

#MySQL #MongoDB #PostgreSQL #DynamoDB #Cassandra #PostgreSQL_17 #LeanStore #SSD #NVMe #SPDK #SATA #PCIe #SQLite #Redis #Valkey #резидентная_БД #IMDB #UmbraDB #CedarDB #TPCH #TPCDS #соединение_хештаблиц #структуры_данных #DuckDB #OrioleDB #ruvds_статьи

Почему СУБД такие медленные

Недавно на Хабре публиковался перевод статьи «Просто выберите Postgres» ( оригинал , англ. яз) с аргументами, что Postgres — оптимальная БД для десктопных и мобильных приложений. Аналогичное мнение...

Хабр

Combining data durability, high performance, fault tolerance, and scalability, simplyblock had to rethink the distributed data placement.

Built upon the #SPDK, simplyblock was able to focus on the things that matter, data protection, data placement.

https://t.co/TRynq8hbYb

Hey folks!

We (simplyblock) are hiring a C/C++ engineer with experience in #DPDK (Data Plane Development Kit) and / or #SPDK (Storage Performance Development Kit).

While the position claims location Poland, we're a remote-first company, and are open to other locations (we just have to put something for LinkedIn) 💪

If this sounds interesting, please let us know!

https://www.linkedin.com/jobs/view/3824243469/

simplyblock hiring C/C++ Developer (DPDK/SPDK) in Poland | LinkedIn

Posted 3:34:57 PM. About ussimplyblock.io is a next-gen high-performance storage software for modern databases and…See this and similar jobs on LinkedIn.

$Someone should rewrite #SPDK in #rustlang

The rationale given in https://spdk.io/doc/concurrency.html for why it "needs" to be in C no longer holds up in 2023, I'd venture.

SPDK: Message Passing and Concurrency

A while back while developing some #SPDK code, I was sorely missing the ability to:

ASSERT(MUTEX_HELD(...))

The more I dug into the intersection of pthread mutexes and SPDK's concurrency model, the more I realized that there was a lot of room for improvement. This all led to SPDK's new spinlock implementation. A blog post with the details is at https://spdk.io/spdk_spinlock/2023/01/04/spdk_lock/.

Much of the new behavior is inspired by #Solaris mutexes.

SPDK Spinlocks Introduction

The Storage Performance Development Kit (SPDK) provides a set of tools and libraries for writing high performance, scalable, user-mode storage applications. It achieves high performance by moving all of the necessary drivers into userspace and operating in a polled mode instead of relying on interrupts, which avoids kernel context switches and eliminates interrupt handling overhead.

@parvXm There's some great work done here, which is sorely needed. Having been working on #spdk for a while, I wonder how much benefit there may be message passing such that IO for a particular dataset is always done by the same CPU thread or a very small group of them if that's too much work for one. I'd need to refresh my memory of #zfs internals, but I think this could reduce lock contention and perhaps eliminate some locks.

@b0rk's threads about debuggers made me nostalgic for #mdb on Solaris and illumos. Currently I'm working on #SPDK, which seems to be only supported on Linux and #FreeBSD . Ever so hopeful, I tried:

[mgerdts@freebsd ~/spdk]$ mdb ./test/unit/lib/bdev/bdev.c/bdev_ut
mdb: no target ctor: No error: 0

😦

That's probably a pretty big hint that there is much #yakShaving to do to get the to level of functionality I'd want. Prolly better to write some gdb commands in python.