[
https://issues.apache.org/jira/browse/CASSANDRA-1311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13216106#comment-13216106
]
Jonathan Ellis commented on CASSANDRA-1311:
-------------------------------------------
bq. Asynchronously, the commit log is polled and triggers are executed. Upon
successful trigger execution, the log entry is removed from the commit log.
Implementation detail: we probably need to switch between CSCL rows
periodically to avoid tombstone pollution.
bq. Hosts process their own log entries first, then also process any log
entries that are older than 5 seconds.
Doesn't that make "more than once" processing significantly more likely? It
also opens up the possibility for a trigger to operate on pre-update data, if
the mutation does get delayed longer than N seconds. I think I prefer the
CSCL-per-node approach better. (Which also reduces contention on the CSCL rows
-- with CASSANDRA-2893 done that matters more than it did in <= 1.0.)
bq. each trigger is idempotent, and acts directly on the data in the column
family (rather than data stored in the log entry in the commit log)
I'm starting to think that's a better design, although it's rather less
performant in an already fairly heavyweight design. We should probably pass the
CL mutation to the trigger in case that's "good enough" to save it from having
to look up the row.
> 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