Какова эквивалентная архитектура алфавитно-цифровых чисел в Debian?

Покровы Ext4 немного лучше в больших каталогах, чем предыдущие версии, но все еще срывают приблизительно после 10,000 файлов в том же каталоге. Выделение файлов в иерархии каталогов несколько уровней глубоко является общим решением для поддержания производительности. Каждый инкремент глубины требует дополнительной косвенности при поиске файла, но ширина увеличивается экспоненциально с глубиной.

Например, если Ваши файлы имеют имена, состоящие только из букв, цифр и нескольких знаков пунктуации, вместо того, чтобы поместить их всех в тот же каталог, создают подкаталоги на основе первых двух символов имени файла. Таким образом, файл foobar хранится в fo/foobar. Если Вы все еще имеете слишком много файлов в подкаталогах, увеличиваете глубину: fo/ob/foobar, и так далее. Необходимо будет сделать сравнительные тесты для выяснения сколько символов для разделения после и в какой глубина остановиться.

Существует много потенциальных каталогов, и большинство закончится пустое. Так вместо того, чтобы создать все каталоги вначале, создайте их по требованию. Например, если необходимо создать файл foobar, затем создайте каталог fo если это уже не существует, то сделайте то же для fo/ba, и затем хранилище foobar в fo/ba/foobar.

Если файлы не будут крошечными (меньше чем 4 КБ), каталоги представят незначительную сумму пространства. Даже с крошечными файлами, пока Вы не переусердствовали глубину, будет гораздо меньше каталогов, чем файлы. Однако, если у Вас есть огромное количество крошечных файлов, это - знак, необходимо использовать базу данных вместо этого.

5
18.02.2014, 11:46
1 ответ

Я спросил о # debian-mentors, и Пол Уайз указал мне на отчет об ошибке. Записи, которые вы видите, вызваны ошибкой. См. Отчет об ошибке Debian http://security-tracker.debian.org/tracker/data/releases broken .

07:05 < pabs> faheem: https://bugs.debian.org/610222
07:06 < pabs> faheem: I guess patches would be welcome
07:15 < ats> faheem: so my first guess was that it was a Plan 9-style code,   
             but no, it's just a bug
07:16 < ats> I think what's happening is that it's taking a list of          
             architectures along the lines of "i386,armhf,kfreebsd-i386" and   
             splitting it by characters rather than on ,
07:16 < ats> so that's actually a list of all the characters that are used in 
             Debian architecture names ;-)
07:17 < ats> line 407-ish in http://anonscm.debian.org/viewvc/secure-
             testing/lib/python/security_db.py?view=markup suggests that it        
             does split on , first, though, so presumably that's not getting 
             used properly when fetching the arch field from the database...

Примечание. Патчи приветствуются. : -)

4
27.01.2020, 20:40

Теги

Похожие вопросы