View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0001920SAS.Планета[All Projects] Хотелкаpublic07-05-2013 07:0920-06-2016 15:21
Reportervdemidov 
Assigned Tozed 
PrioritynormalSeverityfeatureReproducibilityN/A
StatusresolvedResolutionfixed 
PlatformWindowsOS7OS VersionUltimate
Product Version121010 
Target Version160707Fixed in Version160707 
Summary0001920: Новый тип кэша на основе SQLite3
DescriptionКэш тайлов на основе набора баз SQLite3 по тем же принципам что и кэш на BerkeleyDB.
TagsSQLite, версионный кэш, тайлохранилище
Attached Files

- Relationships
related to 0001919confirmed SAS.Планета Новый тип кэша на основе SQLite3 (в формате MBtiles) 
related to 0001376closedvasketsov SACS.Планета Новый тип кэша на основе SQLite3 (в формате MBtiles и не в формате MBtiles) 
related to 0003078resolvedzed SAS.Планета Кэш SQLite3: функции Delete и SaveTile могут возвращать неопределённый результат 

-  Notes
(0017378)
zed (manager)
16-06-2016 13:04
edited on: 20-06-2016 15:21

Портировал реализацию из SACS (детали см. в 0001376). Работает просто замечательно :)

По сравнению с SACS нету:
- поддержки формата MBTiles и всего с ним связанного;
- сжатия тайлов на лету

Всё остальное идентично, так что если в SACS не использовалось сжатие, то кэши будут совместимы.

Тестируйте ночнушку, ищите баги.

(0017379)
zed (manager)
16-06-2016 14:57

Меня пока что смущает, что в БД используется кодировка UTF-16. Я склоняюсь к тому, чтобы сделать UTF-8.
(0017384)
Tolik (manager)
17-06-2016 05:35
edited on: 17-06-2016 05:36

А расскажите, в чём преимущества/недостатки по сравнению с Беркли?
Он будет устойчивее к сбоям? Например, при зависании/вырубании компа открытый кэш не будет портиться?
Переносить кэш на др. комп легко (просто копированием папки)?
Read only версия кэша есть?

(0017385)
Tolik (manager)
17-06-2016 05:45
edited on: 17-06-2016 05:49

Ну, работает. Радует, что нет непонятной папки env. Почему sqlite viewer не открывает файл кэша? Файл меток открывает.
http://totalcmd.net/plugring/sqliteviewer.html

Чем можно посмотреть, что там внутри? И чем чинить, если покорраптится?

(0017386)
Tolik (manager)
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 (manager)
17-06-2016 06:03
edited on: 17-06-2016 06:09

Карта заполнения строится мгновенно (по сравнению с Беркли).

(0017388)
zed (manager)
17-06-2016 06:51

Работает быстрее, переносить на другой комп проще. Что такое SQLite знает любой школьник, а вот про BerkeleyDB мало кто слышал.

Со сбоями должно быть не хуже (а то и лучше), чем в Беркли.

Файл БД теоретически можно открыть только для чтения, но сейчас это у нас не реализовано. В то же время, через настройки карты всегда можно запретить запись в кэш.

Структура файла простая, посмотреть можно практически любой гляделкой (например, SQLiteStudio). Плагину от тотала не нравится расширение файла.
(0017392)
zed (manager)
17-06-2016 07:41

А нет, с WAL журналом режим только для чтения не совместим: Write-Ahead Logging and Read-Only mode compatible in SQLite3?
(0017402)
Tolik (manager)
17-06-2016 18:14

Всё круто, только надо провести крэш-тесты: запустить на скачку и поубивать процессы. И добавить тулзы для поиска и коррекции ошибок.
(0017403)
zed (manager)
17-06-2016 18:32

Утилиты есть на сайте производителя: http://www.sqlite.org/2016/sqlite-tools-win32-x86-3130000.zip Принцип восстановления описан, например, вот тут: https://habrahabr.ru/post/160629/

Убиванием процесса базу повредить скорее всего не удастся. Тут надо выдёргивать штепсель из розетки.
(0017404)
Garl (manager)
17-06-2016 19:19

а то что при пустой версии становится доступна версия "0" - это здесь писать или другой тикет делать?
(0017405)
zed (manager)
17-06-2016 19:45

Так задумано.
(0017406)
zed (manager)
18-06-2016 06:45

А хотя, надо пофиксить. Только тогда нельзя будет руками задать версию 0. Это будет зарезервированная версия для обозначения "нет версии".
(0017409)
Garl (manager)
18-06-2016 10:34

а "" вместо нуля можно? или банально не отображать версию "0" в списке версий при таком типе кэша...

з.ы.
я пока ни разу не попадал на версию "0"
(0017410)
zed (manager)
18-06-2016 10:41

Если пользователь не указал версию, т.е. версия - пустая строка, то в БД записывается 0 (как число), поскольку в БД поле версии обязательно и по нему индекс строится.

А вот то, что при чтении версии из БД, этот 0 не преобразуется обратно в пустую строку, а воспринимается как настоящая версия, надо исправить.
(0017411)
zed (manager)
18-06-2016 21:26

Исправил кодировку и отображение нулевой версии.

- Users who viewed this issue
User List Anonymous (2868x), proba999 (1x), anf (2x), Garl (11x), Parasite (1x), VMatveev (1x), vdemidov (18x), gma (3x), aflexus (1x), StarvinMarvin (1x), zed (33x), Tolik (20x), DJ VK (1x), Papazol (2x), bk99 (2x)
Total Views 2965
Last View 23-01-2021 02:10

- 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 25xxxx => 160707
16-06-2016 06:59 zed Summary Новый тип кэша на основе SQLite3 (не в формате MBtiles) => Новый тип кэша на основе SQLite3
16-06-2016 06:59 zed Description Updated View Revisions
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 View Revisions
17-06-2016 05:45 Tolik Note Added: 0017385
17-06-2016 05:49 Tolik Note Edited: 0017385 View Revisions
17-06-2016 05:56 Tolik Note Added: 0017386
17-06-2016 05:57 Tolik Note Edited: 0017386 View Revisions
17-06-2016 06:02 Tolik Note Edited: 0017386 View Revisions
17-06-2016 06:03 Tolik Note Added: 0017387
17-06-2016 06:04 Tolik Note Edited: 0017386 View Revisions
17-06-2016 06:06 Tolik Note Edited: 0017387 View Revisions
17-06-2016 06:09 Tolik Note Edited: 0017387 View Revisions
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 View Revisions
20-06-2016 15:21 zed Relationship added related to 0003078



Copyright © 2007 - 2021 SAS.Planet Team