IRC channel logs
2023-12-16.log
back to list of logs
<Zarutian_iPad>a bit of musing/description of distributed cyclic garbage collection <Zarutian_iPad>I do not recall what the method/way I am going to describe was originally called but I call it lamport timestamp graph colouring with nodeid/vatid relative staleness <Zarutian_iPad>basically at some interval j an 'graph colouring' is started at each node/vat <Zarutian_iPad>each node/vatid has an monotonically increasing counter they increase at some interval <Zarutian_iPad>at each graph colouring the vat/node takes the contents of that counter and its id and make a lamport timestamp <Zarutian_iPad>when an proxyobj/farref is encountered it is added to an set spefic for the remote node/vat <Zarutian_iPad>when the local graph colouring is done the remote nodes/vats are told of the lamport timestamp and which proxyobjects/farrefs have been coloured with it <Zarutian_iPad>when a node/vat recieves such it does a graph colouring with that lamport timestamp <Zarutian_iPad>this way a lamport timestamp percolates throughout the distributed object graph <Zarutian_iPad>at every tick of a lamport clock each vat that knows it has outgoing farrefs coloured with a lamport timestamp originating at the same node/vat gets informed about the newest value of that lamport clock <Zarutian_iPad>then locally each node/vat can see which farrefs have become stale relative to that lamport clock <Zarutian_iPad>btw newest lamport timestamp always wins as the graph colour at each proxyobj/farref <Zarutian_iPad>a stale farref that has been broken means that a node/vat spanning cycle of garbage no longer is an can be dealt with by the distributed acyclic garbage collection <Zarutian_iPad>as most memory safe object based runtimes do not have hooks to do the graph colouring I came up with a possible work around by having a miranda method that basically eventually sends an invocation of itself on all the objects refered by this object <Zarutian_iPad>this graph colouring does not have to happen frequently. Once every hour, day, or week is enough.