LINUX.ORG.RU

Что-то вроде базы данных нужно.


0

1

Хочется библиотеку, для работы с записями. Записи от 256байт, до 32 килобайт. Скорость записей будет порядка 10 мегабайт в секунду. Доступ последовательный (добавляются всегда в конец). Суммарный размер базы данных может быть и несколько терабайт. Требуется реалтаймовость (становиться посредине и несколько минут парсить базу, а потом продолжить писать, нельзя).

Понятно что можно самому написать, но может готовое есть, с функциями поиска, позиционирования по номеру записи итд? Желательно чтобы можно было получить доступ к записями из под вндового матлаба.

Ответ на: комментарий от Artem-Dnepr

Для скорости еще лучше, наверное. Плюсы NetCDF - это скорее переносимость, самоописательность и matlab.

mclaudt ()
Ответ на: не слушай его от elverion

Возникло ощущение что Беркли DB переодически затыкается на некоторое время. Это не подходит. Еще раз, фишка в том,чо данных много. Несколько терабайт запросто может быть. И их нужно писать с нормальной скоростью. Реал-тайм в общем. И читать тоже. Данные последовательно расположены. Достаточно функций put next и get next. Теги, и связанные с ними бинарные деревья итд, не нужны.

Artem-Dnepr ()
Ответ на: комментарий от Sorcerer

Его даже из Amarok выкинули, хотя казалось бы, чему там тормозить?

elverion ()
Ответ на: комментарий от Artem-Dnepr

По личному опыту, когда начинаешь изобретать самописные системы хранения данных, в результате выходит нечто похожее на кастрированный sql, но с костылями и глюками.

Вообще, описанная задача весьма нетривиальна. Может быть попробовать для этого приспособить рсубд? тот же грамотно настроенный mysql запросто может жонглировать терабайтными базами и не захлебываться от большого потока insert'ов, к тому же позволяя делать вкусняшки типа контроля за целостностью, откаты, блокировки и т.п.

shutty ()
Ответ на: комментарий от Sorcerer

>>SQLite?

Где в посте требуется реляционность, чудень?

mclaudt ()

непонятны требования, добавление есть, а про выборку ничего не сказано. и что значит «становиться посредине и несколько минут парсить базу, а потом продолжить писать, нельзя»??

s0L ()
Ответ на: комментарий от s0L

Выборка тоже последовательная. Добавление, только в конец. Удаления нет. Что такое реляционность, не знаю.

Контроль за целостностью, хотелось бы, откаты, блокировки итд, не нужны. Похоже база данных тут не нужна.

Artem-Dnepr ()
Ответ на: комментарий от Artem-Dnepr

то что тебе нужно и базой данных трудно назвать.. получается тупо массив структур, хранящийся на диске. там писать то особо нечего, тем более что никакой модификации кроме добавления в конец нету. зачем че то искать?

s0L ()
Ответ на: комментарий от Artem-Dnepr

а целостность...можно рядом положить файл с md5 хэшами каждых N мегабайт или каждых N записей, чтобы не шерстить все терабайты для проверки при случае.

s0L ()
Ответ на: комментарий от Artem-Dnepr

и хранить саму базу не одним файлом а бить каждые N записей. так надежней.

s0L ()
Ответ на: не слушай его от elverion

Re: не слушай его

>Скорость записей будет порядка 10 мегабайт в секунду.

Только xml


facepalm.svgz [25 Mb]

Deleted ()
Ответ на: комментарий от Artem-Dnepr

ну раз хочется единого, юзай что нить SQL-подобное, самое простое SQLite, только это будет много лишнего функционала

s0L ()

Допустим, что средний размер 15килобайт. Тогда в секунду будет порядка 700 записей. Т.е 1-2 милисекунда на запись. А с учитывая размер записей и что надо писать на диск, ты не добьешься такой производительности. Интереса ради можешь посмотреть тесты redis, но он инмемори дает чтото типа такого.

Поэтому сразу смотри на базы с шардированием. Например. Mongodb шардированный.

//ar

anonymous ()
Ответ на: комментарий от Reset

тогда зачем тебе база? просто последовательно пиши в один большой файл и всё

В два, индекс лучше в общую кашу не ложить.

mv ★★★★★ ()
Ответ на: комментарий от anonymous

> А с учитывая размер записей и что надо писать на диск, ты не добьешься такой производительности.

буфферизация решает

lykk ()

mongoDB, возможно, подойдёт.

DELIRIUM ☆☆☆☆☆ ()
Ответ на: комментарий от s0L

так судя по всему ему индекс и не нужен

с функциями поиска, позиционирования по номеру записи итд?

mv ★★★★★ ()
Ответ на: комментарий от anonymous

ORLY?! «не ложить» - смертью караемое отклонение от линии партии

Ну и расскажи, как ты будешь искать пакет номер один миллион сто тыщ два, если индекс размазан по файлу с данными?

mv ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.