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

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

Модератор: Tolik

zed
Гуру
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз
Поблагодарили: 568 раз

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

Сообщение zed »

Значит это баг.
zed
Гуру
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз
Поблагодарили: 568 раз

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

Сообщение zed »

Аватара пользователя
xromeo
Постигающий Дао
Сообщения: 189
Зарегистрирован: 21 июл 2009, 20:42
Благодарил (а): 36 раз
Поблагодарили: 9 раз

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

Сообщение xromeo »

У меня возник вопрос, который обсуждался в багтрекере и был, как утверждается, решён: http://sasgis.org/mantis/view.php?id=1874

Попробовал организовать ReadOnly-кэш Berkeley. Сделал всё как там написано. В папку cache_db\sat пробовал класть файл StorageConfig.ini, в который вписано либо это -

Код: Выделить всё

[BerkeleyDB]
IsReadOnly=1
либо это:

Код: Выделить всё

[Common]
IsReadOnly=1
В итоге эффекта нет в обоих случаях. Как проявляется: перезапускаю программу, смотрю карту, потом программу закрываю и вижу, что в подпапке sat\env файл log.* обновился, дата и время стали на момент закрытия программы. То есть открыт он был на запись. А если папке cache_db средствами Windows назначить доступ только для чтения, то программа вообще не отображает карту, вместо неё ошибку "Error #1: Operation not permitted".

Пробовал на официальном релизе 140505 и на текущем ночном билде 141023.8255.

ВОПРОС: что и где я делаю не так?
zed
Гуру
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз
Поблагодарили: 568 раз

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

Сообщение zed »

xromeo писал(а):В итоге эффекта нет в обоих случаях.
Писать надо в секцию Common, о чём чётко сказано в тикете: http://sasgis.org/mantis/view.php?id=1874#c13839
xromeo писал(а):В итоге эффекта нет в обоих случаях. Как проявляется: перезапускаю программу, смотрю карту, потом программу закрываю и вижу, что в подпапке sat\env файл log.* обновился
Анализ содержимого лога показал, что там совсем незначительное изменение записывается, хотя, в общем-то и от этого наверное можно избавиться.
xromeo писал(а):То есть открыт он был на запись.
Всё, что находится в папке env, так или иначе всегда открывается на запись и с этим ничего не поделать. А вот будет ли туда что-то реально писаться, это уже другой вопрос. Очевидно, что в некоторые файлы запись будет производиться всегда, а конкретно в лог, скорее всего можно сделать, чтобы ничего дополнительного не писалось.
zed
Гуру
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз
Поблагодарили: 568 раз

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

Сообщение zed »

Аватара пользователя
xromeo
Постигающий Дао
Сообщения: 189
Зарегистрирован: 21 июл 2009, 20:42
Благодарил (а): 36 раз
Поблагодарили: 9 раз

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

Сообщение xromeo »

Всё, что находится в папке env, так или иначе всегда открывается на запись и с этим ничего не поделать.
Я хочу уточнить... Собственно, мне надо решить конкретную задачу:

1. В локальную сеть объединены несколько компьютеров, на всех них установлена SASPlanet.
2. Кэш пополняется только на одной из машин, имеющей сетевое имя COMPINET, которая имеет выход в интернет, остальные машины сети выхода в интернет не имеют.
3. Кэш на машине COMPINET имеет формат Berkeley, и сделан в локальной сети общим сетевым ресурсом "cache_db" с правами доступа "Только чтение".
4. С других машин доступ к кэшу осуществляется по сетевому имени вида "\\COMPINET\cache_db". Режим - только чтение. Допускается одновременный доступ с нескольких компьютеров.

Нужно, чтобы эта схема работала.

С упомянутым исправлением это должно работать? Или совсем никак не вариант?
zed
Гуру
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз
Поблагодарили: 568 раз

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

Сообщение zed »

Будет работать или нет, я вам не скажу, но скажу одно: кэш Беркли так использовать нельзя. Это не сетевая база данных, а встраиваемая. Этим всё сказано.
Аватара пользователя
xromeo
Постигающий Дао
Сообщения: 189
Зарегистрирован: 21 июл 2009, 20:42
Благодарил (а): 36 раз
Поблагодарили: 9 раз

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

Сообщение xromeo »

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

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

Сообщение zed »

xromeo писал(а):Если это тоже противоречит принципу работы с базой данных
Противоречит. Лучше используйте БД, которые заточены на сетевую работу - у нас же есть поддержка СУБД в конце концов!
Аватара пользователя
xromeo
Постигающий Дао
Сообщения: 189
Зарегистрирован: 21 июл 2009, 20:42
Благодарил (а): 36 раз
Поблагодарили: 9 раз

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

Сообщение xromeo »

используйте БД, которые заточены на сетевую работу - у нас же есть поддержка СУБД в конце концов!
Не вариант. Цель не оправдывает средства. Представьте, кэш объёмом более 100 Гб, готовый, который использовался на одном компе, а теперь надо использовать ещё на двух... и теперь надо выбирать какую-то субд, разбираться с ее настройками, устанавливать на все машины, ну и вдобавок как-то конвертировать из Беркли в эту СУБД - 1) разобраться как, 2) представить себе, сколько это в принципе займёт времени. Уж намного проще по старинке, распаковать кэш в тайловый на VHD-том и его расшаривать в режиме рид-онли.

А что касается Berkeley-кэша - получается так, что он подходит только для однопользовательского режима. Один компьютер - один кэш - один пользователь.
Ответить

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