SASGIS - SAS.Планета |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0001920 | SAS.Планета | [All Projects] Хотелка | public | 07-05-2013 07:09 | 20-06-2016 15:21 |
|
Reporter | vdemidov | |
Assigned To | zed | |
Priority | normal | Severity | feature | Reproducibility | N/A |
Status | resolved | Resolution | fixed | |
Platform | Windows | OS | 7 | OS Version | Ultimate |
Product Version | 121010 | |
Target Version | 160707 | Fixed in Version | 160707 | |
|
Summary | 0001920: Новый тип кэша на основе SQLite3 |
Description | Кэш тайлов на основе набора баз SQLite3 по тем же принципам что и кэш на BerkeleyDB. |
Steps To Reproduce | |
Additional Information | |
Tags | SQLite, версионный кэш, тайлохранилище |
Relationships | related to | 0001919 | confirmed | | SAS.Планета | Новый тип кэша на основе SQLite3 (в формате MBtiles) | related to | 0001376 | closed | vasketsov | SACS.Планета | Новый тип кэша на основе SQLite3 (в формате MBtiles и не в формате MBtiles) | related to | 0003078 | resolved | zed | SAS.Планета | Кэш SQLite3: функции Delete и SaveTile могут возвращать неопределённый результат |
|
Attached Files | |
|
Issue History |
Date Modified | Username | Field | Change |
07-05-2013 07:09 | vdemidov | New Issue | |
07-05-2013 07:09 | vdemidov | Issue generated from: 0001919 | |
07-05-2013 07:09 | vdemidov | Relationship added | related to 0001919 |
07-05-2013 07:09 | vdemidov | Status | new => confirmed |
09-10-2015 13:24 | vdemidov | Tag Attached: тайлохранилище | |
16-06-2016 06:58 | zed | Assigned To | => zed |
16-06-2016 06:58 | zed | Status | confirmed => assigned |
16-06-2016 06:59 | zed | Target Version | 26xxxx => 160707 |
16-06-2016 06:59 | zed | Summary | Новый тип кэша на основе SQLite3 (не в формате MBtiles) => Новый тип кэша на основе SQLite3 |
16-06-2016 06:59 | zed | Description Updated | bug_revision_view_page.php?rev_id=6958#r6958 |
16-06-2016 07:00 | zed | Tag Attached: SQLite | |
16-06-2016 07:00 | zed | Tag Attached: версионный кэш | |
16-06-2016 07:01 | zed | Relationship added | related to 0001376 |
16-06-2016 13:04 | zed | Note Added: 0017378 | |
16-06-2016 14:57 | zed | Note Added: 0017379 | |
17-06-2016 05:35 | Tolik | Note Added: 0017384 | |
17-06-2016 05:36 | Tolik | Note Edited: 0017384 | bug_revision_view_page.php?bugnote_id=17384#r6960 |
17-06-2016 05:45 | Tolik | Note Added: 0017385 | |
17-06-2016 05:49 | Tolik | Note Edited: 0017385 | bug_revision_view_page.php?bugnote_id=17385#r6962 |
17-06-2016 05:56 | Tolik | Note Added: 0017386 | |
17-06-2016 05:57 | Tolik | Note Edited: 0017386 | bug_revision_view_page.php?bugnote_id=17386#r6964 |
17-06-2016 06:02 | Tolik | Note Edited: 0017386 | bug_revision_view_page.php?bugnote_id=17386#r6965 |
17-06-2016 06:03 | Tolik | Note Added: 0017387 | |
17-06-2016 06:04 | Tolik | Note Edited: 0017386 | bug_revision_view_page.php?bugnote_id=17386#r6966 |
17-06-2016 06:06 | Tolik | Note Edited: 0017387 | bug_revision_view_page.php?bugnote_id=17387#r6968 |
17-06-2016 06:09 | Tolik | Note Edited: 0017387 | bug_revision_view_page.php?bugnote_id=17387#r6969 |
17-06-2016 06:51 | zed | Note Added: 0017388 | |
17-06-2016 07:41 | zed | Note Added: 0017392 | |
17-06-2016 18:14 | Tolik | Note Added: 0017402 | |
17-06-2016 18:32 | zed | Note Added: 0017403 | |
17-06-2016 19:19 | Garl | Note Added: 0017404 | |
17-06-2016 19:45 | zed | Note Added: 0017405 | |
18-06-2016 06:45 | zed | Note Added: 0017406 | |
18-06-2016 10:34 | Garl | Note Added: 0017409 | |
18-06-2016 10:41 | zed | Note Added: 0017410 | |
18-06-2016 21:26 | zed | Note Added: 0017411 | |
20-06-2016 15:20 | zed | Status | assigned => resolved |
20-06-2016 15:20 | zed | Fixed in Version | => 160707 |
20-06-2016 15:20 | zed | Resolution | open => fixed |
20-06-2016 15:21 | zed | Note Edited: 0017378 | bug_revision_view_page.php?bugnote_id=17378#r6997 |
20-06-2016 15:21 | zed | Relationship added | related to 0003078 |
Notes |
|
(0017378)
|
zed
|
16-06-2016 13:04
(edited on: 20-06-2016 15:21) |
|
Портировал реализацию из SACS (детали см. в 0001376). Работает просто замечательно :)
По сравнению с SACS нету:
- поддержки формата MBTiles и всего с ним связанного;
- сжатия тайлов на лету
Всё остальное идентично, так что если в SACS не использовалось сжатие, то кэши будут совместимы.
Тестируйте ночнушку, ищите баги.
|
|
|
(0017379)
|
zed
|
16-06-2016 14:57
|
|
Меня пока что смущает, что в БД используется кодировка UTF-16. Я склоняюсь к тому, чтобы сделать UTF-8. |
|
|
(0017384)
|
Tolik
|
17-06-2016 05:35
(edited on: 17-06-2016 05:36) |
|
А расскажите, в чём преимущества/недостатки по сравнению с Беркли?
Он будет устойчивее к сбоям? Например, при зависании/вырубании компа открытый кэш не будет портиться?
Переносить кэш на др. комп легко (просто копированием папки)?
Read only версия кэша есть?
|
|
|
(0017385)
|
Tolik
|
17-06-2016 05:45
(edited on: 17-06-2016 05:49) |
|
Ну, работает. Радует, что нет непонятной папки env. Почему sqlite viewer не открывает файл кэша? Файл меток открывает.
http://totalcmd.net/plugring/sqliteviewer.html
Чем можно посмотреть, что там внутри? И чем чинить, если покорраптится?
|
|
|
(0017386)
|
Tolik
|
17-06-2016 05:56
(edited on: 17-06-2016 06:04) |
|
Конверсия кэша Беркли -> sqlite прошла якобы успешно, файлы сгенерились, но ничего не открывается. Создался sqlite.log (кстати, в UTF-16, но без хедера, так что гляделкой открывается как binary), в нём много таких строк:
2016-06-17 08:51:16.445 (replace) no such column: image ( error code: 1)
P.S. Пардон, всё работает, просто указал не то расширение файла (на фиг оно вообще нужно, когда кэш в БД?!) Лог ошибок теперь не создался.
|
|
|
(0017387)
|
Tolik
|
17-06-2016 06:03
(edited on: 17-06-2016 06:09) |
|
Карта заполнения строится мгновенно (по сравнению с Беркли).
|
|
|
(0017388)
|
zed
|
17-06-2016 06:51
|
|
Работает быстрее, переносить на другой комп проще. Что такое SQLite знает любой школьник, а вот про BerkeleyDB мало кто слышал.
Со сбоями должно быть не хуже (а то и лучше), чем в Беркли.
Файл БД теоретически можно открыть только для чтения, но сейчас это у нас не реализовано. В то же время, через настройки карты всегда можно запретить запись в кэш.
Структура файла простая, посмотреть можно практически любой гляделкой (например, SQLiteStudio). Плагину от тотала не нравится расширение файла. |
|
|
(0017392)
|
zed
|
17-06-2016 07:41
|
|
|
|
(0017402)
|
Tolik
|
17-06-2016 18:14
|
|
Всё круто, только надо провести крэш-тесты: запустить на скачку и поубивать процессы. И добавить тулзы для поиска и коррекции ошибок. |
|
|
(0017403)
|
zed
|
17-06-2016 18:32
|
|
Утилиты есть на сайте производителя: http://www.sqlite.org/2016/sqlite-tools-win32-x86-3130000.zip Принцип восстановления описан, например, вот тут: https://habrahabr.ru/post/160629/
Убиванием процесса базу повредить скорее всего не удастся. Тут надо выдёргивать штепсель из розетки. |
|
|
(0017404)
|
Garl
|
17-06-2016 19:19
|
|
а то что при пустой версии становится доступна версия "0" - это здесь писать или другой тикет делать? |
|
|
(0017405)
|
zed
|
17-06-2016 19:45
|
|
|
|
(0017406)
|
zed
|
18-06-2016 06:45
|
|
А хотя, надо пофиксить. Только тогда нельзя будет руками задать версию 0. Это будет зарезервированная версия для обозначения "нет версии". |
|
|
(0017409)
|
Garl
|
18-06-2016 10:34
|
|
а "" вместо нуля можно? или банально не отображать версию "0" в списке версий при таком типе кэша...
з.ы.
я пока ни разу не попадал на версию "0" |
|
|
(0017410)
|
zed
|
18-06-2016 10:41
|
|
Если пользователь не указал версию, т.е. версия - пустая строка, то в БД записывается 0 (как число), поскольку в БД поле версии обязательно и по нему индекс строится.
А вот то, что при чтении версии из БД, этот 0 не преобразуется обратно в пустую строку, а воспринимается как настоящая версия, надо исправить. |
|
|
(0017411)
|
zed
|
18-06-2016 21:26
|
|
Исправил кодировку и отображение нулевой версии. |
|