I ran into [Ctries](https://en.wikipedia.org/wiki/Ctrie) they other day and 
found them intriguing. It extends HAMT (trie hash maps) to be concurrent and 
provide non-blocking snapshots. Anyone tried implementing one in Nim? A quick 
search didn't yield anything.

What particularly seemed interesting to me was creation of concurrent safe 
iterators in `O(1)` time using the snapshots. See the Zephyr RTOS kernel makes 
extensive use of singly-linked lists to implement their thread safe queues so 
they could concurrently update and iterate on them. However their kernel queues 
were unbounded which sorta bugs me.

Might Ctrie's be a good alternative for that sort of low level system data 
structure? I haven't fully thought through the details, just ideating. Perhaps 
it'd be useful for something like sharing/synchronizing pages of memory. 
Combine that with the ability to make non-blocking iterators seems handy.

Reply via email to