[devel] incoming/girar: проблема производительности.

Anton Farygin rider на basealt.ru
Чт Авг 27 14:59:22 MSK 2020


On 27.08.2020 14:54, Andrey Savchenko wrote:
> On Thu, 27 Aug 2020 10:27:11 +0300 Anton Farygin wrote:
> [...]
>> Т.е. - для экономии места старые пакеты хардлинкаются в новое место и в
>> него уже добавляются изменения из сборочного задания. Очень простая и
>> очень надёжная схема, при которой риск потери данных минимален и всегда
>> можно взять консистентное состояние репозитория за любой момент времени.
>>
>> Живёт это всё сейчас, вроде как, на ext4 (я могу ошибаться).
>> Максимальное количество inodes у ext4 2^32 - 4,294,967,295
>>
>> Каждый новый таск в репозиторий приводит к тому, что на файловой системе
>> появляется около 160 тысяч (а может быть и больше, я давно не смотрел
>> цифры) новых записей.
>>
>> Т.е. - условно мы можем записать около 26 тысяч сборочных заданий в
>> архив, а после этого из него придётся удалять что-то старое для того,
>> что бы записать что-то новое.
> Это полная чушь, поскольку все жесткие ссылки на файл используют
> один и тот же inode:
>
> https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Directory_Entries
>
> In an ext4 filesystem, a directory is more or less a flat file that
> maps an arbitrary byte string (usually ASCII) to an inode number on
> the filesystem. There can be many directory entries across the
> filesystem that reference the same inode number--these are known as
> hard links, and that is why hard links cannot reference files on
> other filesystems. As such, directory entries are found by reading
> the data block(s) associated with a directory file for the
> particular directory entry that is desired.
>
Точно. Не хардлинки, а симлинки. Спасибо за замечание.




Подробная информация о списке рассылки Devel