Parasite писал(а):Скажите, в чем разница этого подхода - и обычного индекса обычной датабазы?
Никакого, это частный случай индекса, оптимизированный под работу с огромным количеством тайлов, которые приходится кусками заменять.
Parasite писал(а):А смысл разделения, если это уже не архив а датабаза (которая к тому же эффективней и юзабельней)?
Не понимаю что вы имеете в виду под "которая эффективней". Различных БД как и СУБД существует множество. У всех есть свои плюсы и минусы.
Оптимизированный под задачу инструмент (будь то молоток, шуруповёрт, или, скажем, плоская БД) - всегда будет эффективнее комбинированного.
Кстати, касательно SQLite есть немного интересного тут
http://tinyurl.com/omqg4x (ответ на синем поле).
Parasite писал(а):А как обходиться с разными слоями - ведь каждый квадрат учетверяется на подлежащем слое, как по обьему, так и по кол-ву тайлов? Опять разбивать уже и этот слой, и будет уже 4 архива вместо одного?
Зависит от объёмов, нужно пробовать тесты на реальных данных, тогда станет понятно, что удобнее и меньше тормозит.
Мы же сейчас обсуждаем общую политику кэша, а не тонкости реализации.
Parasite писал(а):Как отслеживать версии - помещать ее номер в название архива? Итд итп......
Номер версии тайла должен заноситься в файл одновременно с его добавлением. Т.е.
Дата-файл состоит из множества записей, каждая из которых несёт в себе:
а) снимок
б) версию
в) координаты/зум
г) метку состояния (удалён/активен)
в начале дата-файла присутствует заголовок с системной информацией
ТОС-файл (индекс) генерится на основе дата-файла, и используется для ускорения навигации внутри дата-файла, содержит отсортированные ссылки в виде:
а) координаты/зум
б) версия
в) смещение от начала файла
в начале ТОС-файла присутствует заголовок с системной информацией
Чтобы избавиться от необходимости сортировки, ТОС-файл можно создавать "дутым", сразу резервируя место под записи фиксированного размера, и забивая при инициализации нулями.
Parasite писал(а):В чем конкретно выгода Вашего метода в плане скачки тайлов?
Тем, что из объединённого файла можно достать любой тайл - не распаковывая архив, а просто перейдя на нужную позицию в файле (естественно, при наличии валидного ТОС-файла).
В случае обновления дата-файла произойдёт дозапись в конец, и перекачивать весь файл не потребуется. Если же раздавать зип или рар - файл "поползёт".
Parasite писал(а):Что делать тем, кто качает не по конкретным регионам (например, мне)?
Регионом я называю квадратную (или любую другую) область. Т.е. в вашем случае можно качать Землю, делённую на квадраты, по типу шахматной доски, не привязываясь к географии.