You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jonathan Ellis (JIRA)" <ji...@apache.org> on 2012/10/24 23:26:12 UTC

[jira] [Created] (CASSANDRA-4858) Coverage analysis for low-CL queries

Jonathan Ellis created CASSANDRA-4858:
-----------------------------------------

             Summary: Coverage analysis for low-CL queries
                 Key: CASSANDRA-4858
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4858
             Project: Cassandra
          Issue Type: Improvement
          Components: Core
            Reporter: Jonathan Ellis
             Fix For: 1.3


There are many cases where getRangeSlice creates more
RangeSliceCommand than it should, because it always creates one for each range
returned by getRestrictedRange.  Especially for CL.ONE this does not take
the replication factor into account and is potentially pretty wasteful.
A range slice at CL.ONE on a 3 node cluster with RF=3 should only
ever create one RangeSliceCommand.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (CASSANDRA-4858) Coverage analysis for low-CL queries

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-4858?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13484168#comment-13484168 ] 

Jonathan Ellis commented on CASSANDRA-4858:
-------------------------------------------

Sylvain says, "I don't think there is anything to win in doing something more complex than (in very pseudo code):"

{noformat}
  ranges = new ArrayQueue(getRestrictedRanges(command.range));
  while (!ranges.isEmpty())
  {
      range = ranges.poll();
      endpoints = endpointsFor(range);
      while (intersection(endpoints, endpointsFor(ranges.peek())) >=
requiredByCL)
      {
          nextRange = ranges.poll();
          range = union(range, nextRange);
          endpoints = intersection(endpoints, endpointsFor(nextRange));
      }
      send range to endpoints
  }
{noformat}
                
> Coverage analysis for low-CL queries
> ------------------------------------
>
>                 Key: CASSANDRA-4858
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4858
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Jonathan Ellis
>             Fix For: 1.3
>
>
> There are many cases where getRangeSlice creates more
> RangeSliceCommand than it should, because it always creates one for each range
> returned by getRestrictedRange.  Especially for CL.ONE this does not take
> the replication factor into account and is potentially pretty wasteful.
> A range slice at CL.ONE on a 3 node cluster with RF=3 should only
> ever create one RangeSliceCommand.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira