You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cassandra.apache.org by Ke Wang <kl...@gmail.com> on 2017/07/27 05:19:21 UTC

Customize Cassandra to execute a query multiple times

Hello all,

Is there a way to customize Cassandra to execute a query multiple times?

My use case is the following. When the Cassandra server receives queries
from remote clients, besides executing those queries, the server also
stores the queries. In the future, the server can re-execute stored queries
under certain circumstances.

Currently, when I re-execute a query, I create an internal QueryState
object using: qstate = QueryState forInternalCalls(), and then calls the
request.execute(qstate, queryStartNanoTime); However, the execution seems
to have no effect on the database. There is also no exception message. Does
anyone have a clue on this? Great thanks!

Best,
Ke

Re: Customize Cassandra to execute a query multiple times

Posted by benjamin roth <br...@gmail.com>.
+1

2017-07-27 9:26 GMT+02:00 Marco Massenzio <m....@gmail.com>:

> Why not simply have a microservice that does this for you?
>
> It may expose an API that allows to either store queries and/or conditions
> that trigger the queries (maybe time elapsed, an alert generated,
> whatever...) and it would then connect to Cassandra and execute the stored
> query(ies).
>
> Given that there is no client waiting for a response, then latency is not
> even a (major) issue, so the extra network hop is probably of little
> consequence.
>
> Why would you want this to be an integral part of Cassandra?
> (like Jeff I also am struggling to come up with a concrete use case where
> this would be desirable)
>
> --
> *Marco Massenzio*
> http://codetrips.com
>
> On Wed, Jul 26, 2017 at 11:06 PM, Ke Wang <kl...@gmail.com> wrote:
>
> > Hi Jeff,
> >
> > Thanks for the prompt reply.
> >
> > I'm sorry I wasn't clear about my use case. Let's say I just want the
> > server to execute writes that are not directly generated from clients. It
> > can be previously stored queries (the case in my last email), or it can
> be
> > arbitrarily made-up write requests by the server itself.
> >
> > Can you describe a little bit more on how to implement serializing the
> > mutation into the table?
> >
> > Best,
> > Ke
> >
> > 2017-07-26 22:57 GMT-07:00 Jeff Jirsa <jj...@apache.org>:
> >
> > >
> > >
> > > On 2017-07-26 22:19 (-0700), Ke Wang <kl...@gmail.com> wrote:
> > > > Hello all,
> > > >
> > > > Is there a way to customize Cassandra to execute a query multiple
> > times?
> > > >
> > >
> > > There's always a way...
> > >
> > > > My use case is the following. When the Cassandra server receives
> > queries
> > > > from remote clients, besides executing those queries, the server also
> > > > stores the queries. In the future, the server can re-execute stored
> > > queries
> > > > under certain circumstances.
> > > >
> > >
> > > Seems like an unusual request. Where are you storing the queries? Are
> > > these reads or writes? For writes you could just serialize the
> resulting
> > > partitionupdate/mutation into a table a la pre-3.0 hints, and then
> > re-play
> > > as needed (though tbh I don't really get the use case)?
> > >
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: dev-unsubscribe@cassandra.apache.org
> > > For additional commands, e-mail: dev-help@cassandra.apache.org
> > >
> > >
> >
>

Re: Customize Cassandra to execute a query multiple times

Posted by Marco Massenzio <m....@gmail.com>.
Why not simply have a microservice that does this for you?

It may expose an API that allows to either store queries and/or conditions
that trigger the queries (maybe time elapsed, an alert generated,
whatever...) and it would then connect to Cassandra and execute the stored
query(ies).

Given that there is no client waiting for a response, then latency is not
even a (major) issue, so the extra network hop is probably of little
consequence.

Why would you want this to be an integral part of Cassandra?
(like Jeff I also am struggling to come up with a concrete use case where
this would be desirable)

-- 
*Marco Massenzio*
http://codetrips.com

On Wed, Jul 26, 2017 at 11:06 PM, Ke Wang <kl...@gmail.com> wrote:

> Hi Jeff,
>
> Thanks for the prompt reply.
>
> I'm sorry I wasn't clear about my use case. Let's say I just want the
> server to execute writes that are not directly generated from clients. It
> can be previously stored queries (the case in my last email), or it can be
> arbitrarily made-up write requests by the server itself.
>
> Can you describe a little bit more on how to implement serializing the
> mutation into the table?
>
> Best,
> Ke
>
> 2017-07-26 22:57 GMT-07:00 Jeff Jirsa <jj...@apache.org>:
>
> >
> >
> > On 2017-07-26 22:19 (-0700), Ke Wang <kl...@gmail.com> wrote:
> > > Hello all,
> > >
> > > Is there a way to customize Cassandra to execute a query multiple
> times?
> > >
> >
> > There's always a way...
> >
> > > My use case is the following. When the Cassandra server receives
> queries
> > > from remote clients, besides executing those queries, the server also
> > > stores the queries. In the future, the server can re-execute stored
> > queries
> > > under certain circumstances.
> > >
> >
> > Seems like an unusual request. Where are you storing the queries? Are
> > these reads or writes? For writes you could just serialize the resulting
> > partitionupdate/mutation into a table a la pre-3.0 hints, and then
> re-play
> > as needed (though tbh I don't really get the use case)?
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@cassandra.apache.org
> > For additional commands, e-mail: dev-help@cassandra.apache.org
> >
> >
>

Re: Customize Cassandra to execute a query multiple times

Posted by Ke Wang <kl...@gmail.com>.
Hi Jeff,

Thanks for the prompt reply.

I'm sorry I wasn't clear about my use case. Let's say I just want the
server to execute writes that are not directly generated from clients. It
can be previously stored queries (the case in my last email), or it can be
arbitrarily made-up write requests by the server itself.

Can you describe a little bit more on how to implement serializing the
mutation into the table?

Best,
Ke

2017-07-26 22:57 GMT-07:00 Jeff Jirsa <jj...@apache.org>:

>
>
> On 2017-07-26 22:19 (-0700), Ke Wang <kl...@gmail.com> wrote:
> > Hello all,
> >
> > Is there a way to customize Cassandra to execute a query multiple times?
> >
>
> There's always a way...
>
> > My use case is the following. When the Cassandra server receives queries
> > from remote clients, besides executing those queries, the server also
> > stores the queries. In the future, the server can re-execute stored
> queries
> > under certain circumstances.
> >
>
> Seems like an unusual request. Where are you storing the queries? Are
> these reads or writes? For writes you could just serialize the resulting
> partitionupdate/mutation into a table a la pre-3.0 hints, and then re-play
> as needed (though tbh I don't really get the use case)?
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@cassandra.apache.org
> For additional commands, e-mail: dev-help@cassandra.apache.org
>
>

Re: Customize Cassandra to execute a query multiple times

Posted by Jeff Jirsa <jj...@apache.org>.

On 2017-07-26 22:19 (-0700), Ke Wang <kl...@gmail.com> wrote: 
> Hello all,
> 
> Is there a way to customize Cassandra to execute a query multiple times?
> 

There's always a way...

> My use case is the following. When the Cassandra server receives queries
> from remote clients, besides executing those queries, the server also
> stores the queries. In the future, the server can re-execute stored queries
> under certain circumstances.
> 

Seems like an unusual request. Where are you storing the queries? Are these reads or writes? For writes you could just serialize the resulting partitionupdate/mutation into a table a la pre-3.0 hints, and then re-play as needed (though tbh I don't really get the use case)? 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cassandra.apache.org
For additional commands, e-mail: dev-help@cassandra.apache.org