Hi Stefan,

thanks for your reply!

2012/5/13 Stefan Eilemann <[email protected]>:
> If you've had a previous object which you are going to abandon, you have to 
> unmap/release it. The design looks somewhat fishy, since you're recreating 
> children objects when a child changes? I would expect this to happen only if 
> the child itself is a different object.

You are right, I guess I didn't really think this through...
This must also be the reason why manipulations on graph nodes are only
passed on, if I set the dirty bits for children on all nodes residing
above them in the graph.
However I can't really figure out a way to implement a correct
synchronization behavior, without creating a new node instance every
time.

For reference this is how my commit() / syc() implementation currently
looks like in the DistNode class:
        co::uint128_t DistNode::commit( const uint32_t incarnation)
        {
                if(LeftChild)
                {
                        _leftChildVersion = LeftChild->commit(incarnation);
                }
                if(RightSibling)
                {
                        _rightSiblingVersion = 
RightSibling->commit(incarnation);
                }

                return co::Serializable::commit(incarnation);
        }

        co::uint128_t DistNode::sync( const co::uint128_t& version)
        {

                if(LeftChild)
                        LeftChild->sync(_leftChildVersion);
                if(RightSibling)
                        RightSibling->sync(_rightSiblingVersion);

                return co::Serializable::sync(version);
        }

This approach seems to be the reason why I ran into this problem in
the first place.
I would be super happy, if you could give me some more advice on how
to implement a correct commit / synchronization behavior for a
distributed graph in Equalizer...

Thanks and best regards,
Matteo

_______________________________________________
eq-dev mailing list
[email protected]
http://www.equalizergraphics.com/cgi-bin/mailman/listinfo/eq-dev
http://www.equalizergraphics.com

Reply via email to