[ 
https://issues.apache.org/jira/browse/CASSANDRA-1311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12891653#action_12891653
 ] 

Martin Hentschel commented on CASSANDRA-1311:
---------------------------------------------

Thanks for referring to CASSANDRA-1016. We were not aware of it and it is 
similar to our work. We think the main differences of our work to 
CASSANDRA-1016 are the following:

* Triggers are executed asynchronously (Stu Hood mentioned it as [lazy 
execution|https://issues.apache.org/jira/browse/CASSANDRA-749?focusedCommentId=12829403&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_12829403]).
* We provide a fail-over mechanism. If a node, which was responsible for 
executing a trigger, goes down, replicas will take over to ensure proper 
execution. We implemented at-least-once semantics of triggers.
* Triggers are set on column families, instead of the whole database (which 
might have been implemented by 1016 as well now).

Asynchronous means that triggers will be executed after the client has received 
the acknowledgment. Hence the response time of a user request is improved (as 
opposed to CASSANDRA-1016, which we think implements synchronous execution of 
triggers). The downside of it is that indexes might be out of sync with the 
base data sometimes. We think that this is fine for many use cases where 
Cassandra is the database of choice (as explained in our blog posts).

> Support (asynchronous) triggers
> -------------------------------
>
>                 Key: CASSANDRA-1311
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1311
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Contrib
>            Reporter: Maxim Grinev
>         Attachments: ImplementationDetails.pdf, trunk-967053.txt
>
>
> Asynchronous triggers is a basic mechanism to implement various use cases of 
> asynchronous execution of application code at database side. For example to 
> support indexes and materialized views, online analytics, push-based data 
> propagation.
> Please find the motivation, triggers description and list of applications:
> http://maxgrinev.com/2010/07/23/extending-cassandra-with-asynchronous-triggers/
> An example of using triggers for indexing:
> http://maxgrinev.com/2010/07/23/managing-indexes-in-cassandra-using-async-triggers/
> Implementation details are attached.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to