SASGIS

Веб-картография и навигация

HTTP-сервер-обменник для тайлового кеша

программа для загрузки и просмотра спутниковых снимков Земли, Луны, Марса предоставленных сервисами Google Maps и Космоснимки. Возможность работы с GPS приёмником.

Модератор: Tolik

HTTP-сервер-обменник для тайлового кеша

Сообщение svp » 11 дек 2008, 19:30

Parasite писал(а):У меня дежавю... :)

Да. Вопрос поднимался и поднимался в правильном направлении.
Однако в этом случае, если не хранить локальный кеш тайлов, мы проигрываем в быстродействии локальной отрисовки тайлов. Думаю это тоже не нравится автору в варианте с сервером и удалённой БД.

Вариант здесь такой:
    1. Беркли надо прикручивать и локально и на сервере (на сервере можно по приведённой выше схеме).
    2. Сервер должен быть необязательным.
    3. В локальной базе тайлы должны метиться (индексированием) признаком IsSotred.
    Если этот флаг стоит, значит тайл либо был загружен из местного хранилища, либо в него только что сохранён.
    У закачанных из интернета тайлов этот флаг должен быть сброшен.
    4. При наличии подключённого местного хранилища в разных потоках с настраиваемыми приоритетами должно происходить:
      4.1. Загрузка тайлов из местного хранилища в локальный кеш по спирали от текущей точки просмотра (естественно с флагом Stored). Спираль должна расширяться и за пределы экрана.
      4.2. Отправка в хранилище тайлов, не найденных в местном хранилище и загруженных из интернета (те, что без флага). После отправки им тоже ставится флаг Stored.
      4.3. Давно неиспользованные тайлы с флагом Stored из местного кеша должны удаляться.
Таким образом мы убиваем N зайцев:
    1. Не теряем всю полноту функционала локального кеша. Естественно, если хранилище не подключено, то ничего из локального кеша удаляться и высылаться не будет. В этом случае работа полностью аналогична тому, что есть сейчас.
    2. Не теряется быстрота извлечения местных тайлов (тех, что около текущей точки просмотра в текущем и ближайших зумах).
    3. Имеем распределённое по местной сети (или даже в интернет) альтернативное хранилище с отсутствием необходимости хранить и синхронизировать огромные кеши локально и вручную.
    4. После длительной автономной работы, набравшийся не сохранённый локальный кеш будет автоматом вливаться в хранилище при наличии к оному подключения.
    5. Так как на стороне хранилища есть Перловая или PHP прослойка, несложно создать механизм, который будет распределять входящие тайлы по некоторым правилам между несколькими базами хранилища. Например, детальные кеши городов с окрестностями можно хранить в отдельных базах (и, естественно, копировать, если надо, на локальный комп единым файлом, например. перед поездкой в этот город).

Этот или похожий механизм рано или поздно всё равно будет реализовываться, ибо одна из сфер применения Планеты -- это использование её всякого рода путешественниками для планирования и анализа маршрутов, например. А значит нужна не только склейка, но и большой автономный быстрый мобильный и легко синхронизируемый кеш.

Посему прошу заинтересованных участников форума поучаствовать в обсуждении этого механизма, внести свои поправки или дополнения.
Аватара пользователя
svp
Советчик
 
Сообщения: 447
ICQ: 204094886
Зарегистрирован: 26 авг 2008, 11:14
Откуда: Белгород
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.

Re: Использование в Sas.Планета кеша в формате Berkely

Сообщение zed » 11 дек 2008, 20:34

feya писал(а):http://sasgis.org/forum/viewtopic.php?f=2&t=34&start=80#p2263
А вообще по сети, конечно можно, ИМХО, только в монопольном режиме.
Вот в этом минус я вижу большой.

По-моему, не такой это уж и минус - думаю многих устроит схема - чтение/запись в локальный кэш + чтение сетевого кэша (кешей). Реализация хотя бы такой схемы - уже огромный плюс для SAS. Да даже сделайте только локальный кэш в БД - и вы увидите счастье в глазах пользователей :)
А с сервером, думаю не стоит забегать наперёд, разобраться б сначала с локалью - а дальше будем смотреть... тем более что SAS, в роли сервера, всё-равно выступать не будет, а настроить SAS на работу с сервером будет довольно просто (по-крайней мере проще, чем заставить сохранять кэш в БД).
Так что не расплываемся идеями, а роем: SAS+локальный кэш в Беркли
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

Re: Использование в Sas.Планета кеша в формате Berkely

Сообщение Parasite » 15 дек 2008, 20:10

zed писал(а):настроить SAS на работу с сервером будет довольно просто (по-крайней мере проще, чем заставить сохранять кэш в БД).
Так что не расплываемся идеями, а роем: SAS+локальный кэш в Беркли

Коллеги, не пора ли переходить а verbis ad verbera? Сорцы же доступны... :)
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение
Аватара пользователя
Parasite
Администратор
 
Сообщения: 5646
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 124 раз.
Поблагодарили: 512 раз.

Re: Использование в Sas.Планета кеша в формате Berkely

Сообщение zed » 16 дек 2008, 10:09

Полностью с вами согласен, коллега, приступайте :)
А если серьёзно, то работа SAS c сервером, для меня - менее приоритетная задача, тем более что с "моим" сервером (HandyCache) SAS может работать без каких-либо изменений в коде: вся работа ложится на "внешний" HC-модуль. Что же касается Беркли, то это, в данный момент, мне не по-зубам, хотя эта задача из наиболее приоритетных...
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

Re: Использование в Sas.Планета кеша в формате Berkely

Сообщение Parasite » 16 дек 2008, 11:44

zed писал(а):Полностью с вами согласен, коллега, приступайте :)

Вот он, момент истины...!!! :lol:
PS: а мне Беркли в САСе не нужно, у меня всё в удаленный NAS (в коем ext3, подверженная дефрагментации на порядки менее FATа) кладется совершенно без каких-либо проблем либо переделок. Причем оный NAS я даже не знаю где (территориально). :roll:

zed писал(а):с "моим" сервером (HandyCache) SAS может работать без каких-либо изменений в коде: вся работа ложится на "внешний" HC-модуль.

А чем хранение в HC отличается от текущего кэша SAS? Те же тайлы (да еще и в одной куче), та же фрагментация...? HC же - не база данных, а просто кэширующий проксик, насколько я понимаю? В чем преимущества?
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение
Аватара пользователя
Parasite
Администратор
 
Сообщения: 5646
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 124 раз.
Поблагодарили: 512 раз.

Re: Использование в Sas.Планета кеша в формате Berkely

Сообщение zed » 16 дек 2008, 16:31

А чем хранение в HC отличается от текущего кэша SAS? Те же тайлы (да еще и в одной куче), та же фрагментация...? HC же - не база данных, а просто кэширующий проксик, насколько я понимаю? В чем преимущества?

В данный момент ничем. А преимущество в том, что не изменяя код и логику SAS, в будущем можно будет организовать кэш в БД, и он будет сетевым.
P.S. Ожидается выход новой версии HC, в котором будет возможна реализация он-лайн кэширования GoogleEarth (посредством скрипта/dll). HC я пользую уже довольно давно, а ввиду предстоящих событий - продолжу его использовать, причём с немалой пользой. Поэтому и SAS (и любая сетевая картино-качалка), со временем, будет научен на HC, и кэш будет храниться в БД (совместимой с БД самого SAS, если такая появится). Это, типа, планы такие :)
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

Re: Использование в Sas.Планета кеша в формате Berkely

Сообщение Parasite » 16 дек 2008, 21:35

zed писал(а):
А чем хранение в HC отличается от текущего кэша SAS? Те же тайлы (да еще и в одной куче), та же фрагментация...? HC же - не база данных, а просто кэширующий проксик, насколько я понимаю? В чем преимущества?

В данный момент ничем. А преимущество в том, что не изменяя код и логику SAS, в будущем можно будет организовать кэш в БД, и он будет сетевым.

Это ж полумеры, и дополнительный сторонний закрытый софт.
Не лучше ли научить SAS работать с локальным веб-сервером (а дальше каждый сможет научить его делать то или иное в силу только своей фантазии и особенностей того или иного языка-обработчика, а не ограничений того или иного закрытого софта)?

zed писал(а):Поэтому и SAS (и любая сетевая картино-качалка), со временем, будет научен на HC, и кэш будет храниться в БД (совместимой с БД самого SAS, если такая появится).

Имхо, при минимальном изменении кода SAS можно будет полностью отказаться от промежуточных шагов в виде кэширующего проксика. Он просто станет не нужен - и гибкость этого решения (например в виде полного функционала того же обработчика Перла) НА ПОРЯДКИ выше любых существующих возможностей настройки HC. Впрочем, даже HC в своих правилах применяет Perl-синтаксис (правда, крайне кастрированный - но тенденция прослеживается-ссс)...:)
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение
Аватара пользователя
Parasite
Администратор
 
Сообщения: 5646
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 124 раз.
Поблагодарили: 512 раз.

Re: Использование в Sas.Планета кеша в формате Berkely

Сообщение svp » 16 дек 2008, 22:09

Parasite писал(а):Не лучше ли научить SAS работать с локальным веб-сервером

Ну так а в чем проблема? Минутное дело научить Планету между дисковым кешем и интернет-сервисом заглядывать ещё на опциональный http-сервер с описанным в скрипте механизмом формирования УРЛ-а. Всё что нужно для этого в Планете уже есть. Добавить только ещё одну инстанцию, где искать тайлы. Однако нет сервера. Могу поспорить, что как только появится сервер, то появление его поддержки не заставит долго ждать. Так что вам и карты в руки, уважаемые перловые кодеры. Как там по латыни.. от слов к делу?
Кстати, для перла и PHP (в отличие от дельфи) есть готовые интерфейсы для работы с беркли. А также есть примеры. Почему бы сразу HTTP сервер не сделать с аплоадингом и поддержкой беркли? А как только появятся готовые понятные примеры, то и народ к этому делу подтянется. Тут самое сложное -- начать.
Аватара пользователя
svp
Советчик
 
Сообщения: 447
ICQ: 204094886
Зарегистрирован: 26 авг 2008, 11:14
Откуда: Белгород
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.

Re: Использование в Sas.Планета кеша в формате Berkely

Сообщение Parasite » 17 дек 2008, 08:51

svp писал(а):
Parasite писал(а):Не лучше ли научить SAS работать с локальным веб-сервером

Ну так а в чем проблема? Минутное дело научить Планету между дисковым кешем и интернет-сервисом заглядывать ещё на опциональный http-сервер с описанным в скрипте механизмом формирования УРЛ-а. Всё что нужно для этого в Планете уже есть. Добавить только ещё одну инстанцию, где искать тайлы. Однако нет сервера.

Почему нет? Локалхосты + Апачи куда делись? Или DenWer тот же....
Перенастроить же с локального на глобальный (если таковой когда-нибудь появится) займет отредактировать 4 цифирки IPшника в конфигах.

svp писал(а):Как там по латыни.. от слов к делу?

"От слов - к побоям"...:)

svp писал(а):Кстати, для перла и PHP (в отличие от дельфи) есть готовые интерфейсы для работы с беркли. А также есть примеры. Почему бы сразу HTTP сервер не сделать с аплоадингом и поддержкой беркли? А как только появятся готовые понятные примеры, то и народ к этому делу подтянется. Тут самое сложное -- начать.

Совершенно верно.

Дак за чем дело встало? Нужен сконфигуренный сервер (без инсталляции, способный работать на локалхосте) что ли?
www.denwer.ru (Апач+мускул+пхп+PHPmyAdmin в одном флаконе, всё уже настроенное. Опционально - доп.модулем, как и в "большом" Апаче - Перл и что там душа пожелает еще).
Размер не более 3Мб на всё - на то время, когда я его сам качал и пробовал пару лет назад.
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение
Аватара пользователя
Parasite
Администратор
 
Сообщения: 5646
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 124 раз.
Поблагодарили: 512 раз.

Re: Использование в Sas.Планета кеша в формате Berkely

Сообщение Vasya » 17 дек 2008, 10:36

Как альтернативу Денверу, могу предложить http://www.wampserver.com/en/ , уже 16 метров http://sourceforge.net/project/download ... irror=mesh
Аватара пользователя
Vasya
Советчик
 
Сообщения: 266
ICQ: 137791
Зарегистрирован: 14 июл 2008, 13:06
Откуда: Одесса
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.

След.

Вернуться в SAS.Планета

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 11