|
|
|
Сортировка больших данных при малой RAM
|
|||
|---|---|---|---|
|
#18+
interwebИнтересуют способы сортировки больших данных (порядка 10 ТБ) при наличии лишь 1 GB RAM а что за файл, какая структура? в смысле - текст, или блоки данных - одинаковые? файл строго последовательного доступа, или можно организовать произвольный? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 22:10 |
|
||
|
Сортировка больших данных при малой RAM
|
|||
|---|---|---|---|
|
#18+
wadmanУже есть. Не может быть :), но если уж такая проблема возникла (т.е. сущность==байт) то решение элементарно: заводим 256 счетчиков достаточной размерности, последовательно читаем байты, инкрементируем соответствующий счетчик, после выдаем отсортированную последовательность. Для реализации под 10ТБ данных хватит пары килобайт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 22:12 |
|
||
|
Сортировка больших данных при малой RAM
|
|||
|---|---|---|---|
|
#18+
x1ca4064wadmanУже есть. Не может быть :), но если уж такая проблема возникла (т.е. сущность==байт) то решение элементарно: заводим 256 счетчиков достаточной размерности, последовательно читаем байты, инкрементируем соответствующий счетчик, после выдаем отсортированную последовательность. Для реализации под 10ТБ данных хватит пары килобайт. Сущность = любая последовательность байт. Никаких счетчиков не хватит. Уже было. Повторяемся? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 22:14 |
|
||
|
Сортировка больших данных при малой RAM
|
|||
|---|---|---|---|
|
#18+
wadmanЧитай первое сообщение темы и не выдумывай новые условия.Прочитал внимательно все посты ТС. wadmanВсе можно/нужно делать побайтно.Так и не нашёл... И вообще - это я не ТС пишу, а тебе, в ответ на огульное утверждение, что внешнее сравнение возможно в любом случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 22:18 |
|
||
|
Сортировка больших данных при малой RAM
|
|||
|---|---|---|---|
|
#18+
x1ca4064если уж такая проблема возникла (т.е. сущность==байт) то решение элементарно: заводим 256 счетчиков достаточной размерности, последовательно читаем байты, инкрементируем соответствующий счетчик, после выдаем отсортированную последовательность.Это т.н. "Сортировка подсчётом". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 22:20 |
|
||
|
Сортировка больших данных при малой RAM
|
|||
|---|---|---|---|
|
#18+
wadmanСущность = любая последовательность байт. Никаких счетчиков не хватит. Уже было. Повторяемся? Вероятно, я не понимаю, о чем Вы говорите: сообщите, какая операция отношения у Вас определена на множестве "любая последовательность байт"? Пример, хотя бы. Ответ любая не принимается, т.к. не бывает задачи отсортировать "любую последовтельность байт" ... ах да, уже повторяюсь :) Бывает только задача отсортировать последовательность сущностей. (New!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 22:30 |
|
||
|
Сортировка больших данных при малой RAM
|
|||
|---|---|---|---|
|
#18+
AkinaЭто т.н. "Сортировка подсчётом". А я то все гадал, как она называется :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 22:31 |
|
||
|
Сортировка больших данных при малой RAM
|
|||
|---|---|---|---|
|
#18+
interweb, какова структура файла? (сортируемых записей) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 23:03 |
|
||
|
Сортировка больших данных при малой RAM
|
|||
|---|---|---|---|
|
#18+
AkinaЭто т.н. "Сортировка подсчётом". А я то все гадал, как она называется :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 02:16 |
|
||
|
Сортировка больших данных при малой RAM
|
|||
|---|---|---|---|
|
#18+
interweb3) Можно использовать apache spark, но из того примера, что я видел, данные из файла должны быть все считанны в память - это не представляется возможным. Ну ты даешь чувак! Чтоб приготовить яичницу ты пойдешь разогревать адронный коллайдер? Да в 1990-е такие сортировки студенты делали на любой рабочей станции с оперативкой в 512 килобайт на Borland C++. Поищи "сортировка слиянием" и еще до кучи "B+дерево" как альтернативный вариант ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 08:47 |
|
||
|
Сортировка больших данных при малой RAM
|
|||
|---|---|---|---|
|
#18+
AkinaИ вообще - это я не ТС пишу, а тебе, в ответ на огульное утверждение, что внешнее сравнение возможно в любом случае. Это так и есть. Любая сущность - это байты. Если вся сущность не влазит в оперативку, то байт влезет. x1ca4064Ответ любая не принимается, т.к. не бывает задачи отсортировать "любую последовтельность байт" Ок, пусть будут строки любой длины. Они, как известно, состоят из байт. И бывает так, что вся строка не влазит в оперативку. Достаточно "дочитывать" данные в процессе сравнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 09:32 |
|
||
|
Сортировка больших данных при малой RAM
|
|||
|---|---|---|---|
|
#18+
wadmanЭто так и есть. Любая сущность - это байты. Если вся сущность не влазит в оперативку, то байт влезет.Похоже, ты даже не читаешь моих слов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 09:39 |
|
||
|
Сортировка больших данных при малой RAM
|
|||
|---|---|---|---|
|
#18+
AkinawadmanЭто так и есть. Любая сущность - это байты. Если вся сущность не влазит в оперативку, то байт влезет.Похоже, ты даже не читаешь моих слов. Не, я не ищу причин не делать, просто делаю. Объект состоит из байт? Да. Объект сравнивается с другим объектом? Да. Другой объект из байт? Да. Код объекта в памяти, данные объекта на диске - читай по байтам и сравнивай. Собственно это всё, что нужно знать для решения задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 09:43 |
|
||
|
Сортировка больших данных при малой RAM
|
|||
|---|---|---|---|
|
#18+
wadmanAkinaпропущено... Похоже, ты даже не читаешь моих слов. Не, я не ищу причин не делать, просто делаю. Объект состоит из байт? Да. Объект сравнивается с другим объектом? Да. Другой объект из байт? Да. Код объекта в памяти, данные объекта на диске - читай по байтам и сравнивай. Собственно это всё, что нужно знать для решения задачи.Это совершенно не так. Вот например объект, состоящийся из: { - строка номер 1 - строка номер 2 - порядковый номер - дата - картинка закодированниая в каком- нибудь base64 } Сортировать надо сначала по дате, потом по порядковому номеру /там где даты одинаковы/. Из примера видно, что предложение сортировать какие-то абстрактные байты, совершенно не в кассу. Поскольку "объект" и "ключ сортировки", совершенно разные вещи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 16:16 |
|
||
|
Сортировка больших данных при малой RAM
|
|||
|---|---|---|---|
|
#18+
* сортировать список таких объектов, конечно же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 16:18 |
|
||
|
Сортировка больших данных при малой RAM
|
|||
|---|---|---|---|
|
#18+
S.G.Из примера видно, что предложение сортировать какие-то абстрактные байты, совершенно не в кассу. Поскольку "объект" и "ключ сортировки", совершенно разные вещи. Не увидел противоречия моему описанию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 16:23 |
|
||
|
Сортировка больших данных при малой RAM
|
|||
|---|---|---|---|
|
#18+
Извините, что встреваю в высокоинтеллектуальную беседу ... При побайтовом сравнении требуется найти пару отличающихся байт. Для принятия решения "больше-меньше" нужны только эти два байта. И не нужно хранить просмотренные совпадающие блоки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 16:23 |
|
||
|
Сортировка больших данных при малой RAM
|
|||
|---|---|---|---|
|
#18+
interwebAkinaДля случая, когда бОльшая часть данных должна кэшиться на диск, хорошо подходит Сортировка слиянием . Такой подход я рассматривал, но мне он видится неэффективным: в нем необходимо разбивать данные до байт, а это создаст слишком много временных файлов, и вообще займет много времени. с чего вдруг, на каждом этапе сливаются два отсортированных ряда что мешает разделить на серию небольших блоков, вмещающихся в памяти, отсортировать внутри блока например QSort и сохранить в файл, а потом сливать эти блоки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2016, 20:09 |
|
||
|
|

start [/forum/topic.php?fid=16&startmsg=39305531&tid=1340611]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
147ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 499ms |

| 0 / 0 |
