SASGIS - SAS.Планета
View Issue Details
0002757SAS.Планета[All Projects] Хотелкаpublic24-06-2015 13:5727-03-2019 07:50
vasketsov 
vdemidov 
normalminorN/A
closedwon't fix 
Windows7Ultimate
 
 
0002757: Реализация тайлового кэша в памяти на основе SQLite или Беркли
Тайловый кэш в памяти по сути используется почти как Key-Value хранилище (в смысле, нет "диапазонных" запросов, так что целочисленный R*tree-индекс не нужен), кроме того, от него не требуется persistance, а про автоматическое восстановление после сбоев и думать нет необходимости.

Соответственно, возможно что получится ускорить его работу и сделать его по-настоящему версионным, если сделать его на основе SQLite или Беркли.

У SQLite есть возможность открыть базу :memory:, раскрутив по максимуму все локи, убрав синхронизации внутри движка (пока идёт SELECT, выполнение DELETE в любом случае не нарушит согласованности данных, а там вся задача-то - блоб дернуть) и т.п.
Родной INTEGER там Int64 - так что x и y можно смело паковать вместе в одно поле id. Останется версия тайла + возможно некий идентификатор собственно карты или хранилища (который не меняется, пока программа работает, хоть даже Pointer, а при смерти интерфейса можно вычищать кэш в памяти). С идентификатором хранилища - кэш в памяти можно вообще сделать один на все хранилища, и чистить его по таймеру надо будет ровно также, только легче. Без - значит у каждого свой, как и сейчас.

У Беркли наверняка есть аналогичные возможности, только надо будет настоящий Key соорудить (м.б. для приватного кэша в памяти для каждого хранилища отдельно даже будет быстрее всего работать).

Это всё к тому, что есть подозрение, что вменяемый индекс по Key позволит выполнять операции над кэшем в памяти быстрее, чем сейчас, когда фактически Key строковый.
No tags attached.
Issue History
24-06-2015 13:57vasketsovNew Issue
30-07-2015 08:53vdemidovNote Added: 0016244
27-03-2019 07:50vdemidovStatusnew => resolved
27-03-2019 07:50vdemidovResolutionopen => won't fix
27-03-2019 07:50vdemidovAssigned To => vdemidov
27-03-2019 07:50vdemidovStatusresolved => closed

Notes
(0016244)
vdemidov   
30-07-2015 08:53   
Ну, то что строковый индекс нужно менять тут сомнений нет. Но вот стоит ли для этих целей палить из пушки по воробьям у меня есть сомнения. Ограничения на общий расход памяти на процесс это не снимет, а только добавит накладных расходов. ИМХО просто пора переделать кэш в памяти на хэш таблицу.