[ 
https://issues.apache.org/jira/browse/CASSANDRA-1035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12881897#action_12881897
 ] 

Nirmal Ranganathan commented on CASSANDRA-1035:
-----------------------------------------------

Having researched all the options, the only viable ones seem to be able to 
schedule based on keyspace. User scheduling can happen, but requires some 
change with the Auth API/classes. Just providers to get the username per se. 

There would be a configuration option to schedule based on user/keyspace/none 
(this would be the identifier) 

Open Question: 
1 - Scheduler returns TimedOutException if no available tokens for 
user/keyspace (considering a token based approach) 
2 - Scheduler blocks thread/request until a token is available and services the 
request or times out whichever happens first. 

Since we don't control the threads/thread-scheduling, the scheduler will have 
to maintain some sort of bucketing system and perform wait/notify, for a 
round-robin approach. Ideas welcome. 

Since this is node based, there's nothing stopping a client from hitting up 
another controller node and the request being re-routed back to the initial 
node if that has the data. CASSANDRA-685 would solve that, but I'm not sure of 
it's status.

> Implement User/Keyspace throughput Scheduler
> --------------------------------------------
>
>                 Key: CASSANDRA-1035
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1035
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Stu Hood
>             Fix For: 0.7
>
>
> To support multiple applications on top of a single Cassandra cluster (and to 
> protect against badly behaving clients) having a very simple scheduler for 
> client operations would be very beneficial.
> Since all tasks are short lived, a sufficient scheduler would probably only 
> need to manage the queue of incoming requests, and weight them based on an 
> assigned ID. The ID could be dynamically determined by using ip, userid or 
> keyspace for instance, and then each Runnable would be assigned an ID.

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