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)