Хорошая библиотека ISAM или другой простой файловый менеджер для больших файлов в Windows x64
Вопрос
У нас есть несколько очень больших файлов данных (от 5 гигабайт до 1 ТБ), к которым нам нужен быстрый доступ на чтение / запись.Поскольку у нас фиксированный размер записи, кажется, что какая-то форма ISAM была бы правильным решением.Но был бы рад услышать другие предложения.
В идеале решение должно иметь лицензию в стиле Apache или LGPL, но мы заплатим, если потребуется.
Обязательные обладатели:
Масштабируемость - файлы объемом не менее 1 ТБ
Стабильный - либо не повреждает данные, либо обеспечивает быстрый процесс восстановления.
Хорошо работает в Windows X64
Приятно иметь:
Может участвовать в 2-х фазных коммитах
Внутренние компрессионные установки
Переносимый на платформы * nix
C # API или Java API
Спасибо,
Теренс
Решение
Отдавать База данных Беркли попробовать.Мнения разнятся, но он масштабируемый, стабильный (если вы используете все необходимые слои) и AFAIK хорошо работает в Windows x64.Также переносим на * nix и имеет C и Java API.Не знаю о C # API.
Другие советы
Вы также можете использовать компонент ESENT database engine, встроенный в Windows.Насколько это возможно в соответствии с вашими требованиями:
- Масштабируемый:максимальный размер базы данных составляет 16 ТБ.Мульти-ТБ datbases были используемые в производстве.
- Стабильный:аварийное восстановление с помощью ведения журнала с опережением записи.
- 64 - разрядная Операционная система Windows:ESENT является частью Windows, поэтому он присутствует на вашем 64-разрядном компьютере.
Приятно иметь:
- 2 фаза фиксации:Нет.
- Сжатие:Нет.
- Переносится в * nix:Нет.
- C # API или Java API:Не совсем (в Codeplex есть уровень взаимодействия C #, но он не завершен).
Документация находится здесь: http://msdn.microsoft.com/en-us/library/ms684493 (ПРОТИВ 85).aspx
Вы можете получить заголовочный файл и библиотеку, загрузив Windows SDK.