Return-Path: Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: (qmail 52399 invoked from network); 7 Jul 2010 16:37:18 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 7 Jul 2010 16:37:18 -0000 Received: (qmail 42872 invoked by uid 500); 7 Jul 2010 16:37:18 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 42663 invoked by uid 500); 7 Jul 2010 16:37:18 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 42650 invoked by uid 99); 7 Jul 2010 16:37:17 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 07 Jul 2010 16:37:17 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.22] (HELO thor.apache.org) (140.211.11.22) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 07 Jul 2010 16:37:13 +0000 Received: from thor (localhost [127.0.0.1]) by thor.apache.org (8.13.8+Sun/8.13.8) with ESMTP id o67GapFt002644 for ; Wed, 7 Jul 2010 16:36:51 GMT Message-ID: <27514799.241341278520611627.JavaMail.jira@thor> Date: Wed, 7 Jul 2010 12:36:51 -0400 (EDT) From: "Jonathan Ellis (JIRA)" To: commits@cassandra.apache.org Subject: [jira] Commented: (CASSANDRA-1035) Implement User/Keyspace throughput Scheduler In-Reply-To: <17623898.8461272561235266.JavaMail.jira@thor> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/CASSANDRA-1035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12885982#action_12885982 ] Jonathan Ellis commented on CASSANDRA-1035: ------------------------------------------- Right, it looks like what you want is just a SynchronousQueue per keyspace. Manual wait/notify is more code and error-prone (see the javadoc for wait() -- "A thread can also wake up without being notified, interrupted, or timing out, a so-called spurious wakeup...") Go ahead and just initialize the scheduler in DD, we already do this with e.g. the partitioner. > Implement User/Keyspace throughput Scheduler > -------------------------------------------- > > Key: CASSANDRA-1035 > URL: https://issues.apache.org/jira/browse/CASSANDRA-1035 > Project: Cassandra > Issue Type: Improvement > Affects Versions: 0.7 > Reporter: Stu Hood > Assignee: Nirmal Ranganathan > Fix For: 0.7 > > Attachments: 0001-Adding-the-RequestScheduler-abstraction-and-a-simple.patch, 0002-Thrift-related-changes-for-RequestScheduler-added-a-.patch, 0003-Avro-related-changes-for-RequestScheduler.patch, 0004-Test-case-for-RoundRobinScheduler.patch, 0005-Add-options-for-throttling.patch, 1035-v2.txt, Cassandra-1035.patch > > > 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.