[
https://issues.apache.org/jira/browse/CASSANDRA-1311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12892251#action_12892251
]
Maxim Grinev commented on CASSANDRA-1311:
-----------------------------------------
We studied the discussion of
[CASSANDRA-749|https://issues.apache.org/jira/browse/CASSANDRA-749]
1) CASSANDRA-749 is about local vs. distributed secondary indexes.
You decided to start with local indexes but stated that both approaches have
their advantages and disadvantages.
Our triggers allow to implement distributed secondary indexes. So, as concerns
indexing, triggers complement CASSANDRA-749 with distributed indexes.
2) Stu Hood proposed to support view
([https://issues.apache.org/jira/browse/CASSANDRA-749?focusedCommentId=12829403&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12829403])
as a general mechanism for 'advanced' indexing.
Our triggers is a mechanism to implement exactly this view approach.
Stu put the advantates really nicely so I just cite him:
- "But views are considerably more powerful, since you can store any item in
the key or value for the view."
- "Also, a view is more conducive to duplication of data, which we prefer in
Cassandra: rather than having secondary indexes pointing to the one true copy
of the data, you can duplicate that data in a view if you'd like, and have it
be lazily/eagerly updated serverside."
Moreover, support for duplicate data allows to map basic SQL operations to
Cassandra's data model as described in
[http://maxgrinev.com/2010/07/12/do-you-really-need-sql-to-do-it-all-in-cassandra/]
Also, as a general mechanism, triggers/views can be used for other applications
such as online analytics or workflow-like (push) data propagation.
> 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.txt,
> 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.