View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0002757 | SAS.Планета | Хотелка / Feature request | public | 24-06-2015 13:57 | 27-03-2019 07:50 |
| Reporter | vasketsov | Assigned To | vdemidov | ||
| Priority | normal | Severity | minor | Reproducibility | N/A |
| Status | closed | Resolution | won't fix | ||
| Platform | Windows | OS | 7 | OS Version | Ultimate |
| Summary | 0002757: Реализация тайлового кэша в памяти на основе SQLite или Беркли | ||||
| Description | Тайловый кэш в памяти по сути используется почти как Key-Value хранилище (в смысле, нет "диапазонных" запросов, так что целочисленный R*tree-индекс не нужен), кроме того, от него не требуется persistance, а про автоматическое восстановление после сбоев и думать нет необходимости. Соответственно, возможно что получится ускорить его работу и сделать его по-настоящему версионным, если сделать его на основе SQLite или Беркли. У SQLite есть возможность открыть базу :memory:, раскрутив по максимуму все локи, убрав синхронизации внутри движка (пока идёт SELECT, выполнение DELETE в любом случае не нарушит согласованности данных, а там вся задача-то - блоб дернуть) и т.п. Родной INTEGER там Int64 - так что x и y можно смело паковать вместе в одно поле id. Останется версия тайла + возможно некий идентификатор собственно карты или хранилища (который не меняется, пока программа работает, хоть даже Pointer, а при смерти интерфейса можно вычищать кэш в памяти). С идентификатором хранилища - кэш в памяти можно вообще сделать один на все хранилища, и чистить его по таймеру надо будет ровно также, только легче. Без - значит у каждого свой, как и сейчас. У Беркли наверняка есть аналогичные возможности, только надо будет настоящий Key соорудить (м.б. для приватного кэша в памяти для каждого хранилища отдельно даже будет быстрее всего работать). Это всё к тому, что есть подозрение, что вменяемый индекс по Key позволит выполнять операции над кэшем в памяти быстрее, чем сейчас, когда фактически Key строковый. | ||||
| Tags | No tags attached. | ||||
|
|
Ну, то что строковый индекс нужно менять тут сомнений нет. Но вот стоит ли для этих целей палить из пушки по воробьям у меня есть сомнения. Ограничения на общий расход памяти на процесс это не снимет, а только добавит накладных расходов. ИМХО просто пора переделать кэш в памяти на хэш таблицу. |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 24-06-2015 13:57 | vasketsov | New Issue | |
| 30-07-2015 08:53 | vdemidov | Note Added: 0016244 | |
| 27-03-2019 07:50 | vdemidov | Status | new => resolved |
| 27-03-2019 07:50 | vdemidov | Resolution | open => won't fix |
| 27-03-2019 07:50 | vdemidov | Assigned To | => vdemidov |
| 27-03-2019 07:50 | vdemidov | Status | resolved => closed |
| 08-08-2025 13:24 | zed | Category | Хотелка => Хотелка / Feature request |