Использование в Sas.Планета кеша в формате Berkeley
Модератор: Tolik
- xromeo
- Постигающий Дао
- Сообщения: 189
- Зарегистрирован: 21 июл 2009, 20:42
- Благодарил (а): 36 раз
- Поблагодарили: 9 раз
Re: Использование в Sas.Планета кеша в формате Berkeley
У меня возник вопрос, который обсуждался в багтрекере и был, как утверждается, решён: http://sasgis.org/mantis/view.php?id=1874
Попробовал организовать ReadOnly-кэш Berkeley. Сделал всё как там написано. В папку cache_db\sat пробовал класть файл StorageConfig.ini, в который вписано либо это -
либо это:
В итоге эффекта нет в обоих случаях. Как проявляется: перезапускаю программу, смотрю карту, потом программу закрываю и вижу, что в подпапке sat\env файл log.* обновился, дата и время стали на момент закрытия программы. То есть открыт он был на запись. А если папке cache_db средствами Windows назначить доступ только для чтения, то программа вообще не отображает карту, вместо неё ошибку "Error #1: Operation not permitted".
Пробовал на официальном релизе 140505 и на текущем ночном билде 141023.8255.
ВОПРОС: что и где я делаю не так?
Попробовал организовать ReadOnly-кэш Berkeley. Сделал всё как там написано. В папку cache_db\sat пробовал класть файл StorageConfig.ini, в который вписано либо это -
Код: Выделить всё
[BerkeleyDB]
IsReadOnly=1
Код: Выделить всё
[Common]
IsReadOnly=1
Пробовал на официальном релизе 140505 и на текущем ночном билде 141023.8255.
ВОПРОС: что и где я делаю не так?
-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Использование в Sas.Планета кеша в формате Berkeley
Писать надо в секцию Common, о чём чётко сказано в тикете: http://sasgis.org/mantis/view.php?id=1874#c13839xromeo писал(а):В итоге эффекта нет в обоих случаях.
Анализ содержимого лога показал, что там совсем незначительное изменение записывается, хотя, в общем-то и от этого наверное можно избавиться.xromeo писал(а):В итоге эффекта нет в обоих случаях. Как проявляется: перезапускаю программу, смотрю карту, потом программу закрываю и вижу, что в подпапке sat\env файл log.* обновился
Всё, что находится в папке env, так или иначе всегда открывается на запись и с этим ничего не поделать. А вот будет ли туда что-то реально писаться, это уже другой вопрос. Очевидно, что в некоторые файлы запись будет производиться всегда, а конкретно в лог, скорее всего можно сделать, чтобы ничего дополнительного не писалось.xromeo писал(а):То есть открыт он был на запись.
- xromeo
- Постигающий Дао
- Сообщения: 189
- Зарегистрирован: 21 июл 2009, 20:42
- Благодарил (а): 36 раз
- Поблагодарили: 9 раз
Re: Использование в Sas.Планета кеша в формате Berkeley
Я хочу уточнить... Собственно, мне надо решить конкретную задачу:Всё, что находится в папке 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
Будет работать или нет, я вам не скажу, но скажу одно: кэш Беркли так использовать нельзя. Это не сетевая база данных, а встраиваемая. Этим всё сказано.
- xromeo
- Постигающий Дао
- Сообщения: 189
- Зарегистрирован: 21 июл 2009, 20:42
- Благодарил (а): 36 раз
- Поблагодарили: 9 раз
Re: Использование в Sas.Планета кеша в формате Berkeley
Ну фактически в данном случае даже не важно, что тут сетевой доступ, важно то, что хочется иметь возможность работать с таким кэшем в режиме чтения из папки, физически закрытой на любую запись (способ запрета записи не важен). Если это тоже противоречит принципу работы с базой данных, увы, придется для данного варианта использовать тайловый кэш. Но в любом случае попробую, за ответы - спасибо.zed писал(а):Будет работать или нет, я вам не скажу, но скажу одно: кэш Беркли так использовать нельзя. Это не сетевая база данных, а встраиваемая. Этим всё сказано.
-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Использование в Sas.Планета кеша в формате Berkeley
Противоречит. Лучше используйте БД, которые заточены на сетевую работу - у нас же есть поддержка СУБД в конце концов!xromeo писал(а):Если это тоже противоречит принципу работы с базой данных
- xromeo
- Постигающий Дао
- Сообщения: 189
- Зарегистрирован: 21 июл 2009, 20:42
- Благодарил (а): 36 раз
- Поблагодарили: 9 раз
Re: Использование в Sas.Планета кеша в формате Berkeley
Не вариант. Цель не оправдывает средства. Представьте, кэш объёмом более 100 Гб, готовый, который использовался на одном компе, а теперь надо использовать ещё на двух... и теперь надо выбирать какую-то субд, разбираться с ее настройками, устанавливать на все машины, ну и вдобавок как-то конвертировать из Беркли в эту СУБД - 1) разобраться как, 2) представить себе, сколько это в принципе займёт времени. Уж намного проще по старинке, распаковать кэш в тайловый на VHD-том и его расшаривать в режиме рид-онли.используйте БД, которые заточены на сетевую работу - у нас же есть поддержка СУБД в конце концов!
А что касается Berkeley-кэша - получается так, что он подходит только для однопользовательского режима. Один компьютер - один кэш - один пользователь.