посоветуйте хранилище (вероятно СУБД) со следующими ограничениями:
— движок должен быть встроен в адресное пространство приложения
— доступ к хранилищу должен быть прямой, минуя TCP/IP
— многопользовательский/многопоточный доступ не требуется
— хранилище должно обеспечивать хранение как структурированной информации, так и неструктурированной (BLOB)
— между размещением данных на диске и помещением данных в указанную мной память — должно быть как можно меньше этапов/операций
— самый критичный параметр — производительность чтения/сохранения
— сохраняться данные в хранилище будут один раз, читаться будут много раз, модифицироваться не будут никогда.
Здравствуйте, PaNov, Вы писали:
PN>посоветуйте хранилище (вероятно СУБД) со следующими ограничениями: PN>- движок должен быть встроен в адресное пространство приложения PN>- доступ к хранилищу должен быть прямой, минуя TCP/IP PN>- многопользовательский/многопоточный доступ не требуется PN>- хранилище должно обеспечивать хранение как структурированной информации, так и неструктурированной (BLOB) PN>- между размещением данных на диске и помещением данных в указанную мной память — должно быть как можно меньше этапов/операций PN>- самый критичный параметр — производительность чтения/сохранения PN>- сохраняться данные в хранилище будут один раз, читаться будут много раз, модифицироваться не будут никогда.
Здравствуйте, BlackEric, Вы писали:
BE>csv/xml файлы?
в этом случае не удовлетворяется требование "самый критичный параметр — производительность чтения/сохранения"
сейчас данные лежат на диске в бинарном потоке собственного формата.
с переходом на xml хранилище вырастет примерно на порядок с точки зрения размера... плюс — чтобы его зачитать — придется XML дерево реконструировать в памяти полностью, что неприемлемо.
с точки зрения скорости — боюсь будет больше чем на порядок.
с переходом на хранилище я готов "заплатить" примерно двухкратным замедлением относительно сырого бинарного потока.
уточню что за данные.
речь идет о хранении чертежей самописной CAD системы.
чертеж состоит из множества объектов (некоторые объкты рекурсивно вложены).
количество объектов на одном чертеже в пределе может доходить до нескольких сотен тысяч.
у объектов есть информация характерная для всех (имя объекта, тип объекта, автор, дата создания/модификации, ...) и есть прикладная информация, специфичная для типа (у окружности это центр и радиус, у растровой картинки — jpeg или bmp, ...).
общая информация будет храниться структурированно. специфичная — в blob (иначе по производительности сохранения/чтения не вытянем).
Здравствуйте, BlackEric, Вы писали:
BE>csv/xml файлы?
вдогонку, забыл написать про размеры.
характерный/предельный размер структурированных данных по объекту 200-500 байт / ~100Кб
характерный/предельный размер НЕструктурированных данных (blob) по объекту 0.1-10 Мб / ~200Мб
характерный/предельный размер чертежей 5-50 Мб / 1-2 Гб.