Форматы кеша, поддерживаемые программой
Модератор: Tolik
-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Форматы кеша, поддерживаемые программой
У тайлового кэша это TMapType.TileExportToFile, в Беркли - свой метод, никаким боком с TMapType и TFileStorage не связанный: TThreadExportToBDB.TileExportToRemoteBDB
Re: Форматы кеша, поддерживаемые программой
Ну грустно, чё сказать, если не сказать грубее.zed писал(а):У тайлового кэша это TMapType.TileExportToFile
Вместо полноценного интерфейса какие-то затычки и прокладки по коду.
Вызов ForceDirectories снаружи "инкапсулятора" хранилища вообще выглядит как не знаю что, ибо ForceDirectories - это исключительно внутреннее половое горе хранилища, а никак не карты.
-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Форматы кеша, поддерживаемые программой
guf писал(а):В итого сконвертировал порядка 2.7 миллионов тайлов в 105 файлов базы беркли, прогнал по получившимся файлам db_verify.exe - не найдено ни 1 ошибки. Тоесть все спокойно конвертиться вроде. Только субъективно экспорт в беркли был дольше по времени, на эти 2.7 миллиона (вес ~6 гб) потратил времени чуть ли не треть от того, что потратил до этого на 23 миллиона (вес ~103 гб).
Это всё транзакции, чтоб им неладно. Ситуация получается следующая, при записи тайла в кэш, он сперва записывается в файлик env/log.xxxx, а затем только в *.sdb. Это придаёт кэшу свойство неубиваемости (насколько это возможно) при крахах системы и саса, но раза в 2 замедляет запись в кэш (теоретически, специально замеров не проводил пока). Есть и альтернатива: всё, что находится в папке env можно заставить держать в памяти, но получаем минусы а) одновременно кэшем может пользоваться только одна программа и б) если что-то пойдёт не так и сас скрэшится, то после перезапуска он не сможет восстановить битые sdb до нормального состояния (впрочем, открыть "слегка" побитые файлы он всё же сможет, но db_verify таки будет писать DB_VERIFY_BAD). Т.е. в случае краха, юзеру нужно запускать проверку и восстановление sdb самостоятельно, что для "обычного домашнего пользователя" явно неприемлемо. В ini я наверное вынесу эту настройку, чтобы продвинутые могли включать этот режим на свой страх и риск.
Беркли ни при чём, это общая недоработка.guf писал(а): А еще, бага не бага, фича не фича - не понял, но я программу просто погонял немного, ради интереса вообще разные файлы выделений открывал, у меня есть обзорный на весь мир вот с таким содержимым:Так вот эта версия при открытии поругалась на значение координаты больше 85 и вылетела с ошибкой. Этот файл выделения сделан в последней стабильной версии и в других версиях до этого открывался нормально, как минимум я первый раз беркли тестировал по этому выделению тоже экспорт делал спокойно.Код: Выделить всё
[HIGHLIGHTING] zoom=1 PointLon_1=-180 PointLat_1=85,0511287798066 PointLon_2=180 PointLat_2=85,0511287798066 PointLon_3=180 PointLat_3=-85,0511287798066 PointLon_4=-180 PointLat_4=-85,0511287798066 PointLon_5=-180 PointLat_5=85,0511287798066
P.S. Да, и таки разобрался, как удалять из sdb линки на файлы лога:
Код: Выделить всё
for /r %%i in (*.sdb) do (
db_load -r lsn %%i >> lsn.log 2>> lsn.err.log
)-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Форматы кеша, поддерживаемые программой
Ну так SaveTile пользоваться по-определению нельзя - он же сохраняет тайл в текущий кэш, а нам надо в произвольную папку его экспортнуть.vasketsov писал(а):Ну грустно, чё сказать, если не сказать грубее.zed писал(а):У тайлового кэша это TMapType.TileExportToFile
Вместо полноценного интерфейса какие-то затычки и прокладки по коду.
Вызов ForceDirectories снаружи "инкапсулятора" хранилища вообще выглядит как не знаю что, ибо ForceDirectories - это исключительно внутреннее половое горе хранилища, а никак не карты.
Re: Форматы кеша, поддерживаемые программой
Ну так академически строгое решение без лишнего кода - это когда на входе в процу есть 2 хранилища (self+левое), соответственно из одного берём, во второе кладём.zed писал(а):Ну так SaveTile пользоваться по-определению нельзя - он же сохраняет тайл в текущий кэш, а нам надо в произвольную папку его экспортнуть.
И абсолютно фиолетово, импорт, экспорт, копирование или сепулькирование.
И никаких размножений таких процедур экспорта по типам хранилищ.
-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Форматы кеша, поддерживаемые программой
Вот, заодно и причеши, как считаешь правильнымvasketsov писал(а):И никаких размножений таких процедур экспорта по типам хранилищ.
- vdemidov
- Гуру
- Сообщения: 1687
- Зарегистрирован: 12 дек 2008, 13:10
- Откуда: Киев
- Благодарил (а): 191 раз
- Поблагодарили: 157 раз
Re: Форматы кеша, поддерживаемые программой
Только сначала в соответствующем разделе форума обсудим планы.zed писал(а):Вот, заодно и причеши, как считаешь правильнымvasketsov писал(а):И никаких размножений таких процедур экспорта по типам хранилищ.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Re: Форматы кеша, поддерживаемые программой
Безусловно. Но до этого ещё далеко.vdemidov писал(а):Только сначала в соответствующем разделе форума обсудим планы.
-
Tolik
- Гуру
- Сообщения: 2604
- Зарегистрирован: 28 янв 2011, 10:38
- Благодарил (а): 283 раза
- Поблагодарили: 587 раз
Re: Форматы кеша, поддерживаемые программой
Опять печальная новость, уж извиняйте.
Несмотра на транзакции, БД покорраптилась, не открывается вообще.
Все файлы sdb в порядке (verify не находит ошибок), логи есть - два файла log.* и прочие.
Всё пропало при попытке скачать область (на z16), перед этим была включена карта заполнения для этого зума - не было ни одного тайла. Ни один файл и не скачался, программа зависла.
P.S. При попытке переименовать папку с плохим кэшем ничего не получается (хотя САС закрыт). Unlocker не может найти причину и переименовать тоже не может.
P.P.S. Однако, у меня висит 3 процесса SASPlanet
Убивание, конечно, помогает.
То есть при открытии Планеты с этим битым кэшем она сразу виснет, при закрытии окна делает вид, что закрылась, но процесс остаётся.
Win7.
P.P.P.S. Удаление папки env и восстановление sdb этим бат-файлом не помогает:
Несмотра на транзакции, БД покорраптилась, не открывается вообще.
Все файлы sdb в порядке (verify не находит ошибок), логи есть - два файла log.* и прочие.
Всё пропало при попытке скачать область (на z16), перед этим была включена карта заполнения для этого зума - не было ни одного тайла. Ни один файл и не скачался, программа зависла.
P.S. При попытке переименовать папку с плохим кэшем ничего не получается (хотя САС закрыт). Unlocker не может найти причину и переименовать тоже не может.
P.P.S. Однако, у меня висит 3 процесса SASPlanet
То есть при открытии Планеты с этим битым кэшем она сразу виснет, при закрытии окна делает вид, что закрылась, но процесс остаётся.
Win7.
P.P.P.S. Удаление папки env и восстановление sdb этим бат-файлом не помогает:
Код: Выделить всё
for /r %%i in (*.sdb) do (
c:\ut\SASPlanet.Nightly\db_load -r lsn "%%i" >> lsn.log 2>> lsn.err.log
)
Последний раз редактировалось Tolik 02 фев 2012, 22:29, всего редактировалось 1 раз.