1) Это не правда, медленно работает readdir, потому что для доступа к каждому файлу в большом каталоге недо будет целиком читать содержимое директории ( при чем на многих фс вообще нет никаких inode, а проблема останется )
2) ели говорить про фс, где эти самые inode существуют ( ext* ) то создавать большую глубину каталогов для хешей - тоже роде антипатерн, как и делать большие директории, т. к. Создавая /1/2/3.txt - это 3 inode ( при условии что файл занимает одну ), а /1/2/3/4/5/6.txt - 6 inode. Поэтому создавая по 1 файлу в конечной директории - это будет трата inode а скорости это не добавит. ( Обычно не делают больше 2-3 вложений )
аналог flock, только локи в etcd, используем для синхронизцаии и резервирования кронов ( поддерживает полезную функцию слотов ) https://github.com/lomik/elock
А как же
Мартин Грабер «Введение в SQL» ( она кажется была в первой части )
и «библия»
Каролин Бегг, Томас Коннолли «Базы данных. Проектирование, реализация и сопровождение. Теория и практика»
/hashring-id/b/c/d/e/f/g inode работают медленно
1) Это не правда, медленно работает readdir, потому что для доступа к каждому файлу в большом каталоге недо будет целиком читать содержимое директории ( при чем на многих фс вообще нет никаких inode, а проблема останется )
2) ели говорить про фс, где эти самые inode существуют ( ext* ) то создавать большую глубину каталогов для хешей - тоже роде антипатерн, как и делать большие директории, т. к. Создавая /1/2/3.txt - это 3 inode ( при условии что файл занимает одну ), а /1/2/3/4/5/6.txt - 6 inode. Поэтому создавая по 1 файлу в конечной директории - это будет трата inode а скорости это не добавит. ( Обычно не делают больше 2-3 вложений )
модуль к nginx, для отправки метрик в graphite ( подерживает агрегации внутри nginx )
https://github.com/mailru/graphite-nginx-module
go-carbon реализация graphite carbon на языке go
https://github.com/lomik/go-carbon
carbon-clickhouse версия go-carbon, где в качестве хранилища используется яндексовый clickhouse
https://github.com/lomik/carbon-clickhouse
PS> еще пара утилит, ибо Рома — молодец )
аналог flock, только локи в etcd, используем для синхронизцаии и резервирования кронов ( поддерживает полезную функцию слотов )
https://github.com/lomik/elock
приложение tarantool, для анонсирования и связывания их в кластера
https://github.com/lomik/tarantool-etcd
Мартин Грабер «Введение в SQL» ( она кажется была в первой части )
и «библия»
Каролин Бегг, Томас Коннолли «Базы данных. Проектирование, реализация и сопровождение. Теория и практика»