[ 
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.

Reply via email to