Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Сортировка больших файлов
цитата
22/01/13 в 07:23
 Дартаньян
grozny: только 700 гиг в базу на выходе она будет совсем другой.
цитата
22/01/13 в 08:41
 zuker
а че не поставить рейд масив? у меня файл 3 гига парсится мгновенно..
цитата
22/01/13 в 09:10
 ibiz
я скрипт не нашел, видимо похерел после переезда, сорри icon_sad.gif
цитата
22/01/13 в 12:37
 uname_
Даже тупо прочитать/записать 700 Гигов это порядка 4 часов. А сколько sort отрабатывает интересно?
цитата
22/01/13 в 15:38
 rx
как вариант, если нужна только уникальность, в один "проход" при достаточной памяти

- выделяется общая для всех потоков/процессов область памяти под задачу, адреса в однозначном соответствии с crcXX по заданному правилу, значение бита памяти 0/1 в зависимости от того есть строка или нет (если требуется атомарность то 2 бита) (для crc32 потребуется 4гб(8гб))

- указывается максимум N фрагментов, на которые делится исходный файл для обработки, как вариант - автоматом с указанием Y кб на 1 фрагмент

- поток/процесс берет Nую часть по порядку, считывает заданное кол-во байт с общего файла начиная с рассчетного оффсета с первого найденного конца строки (или начала файла для первой по порядку) до последнего конца строки с учетом заданной длины фрагмента, и инкриментирует порядковое число взятых в обработку фрагментов на 1 (атомарно)

- поток/процесс считает crcXX строки, проверяет соответствующее значение бита в памяти, если 0 - меняет на 1 (если нужна атомарность реализует через второй бит) и пишет в общий файл уникальных записей, если 1 - игнорит

- потоки/процессы плодятся до оптимальной загрузки, отслеживаемой или в реалтайме, или до изначально заданного максимума потоков/процессов
цитата
22/01/13 в 20:13
 idk2045
Дартаньян писал:
grozny: только 700 гиг в базу на выходе она будет совсем другой.

ну будет больше, не вижу проблемы. если постоянно нужно - надо винтов добавить есессно.
цитата
24/01/13 в 12:32
 atrius
сори, с ребенком дома сидел, в сеть не выходил.
в файликах разное кол-во строк. ну в среднем около 1.5-2 миллиарда.
там народ интересовался сколько времени sort отрабатывает - около 3 суток. сейчас заметили интересную вещь, файлики можно сортить параллельно =)
т.е. можно запускать 4 сорта на 4 разных файла. при этом нагрузка на винты не растет, т.к. каждый файл положили на отдельный диск.
в принципе теперь получается приемлемая скорость, наверное.
спасибо всем. рад что есть люди, которые любят нестандартные решения =)
еще раз всем спасибо
Стр. « первая   <  1, 2


Эта страница в полной версии