[
https://issues.apache.org/jira/browse/CASSANDRA-1311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13557422#comment-13557422
]
rektide de la fey commented on CASSANDRA-1311:
----------------------------------------------
Hi, this ticket seems well underway and I apologize if chiming in like this is
inappropriate.
Rather than trying to define work to do as a part of the trigger (as
conventional databases often do), my chief interest would be simply noting or
recording certain conditions as they occur, in a way that external systems can
themselves trigger responsive actions to be taken (hopefully in a low-latency
fashion).
Decoupling the detection from the follow up processing will make for a far more
flexible system, and allows for general reactivity in the Cassandra world,
rather than trying to define a good enough suite of actions can be taken in the
DB layer proper. Providing hooks which external applications can use to do
asynchronous trigger actions will also be critical for responsive/reactive
system design, freeing systems from having to create their own event logs, and
allowing them to simply monitor what's going on inside the database.
The topic of finding out what execution engine to make, what to do when one is
triggered, is a huge huge huge undertaking which will certainly not be done
right. Please please please, decouple the problem into it's component pieces as
I am requesting: a reactive trigger, which can detect changes and raise
notices, and secondarily, an execution engine inside Cassandra which can
subscribe to event sources and perform operations when changes are detected.
It's vital that external applications have a means to detect & react to
changes, and doing triggers internally only takes on too small & narcissistic a
problem, and carries with it the weight of having to build an execution engine
to do work on the trigger.
> Triggers
> --------
>
> Key: CASSANDRA-1311
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1311
> Project: Cassandra
> Issue Type: New Feature
> Reporter: Maxim Grinev
> Assignee: Vijay
> Fix For: 2.0
>
> Attachments: HOWTO-PatchAndRunTriggerExample.txt,
> HOWTO-PatchAndRunTriggerExample-update1.txt, ImplementationDetails.pdf,
> ImplementationDetails-update1.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
For more information on JIRA, see: http://www.atlassian.com/software/jira