saasaa писал(а):миллионы файлов
Любую БД (СУБД, SQLite, Беркли).
По поводу Беркли - в SACS ещё нет некоторых последних исправлений (7395-7402, 7404-7406), так что возможно именно сейчас пока Беркли в SACS не стоит подымать, завтра попробую обновиться. Но если товарищ zed вдруг отпишется, что это не критичные правки (я пока что даже не смотрел, что там), то можно и не ждать понедельничной ночнушки, если хочется Беркли. Вроде бы там боролись только с сообщениями об ошибках, но мало ли.
Насколько мне известно, принципиальной разницы в скорости между Беркли и SQLite на единичных операциях быть не должно, на групповых (типа карты заполнения) SQLite и СУБД могут сильно выиграть. Если захочется все возможные плюшки в максимальном вариате - это надо поднимать взрослую СУБД из списка поддерживаемых.
И ещё (для SQLite).
Кэш планируется версионный или нет?
Какой content-type (jpeg, png, kml,...), может ли он быть разным?
В зависимости от ответов на эти вопросы, можно будет оптимизировать структуру базы (выкинуть поле типа и версии).
Делается это созданием файлика t.sql в папке с кэшем и содержанием в одну строку:
CREATE TABLE IF NOT EXISTS t (x INTEGER NOT NULL,y INTEGER NOT NULL,s INTEGER DEFAULT 0 NOT NULL,d INTEGER NOT NULL,b BLOB,constraint PK_TB primary key (x,y))
В этом случае кэш будет неверсионный и без возможности сохранения content-type для каждого тайла.
А вообще при десятках миллионах тайлов надо уже эксперименты проводить в условиях, близких к реальным, чтобы оптимальный формат хранения выбрать и кучу оптимальных значений для кучи опций. Это уже не в хЪр собачий ))) и универсального рецепта тут быть не может (за исключением откидывания некоторых заведомо неоптимальных вариантов).