Thanks! You all have given me much to look at.

-joe

On Friday, January 8, 2021 at 2:56:46 PM UTC-8 k.alex...@gmail.com wrote:

> I was thinking of potential issues if you rebalance the tree as an example.
>>
>> I’m not certain what issues could arise as I’ve never considered a 
>> concurrent data structure that lacks some kind of synchronisation for both 
>> read and writes unless it’s immutable copy-on-write or similar.
>>
>> Do you happen to have references available for further research?
>>
>> You do have to be careful when rebalancing. The goal is to make the 
> rebalancing appear atomic to other reads as they go down the tree. IIRC a 
> technique to do this involves recreating the nodes involved in the 
> rebalance and completing the rebalance by updating a single edge at once. 
> That sounds a lot to me like copy-on-write but IIRC it doesn't require 
> copying the entire subtree.
>
> You might also be interested in some of the below references, although 
> they're all on lock-free and wait-free options. Disclaimer: They're all 
> from my Ph.D advisor. I was working in his lab when most of this work was 
> being done. Most of what I've posted here is based on my memory of their 
> approach.
>
> https://dl.acm.org/doi/10.1145/3391438  
> https://dl.acm.org/doi/10.1145/3016078.2851173 
> https://dl.acm.org/doi/10.1145/2688500.2688551
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/59c67911-1769-4f8b-8c95-1c6a70978dc6n%40googlegroups.com.

Reply via email to