Todd Nine created USERGRID-85:
---------------------------------

             Summary: Create and implement a distributed async consistency 
gaurentee
                 Key: USERGRID-85
                 URL: https://issues.apache.org/jira/browse/USERGRID-85
             Project: Usergrid
          Issue Type: Story
          Components: Stack
            Reporter: Todd Nine
            Assignee: Todd Nine
            Priority: Blocker


When an entity or a graph edge is committed, it requires post processing.  In 
the case of entities, this is indexing and processing of deletes from the mark 
operation.  In the case of edges, deletes from marks are required.  We need a 
general mechanism for creating a timeout checkpoint.  This will then return a 
timeout object.  This object can then be invoked asychronously.  Upon 
completion, it should remove the timeout object.  Only during a failure (JVM 
shutdown, node death etc) should the timeout event fire.  The timeout event 
will then restart the post processing.  This must ensure the following.

# No event will ever be lost.  Events will always fire eventually at a time >= 
to it's timeout

# Events should encapsulate all data required to perform async processing.  
Since this could run on a different node than the caller, no state should be 
shared on queue/start/failover

# Events receivers should be idempotent.   They should checkpoint their work.  
If at an time a receiver fails it may be resumed by another node.  The new node 
should be able to resume work without the need to perform all processing again



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to