From 87034a28f5cf0ab7dd4193dcfdb2ac52fd83c949 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Thu, 20 Sep 2018 21:44:08 +0300 Subject: [PATCH] =?utf8?q?=D0=A1=D1=82=D0=B0=D1=82=D1=8C=D1=8F=20=D0=BE=20?= =?utf8?q?=D1=85=D1=80=D0=B0=D0=BD=D0=B5=D0=BD=D0=B8=D0=B8=20=D0=B1=D0=BE?= =?utf8?q?=D0=BB=D1=8C=D1=88=D0=BE=D0=B3=D0=BE=20=D0=BA=D0=BE=D0=BB=D0=B8?= =?utf8?q?=D1=87=D0=B5=D1=81=D1=82=D0=B2=D0=B0=20=D1=84=D0=B0=D0=B9=D0=BB?= =?utf8?q?=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit https://habr.com/post/423875/ Чего только не придумают люди чтобы усложнить себе жизнь. В комментариях я считаю вполне себе годно заметили что если это append/write-only хранилище, то разумно придумать собственный просто формат, запросто затребующий ровно одного обращения/seek-а к диске для чтения файла. Именно так, кстати, и делают, насколько слышал, в VK. Лично меня когда-то тоже пугала мысль "что? писать что-то типа ФС самостоятельно?". Но так уже приходилось делать -- для узкоспециализированной задачи это не rocket science. Но вообще мне кажется что XFS файловая система превосходно решит проблему с большим кол-во файлов даже в одной директории. Созданная ещё в 90-х годах Silicon Graphics, она изначально была заточена например под то, чтобы хранить в одной директории полностью весь фильм, где каждый кадр в отдельном файле. Речь про миллионы файлов в директории. Все директории там устроены просто B-деревом. Поиск строки в СУБД наверняка тоже будет B-деревом. Поэтому поиск файла на ФС наверняка будет равносилен поиску в СУБД с точки зрения IOPS-ов, плюс он сразу будет знать его размещение на ФС, без всё-равно хождения по иерархии директорий названных в два символа. Кроме того, мало того что кэшу ФС приходится запоминать метаинформацию директорий, так ещё и кэшировать файлы самой СУБД, где эти индексы. Надо конечно проверять, как всегда в Linux оно может работать ощутимо хуже, но для XFS поставленная задача не проблема. Впрочем, конечно же, как и для ZFS если будет память для кэширования метаинформации, которая не так много весит. Inode-based файловые системы типа Linux-овых ext*, BSD-шных UFS конечно тут будут не очень. -- 2.50.0