Быстрый доступ к файлу в каталоге с 500 000 файлов

        const headerActiveCampaign = element.all(By.xpath("//div[@class='grid-x grid-row gridBody']/div");// paste this IN YOUR PAGE object FILE.

       const expectedTextArray[]=['',''] //Add the text that you expect as array

        //Now to compare the actual and expect use the below code.
Then(/^User clicks and gets all the text for header details$/, async() => {

        expect(search.headerActiveCampaign.getText()).toBe(expectedTextArray); 
       });      
       })
       });

Надеюсь, это поможет вам

5
задан John Bachir 18 September 2012 в 04:48
поделиться

5 ответов

Принятие Вашей файловой системы является ext3, Ваш каталог индексируется с хешированным B-деревом, если dir_index включен. Это собирается дать Вам так же повышение как что-либо, что Вы могли кодировать в свое приложение.

Если каталог индексируется, Ваша схема именования файла не должна иметь значения.

http://lonesysadmin.net/2007/08/17/use-dir_index-for-your-new-ext3-filesystems/

7
ответ дан 18 December 2019 в 10:50
поделиться

Несколько идей:

a) Если можно управлять расположением каталога, затем помещает файлы в подкаталоги.

b) Если Вы не можете переместить файлы, то Вы могли бы попробовать различные файловые системы, я думаю, что xfs мог бы быть хорош для каталогов с большим количеством записей?

5
ответ дан 18 December 2019 в 10:50
поделиться

Если у Вас есть достаточно памяти, можно использовать ulimit для увеличения максимального числа файлов, которые процесс может иметь открытый когда-то, я имею, успешно покончили с 100 000 файлов, 500,000 должен работать также.

Если это не опция для Вас, попытайтесь удостовериться, что Ваш dentry кэш имеет достаточно комнаты для хранения всех записей. dentry кэш является именем файла-> inode отображение, что использование ядра для ускорения доступа к файлу на основе имени файла, получая доступ к огромным числам различных файлов может эффективно устранить преимущество dentry кэша, а также представить дополнительный хит производительности. Запас 2,6 ядра имеют хеш максимум с 256 * записи RAM МБ в нем за один раз, если у Вас есть 2 ГБ памяти, необходимо быть хорошо для до немногим более, чем 500 000 файлов.

Конечно, удостоверьтесь, что Вы выполняете соответствующее профилирование, чтобы определить, вызывает ли это действительно bottlneck.

2
ответ дан 18 December 2019 в 10:50
поделиться

Другой вопрос состоит в том, сколько данных находится в файлах? Действительно ли бэкэнд SQL является опцией?

0
ответ дан 18 December 2019 в 10:50
поделиться

Традиционный способ сделать это - использовать хешированные подкаталоги. Предположим, что ваши имена файлов - это равномерно распределенные хэши, закодированные в шестнадцатеричном формате. Затем вы можете создать 256 каталогов на основе первых двух символов имени файла (так, например, файл 012345678 будет называться 01/2345678). Вы можете использовать два или даже больше уровней, если одного недостаточно.

Поскольку имена файлов распределены равномерно, это позволит управлять размерами каталогов и, следовательно, быстрее выполнять любые операции с ними.

2
ответ дан 18 December 2019 в 10:50
поделиться
Другие вопросы по тегам:

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