cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Hentschel (JIRA)" <j...@apache.org>
Subject [jira] Commented: (CASSANDRA-1311) Support (asynchronous) triggers
Date Fri, 31 Dec 2010 18:40:50 GMT

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

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

In StorageProxy.mutate (was mutateBlocking in the older version I guess), triggers are only
executed once a write quorum has been reached.  Threrefore, at the master, only acknowledged
writes will also fire triggers.  If the acknowledgement gets lost, then the writes have been
performed and the triggers have been executed so there should not be a consistency issue.

Concerning your point about slave nodes, we assume that clients retry write requests that
have not been acknowledged by Cassandra.  Triggers at slave nodes are buffered (storeDanglingTrigger)
and are only executed in case the master node goes down.  If the master fails before sending
the acknowledgement to the client, the trigger might have been executed already.  I think
that correctly was your point.  But because the client did not get a response, it should retry
its write request and thus establishing consistency again.  Of course, there is a window in
which triggers have been fired but the actual data is not present.  If the client ceases to
issue the write request, then the inconsistency will be durable, which is bad.  If this is
a too serious issue, we should come up with a solution.

(For the record:
Master node = Cassandra's update coordinator
Slave nodes = All replica nodes minus the update coordinator)

> 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
>             Fix For: 0.8
>
>         Attachments: HOWTO-PatchAndRunTriggerExample-update1.txt, HOWTO-PatchAndRunTriggerExample.txt,
ImplementationDetails-update1.pdf, ImplementationDetails.pdf, trunk-967053.txt, trunk-984391-update1.txt,
trunk-984391-update2.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.


Mime
View raw message