Zannick/logic-graph

Replace rocksdb with relational database (eg sql) for queue and state db

オープン

#222 opened on 2025/02/18

 (14 件のコメント) (0 件のリアクション) (0 人の担当者)Rust (0 件のフォーク)auto 404
enhancementhelp wanted

Repository metrics

Stars
 (4 個のスター)
PR merge metrics
 (PR metrics pending)

説明

Having a relational database with indexes might be better for #141. The new structure I'm envisioning would keep the statedb and use that as the queue by way of indexes:

Mode state progress score elapsed remaining hist prev next in-memory-queue won
lookup = x
insert ... ... ... ... ... ... ... ... ... ...
update = x set min set set set set
process = x set set false
evict = x set true
retrieve = x sort sort sort = false, set true
recover set false if true
solutions sort = true
  • Our statedb lookups are for data at the primary key (state).
  • As we process states, we insert the new states (or update the ones we've found faster routes to), and update the processed states with the next steps.
  • Evicting from the in-memory-queue simply flips the bit.
  • Retrieving states looks for states with the in-memory-queue bit set to false (and then sets them to true)
  • On recovery, we can either retrieve all the elements marked as being in the memory queue, or set them all back to false and perform a retrieve.
  • And we can retrieve solutions directly on recovery as well.

コントリビューターガイド