You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Brian ONeill (Commented) (JIRA)" <ji...@apache.org> on 2012/02/06 22:59:02 UTC

[jira] [Commented] (CASSANDRA-1311) Triggers

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

Brian ONeill commented on CASSANDRA-1311:
-----------------------------------------

Martin,  Great stuff. Thanks.  I'll read through those reports.

Because we didn't hear back from the crew, we went ahead and implemented a lightweight trigger mechanism.  Using AOP around CassandraServer.doInsert, we write to an event log.  Each log entry contains the keyspace, column family, row and columns that were mutated and the operation (isDelete).   We then poll that log and execute the triggers off of that, deleting the log entry upon successful invocation of the triggers.

We are going to release the code as part of Virgil. Still a work in progress, but you can see things here:
http://code.google.com/a/apache-extras.org/p/virgil/source/browse/#svn%2Ftrunk%2Ftriggers%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fvirgil%2Ftriggers
                
> Triggers
> --------
>
>                 Key: CASSANDRA-1311
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1311
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Maxim Grinev
>             Fix For: 1.2
>
>         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.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira