|
|
|
Запись большого куска данных в файл
|
|||
|---|---|---|---|
|
#18+
Добрый день, коллеги. Встала задача обращения файлами в десятки гб, реализовал на MemoryMapped files, тестировал пока на 4гб максимально, но кое-как работает. Однако у меня есть опасения, что на чтения то оно будет хорошо, а вот на запись лучше не использовать, потому как данные могут понадобиться, но они могут быть еще не записаны. Посему есть мысль оставить чтение на memorymapped, а запись реализовать через голый FileChannel + allocate DirectBuffer. Был ли у кого-нибудь подобный опыт? Стоит ли заморачиваться с записью на DirectBuffer? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2012, 10:11:48 |
|
||
|
Запись большого куска данных в файл
|
|||
|---|---|---|---|
|
#18+
АлексейС, блин. Не спал. Написал не по-русски))) Вопрос такой: что круче на запись memorymapped или дополнительно завести буферризованный DirectBuffer для заливки в канал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2012, 10:13:52 |
|
||
|
Запись большого куска данных в файл
|
|||
|---|---|---|---|
|
#18+
АлексейСВстала задача обращения файлами в десятки гб АлексейС, надеюсь вы в курсе на счёт максимально возможного размера файла в разных OS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2012, 13:23:05 |
|
||
|
Запись большого куска данных в файл
|
|||
|---|---|---|---|
|
#18+
GarrickАлексейСВстала задача обращения файлами в десятки гб АлексейС, надеюсь вы в курсе на счёт максимально возможного размера файла в разных OS. Так в том то и штука маппинга в память - маппить можно кусками. Что я собственно и делаю:) Но вот с записью - большоой вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2012, 13:26:50 |
|
||
|
Запись большого куска данных в файл
|
|||
|---|---|---|---|
|
#18+
GarrickАлексейСВстала задача обращения файлами в десятки гб АлексейС, надеюсь вы в курсе на счёт максимально возможного размера файла в разных OS. Сорри, туплю, не выспался. Файлы не прямо на 150 гб, ну на 10-12, в среднем. Это же нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2012, 13:28:41 |
|
||
|
Запись большого куска данных в файл
|
|||
|---|---|---|---|
|
#18+
GarrickАлексейСВстала задача обращения файлами в десятки гб АлексейС, надеюсь вы в курсе на счёт максимально возможного размера файла в разных OS. Вообще, честно говоря, не в курсе. Я сначала подумал, что вы про ограничение файловой системы, но потом вспомнил, что какое-то видимое ограничение есть только у FAT32. Использоваться будет ext4, скорее всего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2012, 13:31:55 |
|
||
|
Запись большого куска данных в файл
|
|||
|---|---|---|---|
|
#18+
АлексейС, интересно, а как с 4гб получилось, ведь есть метод byte get(int index)(или put), где index=>0, те 0<index<2147483647 максимум 2гб ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2012, 13:41:57 |
|
||
|
Запись большого куска данных в файл
|
|||
|---|---|---|---|
|
#18+
0FDАлексейС, интересно, а как с 4гб получилось, ведь есть метод byte get(int index)(или put), где index=>0, те 0<index<2147483647 максимум 2гб Обёртку написал: 4гб = 2 мапа. 10 - 5 мапов и.т.д ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2012, 13:47:05 |
|
||
|
Запись большого куска данных в файл
|
|||
|---|---|---|---|
|
#18+
АлексейСДобрый день, коллеги. Встала задача обращения файлами в десятки гб, реализовал на MemoryMapped files, тестировал пока на 4гб максимально, но кое-как работает. Однако у меня есть опасения, что на чтения то оно будет хорошо, а вот на запись лучше не использовать, потому как данные могут понадобиться, но они могут быть еще не записаны. Посему есть мысль оставить чтение на memorymapped, а запись реализовать через голый FileChannel + allocate DirectBuffer. Спасибо. Сама по себе идея работы с очень большими файлами вызывает удивление. Есть точка где данные зарождаются. Есть точка где они обрабатываются и есть место где из них излекается отчёт. Если вы переливаете из пустого в порожнее, копируете, реплицируете, материализируете одно и то же в разных местах то можно дойти и до постановки в тербайты и петабайты. Не думали проанализировать оптимизацию самого тех-задания. Да и Java хоть и быстра, но на некоторых "ядерных" операциях с диском может быть не самой быстрой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2012, 15:06:55 |
|
||
|
|

start [/forum/topic.php?fid=59&tid=2131484]: |
0ms |
get settings: |
20ms |
get forum list: |
16ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
37ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 277ms |
| total: | 428ms |

| 0 / 0 |
