This commit is contained in:
Dmitry Zuikov 2024-09-19 12:19:57 +03:00
parent 6ace073d9c
commit 0c38bbf28c
1 changed files with 29 additions and 0 deletions

View File

@ -0,0 +1,29 @@
TODO: hbs2-peer-queues
$workflow: backlog
Сделать механизм очередей ( циклических FIFO буферов )
с управлением ( put/get ) по RPC
hbs2-peer постоянно в памяти;
Тогда мы решаем проблемы блокировок в sqlite:
Процесс продюсер -- пишет в очередь через hbs2-peer ( на диск )
Процесс консьюмер -- читает оттуда и обновляет БД, когда к этому
готов.
Таким образом, мы избегаем проблем с блокировками и
получаем понятный асинхронный механизм взаимодействия
между разными программами из hbs2.
Технически их можно сделать на основе компактов, в каждый
compact пишутся сообщения в формате (n, bytestring), после
чтения консьюмером -- сообщения удаляются.
По превышению файлом компакта некоего размера --
производим компактизацию, т.е начинаем писать в новый
файл, а старый удаляем, как только в нём не останется
ничего для чтения... Ну или как-то так.