[
https://issues.apache.org/jira/browse/USERGRID-85?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13983090#comment-13983090
]
Todd Nine commented on USERGRID-85:
-----------------------------------
Refactor is done. Closing.
> 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
> Fix For: 1.1
>
>
> 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)