Anonymous | Login | Signup for a new account | 21-11-24 12:28 UTC |
All Projects | SAS.Планета | Домен, сайт, форум, багтрекер | Доработка карты (ZMP) | Переводы и локализации | Прочее |
My View | View Issues | Change Log | Roadmap | Search |
View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0001874 | SAS.Планета | [All Projects] Хотелка | public | 03-04-2013 16:27 | 21-02-2014 21:08 | ||||
Reporter | Parasite | ||||||||
Assigned To | zed | ||||||||
Priority | normal | Severity | tweak | Reproducibility | N/A | ||||
Status | resolved | Resolution | fixed | ||||||
Platform | Windows | OS | Server | OS Version | 2003 | ||||
Product Version | 121010 | ||||||||
Target Version | 131111 | Fixed in Version | 131111 | ||||||
Summary | 0001874: Berkeley cache: READ-ONLY | ||||||||
Description | Достала порча кэша при малейшем глюке САСа\системы и аварийном выходе по трем кнопкам, и последующие многодневные(!) проверки куч оного кэша при восстановлении. Любой зависон САСа и выход по трем кнопкам - извольте каждый раз восстановиться по всему активному на момент выхода кэшу. Это в моем случае занимает около недели причесывания кэша зедовой восстановлялкой - уж больно большой кэш... Делать же его жестко рид-онли со стороны системы - чревато глюками уже в самом САСе. Вот если бы сделать так, чтобы САС его мог открывать свой Беркли-кэш только на чтение...Никакая авария не страшна была бы. | ||||||||
Additional Information | Проблему разумлю в том, что кэш САСом всегда открывается как R\W - и при малейшей аварии извольте получить результаты в виде незавершенных сессий\транзакций и проч., даже если изменения кэша по факту даже и не планировалось. | ||||||||
Tags | BerkeleyDB, ini, read only, БД, авария, краш, настройки, стабильность, только чтение | ||||||||
Attached Files | StorageConfig.ini [^] (129 bytes) 14-06-2013 12:13 | ||||||||
Notes | |
(0011044) zed (manager) 08-04-2013 17:21 |
Вопрос, как это лучше сделать. Причём, нужно что-то универсальное, чтобы работало на любом кэше, а не только в Беркли. Лучшее, что приходит на ум - создавать в папке с кэшем (cache\sat\) файлик abilities.ini и хранить там пользовательские настройки доступа к кэшу. Вариант хранить эти настройки где-либо ещё (в zmp, к примеру) не прокатывает из-за возможности доступа к одному и тому же кэшу как из разных карт, так и из разных САСов, у которых могут быть абсолютно независимые настройки, и единственное, что их может объединять это папка с кэшем. У кого какие мысли? |
(0011045) vasketsov (manager) 08-04-2013 17:55 |
>создавать в папке с кэшем ... файлик .. и хранить там ... настройки доступа к кэшу Абсолютно верное решение. Несомненным плюсом будет автоподхватывание при использовании всяких вторичных точек разбора (типа линков и сетевых шар), а также эти настройки будут копироваться при миграции кэша или бэкапировании простым копированием файлов батником. Да и при работе менеджера кэша (который плевать хотел на zmp) тоже будут использоваться эти настройки. Что-то смущает? |
(0011046) zed (manager) 08-04-2013 18:01 |
Смущает то, что из САСа нельзя будет редактировать этот файлик. Т.е. менять настройки на лету. Иначе, придётся как-то изворачиваться с системой оповещения об изменениях (если такая вообще возможна). А хотелось бы управлять этим режимом прямо из настроек. Плюс, надо как-то блокировать доступ на редактирование этого файлика, пока запущен хоть один экземпляр программы. |
(0011047) vasketsov (manager) 08-04-2013 18:20 |
Так наоборот всё логично получается. Кэш как единая сущность - только для чтения. Эта настройка никакого отношения к конкретному сасу в принципе не может иметь. И на лету править это нелогично. Если запущены несколько сасов - надо пройти и во всех включить доступ, или как? А если между сасами доступа нет, и никак извещение не послать? >хотелось бы управлять этим режимом прямо из настроек Ну и будет что-то типа старых флагов в zmp ))) >что-то универсальное, чтобы работало на любом кэше Зачем? Все файловые вроде как нормально реагируют на то, что права на запись оборваны (разве что неуместный вызов ForceDirectories может нагадить, но это отдельный вопрос). У СУБД свои настройки прав. Для SQLite есть возможность родной настройки работы без доступа на запись. Для GE и GC в принципе неприменимо, они без записи. Только беркли и остаётся. Так что имеет смысл что-нибудь именно для беркли придумать, не обязательно только readonly, там наверняка есть ещё специфичные настройки, например тот же размер страницы. Ну а появится BigData или LocalDB или Tokyo/Kyoto или ещё какая муть - там опять же будут _свои_ специфичные настройки. Заодно не будет проблем, если в одной папке хранить кэши разного типа и переключаться между ними (например один только для чтения, второй - нет). |
(0011050) vdemidov (manager) 08-04-2013 18:51 |
Кстати, я давно хочу писать в папочку кэша информацию о проекции и типе данных, что бы оно выдавало предупреждение. |
(0011051) zed (manager) 08-04-2013 18:55 |
Ну, если там начать сохранять content-type, то менеджеру кэша сильно полегчает - не нужно будет вручную прописывать расширение для каждого хранилища. |
(0011072) xromeo (reporter) 13-04-2013 18:09 |
А я вот сейчас озадачен вариантом "Делать же его жестко рид-онли со стороны системы - чревато глюками уже в самом САСе." - вот хотелось бы, чтобы как раз в этом случае глюков в САСе не было. Актуально в случае расшаривания кэша с правами доступа "Только чтение" для использования на многих других компах в локальной сети. Сейчас кэш хранится тайловый, и проблем нет, но хотелось бы перегнать в Berkeley и чтобы эта схема по-прежнему работала. |
(0011662) zed (manager) 14-06-2013 12:12 |
Итак, чтобы включить Read-Only режим для кэша Беркли, нужно: - закрыть SAS - создать файлик \cache_db\%имя_папки_с_кэшем%\StorageConfig.ini - записать в тот файлик пару строк: [BerkeleyDB] IsReadOnly=1 Всё - при следующем запуске, кэш откроется только для чтения. |
(0011663) zed (manager) 14-06-2013 12:18 |
Приложил файлик StorageConfig.ini со всеми дефолтными параметрами. Можно пробовать изменять. Единственное, рекомендую не трогать параметр DatabasePageSize на живом кэше. |
(0013115) Parasite (administrator) 22-10-2013 14:12 |
Реально ли это делать по-зумно? Например, один зум качаем - а остальные (уже укачанные, у той же карты) как-то сделать R/O? |
(0013116) zed (manager) 22-10-2013 17:12 |
Там каждый файл БД можно открывать в RO по-отдельности, но практического смысла это не имеет - SAS не открывает файлы БД до тех пор, пока ему действительно в них чего-то там не понадобится. Поэтому ты можешь открыть SAS на z1, загрузить область выделения, запустить закачку и ничего больше не трогать - у тебя будут открываться только те sdb, в которые реально нужно что-то записать и которые попадают в твою выделенную область. Ничего другого SAS открывать не станет. Поэтому реально ты рискуешь толь z1, а если и за него стрёмно - включи другую карту в гуе в RO (или RW), для осмотреться и стартануть закачку. Так что тут ничего выдумывать не нужно. |
(0013837) zed (manager) 21-02-2014 19:35 |
Обращаю внимание, что первоначальная идея RO кэша сломана: 0002014:0013835 т.е. теперь эта настройка внезапно переместилась в zmp, что по моему мнению не есть хорошо. |
(0013839) vdemidov (manager) 21-02-2014 21:08 |
Не совсем так. RO можно задать в zmp, в Maps.ini, а сейчас в StorageConfig.ini (поменялось только имя секции, раньше оно было в секции [BerkeleyDB], а сейчас будет в [Common] |
Users who viewed this issue | |
User List | Anonymous (3300x), hrucker (1x) |
Total Views | 3301 |
Last View | 21-11-2024 12:28 |
Issue History | |||
Date Modified | Username | Field | Change |
03-04-2013 16:27 | Parasite | New Issue | |
03-04-2013 16:27 | Parasite | Status | new => assigned |
03-04-2013 16:27 | Parasite | Assigned To | => zed |
07-04-2013 10:05 | vdemidov | Product Version | => 121010 |
07-04-2013 10:05 | vdemidov | Target Version | => 24xxxx |
08-04-2013 17:21 | zed | Note Added: 0011044 | |
08-04-2013 17:55 | vasketsov | Note Added: 0011045 | |
08-04-2013 18:01 | zed | Note Added: 0011046 | |
08-04-2013 18:20 | vasketsov | Note Added: 0011047 | |
08-04-2013 18:51 | vdemidov | Note Added: 0011050 | |
08-04-2013 18:55 | zed | Note Added: 0011051 | |
13-04-2013 18:09 | xromeo | Note Added: 0011072 | |
14-06-2013 12:12 | zed | Note Added: 0011662 | |
14-06-2013 12:13 | zed | File Added: StorageConfig.ini | |
14-06-2013 12:18 | zed | Note Added: 0011663 | |
15-06-2013 15:55 | zed | Status | assigned => resolved |
15-06-2013 15:55 | zed | Fixed in Version | => 131111 |
15-06-2013 15:55 | zed | Resolution | open => fixed |
20-06-2013 06:58 | vdemidov | Target Version | 24xxxx => 131111 |
07-08-2013 16:36 | zed | Tag Attached: BerkeleyDB | |
07-08-2013 16:36 | zed | Tag Attached: ini | |
07-08-2013 16:36 | zed | Tag Attached: БД | |
07-08-2013 16:36 | zed | Tag Attached: настройки | |
07-08-2013 21:41 | cycler | Tag Attached: авария | |
07-08-2013 21:41 | cycler | Tag Attached: краш | |
07-08-2013 21:41 | cycler | Tag Attached: стабильность | |
07-08-2013 21:44 | cycler | Tag Attached: read only | |
07-08-2013 21:44 | cycler | Tag Attached: только чтение | |
22-10-2013 14:12 | Parasite | Note Added: 0013115 | |
22-10-2013 17:12 | zed | Note Added: 0013116 | |
21-02-2014 19:35 | zed | Note Added: 0013837 | |
21-02-2014 21:08 | vdemidov | Note Added: 0013839 |
My View | View Issues | Change Log | Roadmap | Search |
Copyright © 2007 - 2024 SAS.Planet Team |