As a suggestion for one possible approach to this:

I've used the excellent MVEL (expression language) as a tool for
dynamic scripting which can compile and be VM optimized to near-native
speed. This may provide a means to implement dynamic-yet-efficient
event handling into client or server logic.

Trade-offs:
1) -- Eclipse and other tools will not provide you with the same level
of compile-time checking.
2) ++ Application-level expressions can be injected into control
points which are exposed via your app with little (almost none) loss
of performance.

Even as an intermediate representation, it can be rendered from a
marshaled/constrained representation at app-level, providing more
robustness to the user. It can do more than just return values (as an
expression language), actually acting as a light-weight scripting
language.

I am not affiliated with this project. I have just had very good
results with this tool after surveying the expression language
landscape. Performance, flexibility and ease of integration were my
criteria, in order of preference.


On Wed, Feb 9, 2011 at 10:04 AM, Dave Revell <d...@meebo-inc.com> wrote:
> +1 for interest. This feature would be great if done well.
> On Feb 8, 2011 11:54 PM, "m...@monit.dk" <m...@monit.dk> wrote:
>> I noticed :)
>>
>> But the question was if such a feature could make it to the trunk - and as
> far as I see, there is enough interest around this.
>>
>> ----- Reply message -----
>> From: "Tristan Tarrant" <tristan.tarr...@gmail.com>
>> Date: Wed, Feb 9, 2011 05:56
>> Subject: New feature / educational project
>> To: <dev@cassandra.apache.org>
>>
>> With Java 6 there is no need to add rhino as there already is the
>> javax.script package
>> Tristan
>> On Feb 8, 2011 9:56 PM, "Morten Wegelbye Nissen" <m...@monit.dk> wrote:
>>> Hello mighty developers of Cassandra,
>>>
>>> I have been thinking of creating a feature like stored procedures for
>>> Cassandra.
>>> Concept is actually pretty simple add one of the javascript compilers. (
>>> Mozilla Rhino or one alike ). Save js source in a CF in the system
>>> keyspace. Add feature to thrift to invoke the code. Return just like
>>> get_slice.
>>> Needless to say that the execution environment needs access to the
>>> keyspaces and needs to be sandboxed. (ie. no access to filesystem etc. )
>>>
>>> On the cli it would be something like; > invoke myProc param1, param2,
>>> param3
>>>
>>> The alternative where the expansions, like the existing once, is done by
>>> implementing interfaces. Would require a rather complex distribution of
>>> jars.
>>>
>>> Now I might have the option to get this done as a educational project,
>>> where I after the project would like to release the code to freedom.
>>>
>>> Would a feature like that ever make it to the core of Cassandra?
>>>
>>> ./Morten
>

Reply via email to