SASGIS

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

Как оптимизировать КЭШ? (Size 2,20 GB. Size on disk 5,40 GB)

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

Модератор: Tolik

Re: Как оптимизировать КЭШ? (Size 2,20 GB. Size on disk 5,40 GB)

Сообщение webdev2 » 16 фев 2010, 14:03

deeman писал(а): Вариант с базой данных лично я откладываю по очень простой причине - такая оптимизация будет оптимизацией только для достаточно мощных компьютеров

Батенька, Вы просто не умеете их готовить (базы) ;)
На моем eee pc самого первого выпуска, он еще из Америки привезен, кэш из базы sqlite летает.
Нужен только апач и php. Что у вас за ноут? Апач и на 800-мгц должен идти без проблем.
И попробуйте закинуть на флешку один 2-гиговый файл базы sqlite и сравнить со временем закачки десятков тысяч тайлов.
zed писал(а):Я бы не сказал, что БД - деградация, потому что не факт, что будет падение производительности по сравнению с тайловым кэшем.

Во-во, я особой разницы тоже не замечаю.
Я вот думаю, как попроще для простых юзеров сделать возможность пользоваться базами.
Тут авторы могут помочь, если это не сложно будет. Сейчас тайл можно получить по http:// (ну как вариант видимо file://)
Если бы была возможность для формирования тайла вызывать просто внешнюю программу (или батник) с параметрами - этого было бы достаточно. Например
formtile.bat [уровень] [x] [y]
Ну и плюс надо указать имя файла с тайлом, который сгенерит программа.
Это конечно немного через попу, но по другому только локальный веб-сервер поднимать.
webdev2
Новичок
 
Сообщения: 32
Зарегистрирован: 20 мар 2009, 15:36
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Как оптимизировать КЭШ? (Size 2,20 GB. Size on disk 5,40 GB)

Сообщение Parasite » 16 фев 2010, 20:25

webdev2 писал(а):Нужен только апач и php. Что у вас за ноут? Апач и на 800-мгц должен идти без проблем.

Что характерно - апач и на 80и летает.

webdev2 писал(а):Это конечно немного через попу, но по другому только локальный веб-сервер поднимать.

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

Re: Как оптимизировать КЭШ? (Size 2,20 GB. Size on disk 5,40 GB)

Сообщение webdev2 » 17 фев 2010, 12:42

Parasite писал(а):А что мешает сделать сборку по типу Denwer? :)


Для работы достаточо Апача и php.

Если говорить об установке пакета Денвер, то в его только базовом пакете находятся:
- Apache и php
- MySQL5 с поддержкой транзакций.
- Система управления виртуальными хостами, основанная на шаблонах.
- phpMyAdmin — система управления MySQL через Web-интерфейс.
- Эмулятор sendmail и SMTP-сервера
- Самое главное - Система управления запуском и завершением всех компонентов Денвера.

И зачем все это ставить? Если речь идет "по типу денвера", ну что-то возможно и будет по типу, без лишних компонентов.
Портабельная база SAS должна со сменного носителя само собой работать. Плюс минимум настроек или вообще никаких для локального веб-сервера. Плюс, что самое интересное - не должна конфликтовать с возможно стоящим на компе основным веб-сервером.
А вот если будет возможность вызывать внешнюю программу для построения тайла, тогда и с веб-сервером все вопросы снимаются.
webdev2
Новичок
 
Сообщения: 32
Зарегистрирован: 20 мар 2009, 15:36
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Как оптимизировать КЭШ? (Size 2,20 GB. Size on disk 5,40 GB)

Сообщение vdemidov » 17 фев 2010, 13:26

Что стопудово будет и в относительно скрое время, это возможность написать плагин, у которого будет вызываться метод типа
function GetTile(AXY: Tpoint; Azoom: byte): IStream; safecall;
А уж что этот плагин будет делать это чисто его дело, хоть к базе обращаться, хоть внешнюю прогу запускать.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 136 раз.

Re: Как оптимизировать КЭШ? (Size 2,20 GB. Size on disk 5,40 GB)

Сообщение Parasite » 17 фев 2010, 14:54

webdev2 писал(а):
Parasite писал(а):А что мешает сделать сборку по типу Denwer? :)

Для работы достаточо Апача и php.

...а базу мы на пальце юзера вертеть будем, да. ;)
Базовод тоже нужен, если на локалхост ориентироваться.

webdev2 писал(а):И зачем все это ставить?

Затем, чтобы понять что "сделать сборку по типу Denwer" != "поставить весь Denwer в его стандартном виде".
После понимания сего факта - снести весь Denwer, и сделать свою сборку по его типу но уже для САСа.

webdev2 писал(а):Портабельная база SAS должна со сменного носителя само собой работать. Плюс минимум настроек или вообще никаких для локального веб-сервера. Плюс, что самое интересное - не должна конфликтовать с возможно стоящим на компе основным веб-сервером.

Повторяю вопрос: А что мешает сделать сборку по типу Denwer?
Свою, повторяю, сборку. Сделать. Ручками. Самим.

webdev2 писал(а):что самое интересное - не должна конфликтовать с возможно стоящим на компе основным веб-сервером.

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

Re: Как оптимизировать КЭШ? (Size 2,20 GB. Size on disk 5,40 GB)

Сообщение webdev2 » 17 фев 2010, 17:09

Parasite писал(а):...а базу мы на пальце юзера вертеть будем

Что-то типа того. Читаем туточки http://www.sqlite.org/zeroconf.html, вникаем в смысл понятия Zero-Configuration Database
webdev2
Новичок
 
Сообщения: 32
Зарегистрирован: 20 мар 2009, 15:36
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Как оптимизировать КЭШ? (Size 2,20 GB. Size on disk 5,40 GB)

Сообщение Parasite » 17 фев 2010, 21:54

webdev2 писал(а):вникаем в смысл понятия Zero-Configuration Database

Открываем для себя факт того, что SQLite - далеко не единственная, совсем не самая лучшая и уж тем более не самая производительная для сабжа датабаза. Если что - ее совершенно не зря назвали *Lite. Например, о распараллеливании доступа многих приложений к одной базе (особенно на запись) можно либо забыть, либо вручную корячиться с очередями и приоритетами через php\perl\asp. Ведь по сути - SQLite это простой файл на диске, а "базоводом" его назвали видимо с глубокого бодуна. И все ограничения при попытках многопользовательской работы с однажды открытым файлом - применимы и тут. То есть - "В очередь, сукины дети, в очередь!!"© Шариков П.П.
Вопрос в том, что с очередями нам придется разбираться самим и ручками - и зачем, собссно, нам этот гимор нужен.

PS: и уж совсем отдельное спасибо за хранение всех данных в одном флаконе, а не как минимум потаблично с выносным индексом. Ошибка записи, свет моргнул -> ВЕСЬ кэш оптом накрылся медным тазом, а вменяемых и мощных средств диагностики и восстановления этой БД лично мне неизвестно. :(

PPS: это кстати 2 основных болезни конкурента - SatMap. Уже второй год автора прошу подумать в сторону I\O на нормальный внешний базовод, но.... :(

PPPS: и это на фоне того, что тот же например нормальный "честный" мускул займет мегов 5 всего-навсего, а установки тоже не требует (см.пример Денвера), а средств восстановления к нему - вагон и маленькая тележка, и подо все мыслимые платформы. Бонусом можно задуматься, почему в том же денвере - именно мускул, а не lite (который и проще и легче). :)
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение
Аватара пользователя
Parasite
Администратор
 
Сообщения: 5646
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 124 раз.
Поблагодарили: 460 раз.

Re: Как оптимизировать КЭШ? (Size 2,20 GB. Size on disk 5,40 GB)

Сообщение webdev2 » 18 фев 2010, 13:58

Я где-то утверждал, что SQLite единственная база? :)
У меня около 5 лет опыт профессиональной работы с MS Sql, больше 10 лет с MySql.
SQLite не единственная, не самая лучшая, не самая производительная, не самая приспособленная для работы с Delphi и т.д. и т.п.
Если ведем речь о параллельной многопоточной работе десятков и сотен приложений - то да, MySql или Оракл будет хорошо.
А если нужно просто с ноутом поехать в зеленя или генштабовку или шубертовку слить с виндового компа на линуксовый - тада можно и без многопользовательских тонкостей приоритетов. Файл качнул и все.
К слову, о Денвере - версии Денвера под Линукс пока не существует. А САС на линуксе под вайном и с SQLite - работает отлично.
Parasite писал(а):отдельное спасибо за хранение всех данных в одном флаконе, а не как минимум потаблично

Пожалуйста, но юмор не совсем понятен. В базе кэша и так одна таблица. Применительно к нашему вопросу, один флакон - одна таблица. Несколько карт - несколько файлов.
Насчет проблем с напряжением и нечитаемостью файла - ну да, если уж испортился то испортился. Я базы rar-ом жму с информацией для восстановления и на болванки по нескольку экземпляров в разные места копирую. Вот сейчас флешки емкие пошли, может они надежнее DVD будут.
Тут ведь с гипотетическим крахом базы вопрос простой: Один раз записали, а потом много раз только читаем. Если уж успешно закинули тайлы, то одними запросами select базу разрушить непросто.
Возвращаясь к сабжу - там топикстартер спрашивал о кэше 2.2G. У меня разных карт в SQLite больше 5.6 GB. Полет нормальный.
Parasite писал(а):"честный" мускул займет мегов 5 всего-навсего, а установки тоже не требует

К вопросу об портабельности - если на компе уже стоит основной MySql и я с флешкой и Денвером сунусь. Нужно чтобы и приложения с основной MySql работали и портабельный вариант одновременно. По этому поводу в FAQ Денвера чудесная фраза "Тут ничего не поделать – или пробуйте заставить Программу работать с Денверовским MySQL, или наоборот – убедить Денвер работать со сторонней копией MySQL" - супер портабельность!
Parasite писал(а):Бонусом можно задуматься, почему в том же денвере - именно мускул

Это очень просто. ДНВР - это Джентльменский Набор Веб Разработчика. Сайты в силу их серверной природы делают на MySql. А мне все таки CАС ближе в роли портабельного, переносного приложения.
Лучше задумаемся, почему Денвер не позиционируется, как Набор Разработчика Portable-программ.
webdev2
Новичок
 
Сообщения: 32
Зарегистрирован: 20 мар 2009, 15:36
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Как оптимизировать КЭШ? (Size 2,20 GB. Size on disk 5,40 GB)

Сообщение Parasite » 18 фев 2010, 19:05

webdev2 писал(а):Я где-то утверждал, что SQLite единственная база? :)

Ты настойчиво предлагал именно ее тут примерно с мая прошлого года, и продолжаешь. Такое ощущение, что других альтернатив для тебя тут не существует. :)

webdev2 писал(а):У меня около 5 лет опыт профессиональной работы с MS Sql, больше 10 лет с MySql.

Вот я и говорю - пионер.
PS: тот же ДОСовый dBase повменяемее SQLite будет. И не валился. Никогда. :)

webdev2 писал(а):А если нужно просто с ноутом поехать в зеленя или генштабовку или шубертовку слить с виндового компа на линуксовый - тада можно и без многопользовательских тонкостей приоритетов. Файл качнул и все.

Трукрипт заюзал и пошел. Вот прямо сейчас и безо всяких ломаний копий и потери времени тут.

webdev2 писал(а):К слову, о Денвере - версии Денвера под Линукс пока не существует.

Заменой исполняемых файлов и имен в скриптах (либо заранее подготовленных комплектов) - один плавно превращается в другой нежным движением консоли. В чем вопрос-то? У меня кучку лет уже работает.

webdev2 писал(а):А САС на линуксе под вайном и с SQLite - работает отлично.

Я знаю.

webdev2 писал(а):В базе кэша и так одна таблица. Применительно к нашему вопросу, один флакон - одна таблица.

Упал индекс во флаконе - упало всё.
Этому подвержены даже более "солидные" базоводы (например, на мускуле стандартный MyISAM база весьма любит валиться при числе записей >100M. И это НЕПОДНИМАБЕЛЬНО без смены типа хранилища и пересоздания базы с нуля. А что прикажете делать, если у меня НАМНОГО более большие размеры баз как по размеру, так и по числу записей?? SQLite, говорите? Спасибо, не интересует).
PS: да, это базы с кэшем.

webdev2 писал(а):Насчет проблем с напряжением и нечитаемостью файла - ну да, если уж испортился то испортился.

Вот спасибо!! :lol:

webdev2 писал(а):Один раз записали, а потом много раз только читаем.

TrueCRYPT. Прямо сегодня. Кроссплатформенный и весьма стабильный (у меня не было прецедентов глюка ТруКрипта, а вот глюки SQLite - сколько угодно).
Вся фича базы супротив файла - в том, что она допускает множественные параллельные чтения\записи. Если это не нужно - то лично я вообще не вижу рацзерна во всей этой идее. Налил кэша на флешку и пошел в поход, а чем вопрос-то?

webdev2 писал(а):У меня разных карт в SQLite больше 5.6 GB. Полет нормальный.

Тю........
Подождем.

webdev2 писал(а):К вопросу об портабельности - если на компе уже стоит основной MySql и я с флешкой и Денвером сунусь. Нужно чтобы и приложения с основной MySql работали и портабельный вариант одновременно. По этому поводу в FAQ Денвера чудесная фраза "Тут ничего не поделать – или пробуйте заставить Программу работать с Денверовским MySQL, или наоборот – убедить Денвер работать со сторонней копией MySQL" - супер портабельность!

Хм. Ничего не понял.
Сколько лет подряд юзаю денверовского мускула на куче проектов (в виде просто датабазы, не юзая ни php ни pl из состава денвера) - и ничего. Точно так же и обновляю - скачал свежего мускула, перезаписал папку в денвере не трогая старого конфига, перезапустил денвера - все работает. То же и с апачем. То же и с перлом.
Я что-то не так делаю?

webdev2 писал(а):Сайты в силу их серверной природы делают на MySql.

Сайты юзают БД именно потому, что браузеры как-то раз научились параллельным запросам к одному сайту, и на стороне сервера понадобилось обслуживать множественные запросы к одинаковым ресурсам * числу посетителей, ибо на plain files очереди доступа, простои, задержки и 403 ошибки вырастали до высот Эвереста в полной прогрессии со скоростями коннекта и числом юзверей.
Попробуйте написать любой динамический мультипользовательский код без БД. Особенно меня интересует момент запроса ресурса ХХХХХ пользователем 2 в то время, когда его одновременно модифицирует пользователь 1. Например, один юзер заливает аватару, а второй зашел как раз на страницу этого пользователя (где должна показываться аватара).

Задача, разумеется, решаема - через темп-файлы, рандомные имена, организации задержек и проч. - но код будет на порядок обьемнее, и число багов и времени на отладку - тоже.

webdev2 писал(а):А мне все таки CАС ближе в роли портабельного, переносного приложения.Лучше задумаемся, почему Денвер не позиционируется, как Набор Разработчика Portable-программ.

Он портабельный начиная с самого себя (1 папка) и далее, и запускается\выгружается одним кликом. И у МЕНЯ например случаются одновременные И просмотры, И чтения, да и нигров-юзверей у меня сотни, каждому по монопольному кэшу не скопируешь. См. сюды (и что мне там ответили).

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

Re: Как оптимизировать КЭШ? (Size 2,20 GB. Size on disk 5,40 GB)

Сообщение webdev2 » 19 фев 2010, 14:14

Parasite писал(а):Вот я и говорю - пионер.

Прошу пардона за оффтопик, но Вы не могли бы озвучить свой опыт по времени и по платформам?
Если по крайней мере в два раза больше, я уважительно молчу. Иначе - расцениваю это не больше, чем мелкое хамство :roll: , буду признателен за извинения.

В этом топике мы разбираем возможные варианты хранения кэша. Да, вариант с файловым хранением и трукриптом имеет место быть. Мы с Вами ведем разговор о вариантах с различными базами данных. На MySql у меня кэш Сас-Планеты конечно же есть. Я с него начинал. Со временем попробовал Sqlite, параллельно развивал базы, в итоге по совокупности причин осталась вторая.

Parasite писал(а):да и нигров-юзверей у меня сотни

Я начинаю догадываться, что мы говорим просто о разных задачах. Для индивидуального пользования, о котором я веду речь, Sqlite хорошо. А если делать систему, обслуживающую сотни пользователей, тем более что Вы уточняете, что они африканцы, то Sqlite ни в коем случае нельзя использовать.
Я форум рубоард посмотрел. Если серьезно у Вас несколько десятков гигов и все в одной базе Sqlite - могу только посочувствовать. Это полный кошмар. К тому же качнул SatMap забавы ради, там же в базе ко всему прочему индекс кривой. Это даже для такого пионера, как я очевидно. Для серверного решения это вообще никак не подходит. Если надо раздавать для многих людей, это надо делать по-моему не САС-ом и не СатМапом, а скриптом, непосредственно лезущим в базу и отдающим тайл.
webdev2
Новичок
 
Сообщения: 32
Зарегистрирован: 20 мар 2009, 15:36
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Пред.След.

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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3