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