You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jun Rao (JIRA)" <ji...@apache.org> on 2009/05/13 21:42:46 UTC

[jira] Updated: (CASSANDRA-172) A improved and more general version of get_slice

     [ https://issues.apache.org/jira/browse/CASSANDRA-172?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jun Rao updated CASSANDRA-172:
------------------------------

    Attachment: get_slice_from.patchv1

Propose a new API:
  list<column_t> get_slice_from(1:string tablename, 2:string key, 3:string columnFamily_column, 4:bool isAscending, 5:i32 start, 6:i32 count)

get_slice_from gets a specified number of columns starting from a specified starting column. For example, 
   get_slice_from(Table1, row1, CF1:col5, true, 0, 5) 
returns the first 5 columns in CF1 in row1 whose names are larger than or equal to col5. 

Because get_slice_from specifies a starting column, column index can be exploited to reduce the amount of data scanned in sstables.


Submit a patch. In this patch, get_slice_from is only supported on Standard CF sorted by Name.

Overview of the patch
ColumnFamilyStore : a new method getSliceFrom that does a multi-way merge among memtables and sstables.

ColumnIterator: interface for iterating through columns from a starting column; both memtable and sstable have an implementation of that interface

SliceFromReadCommand: a new type of read command

SequenceFile: a new ColumnSliceBlockReader that skips to an initial data block using the column index and starts iterating the blocks after or before the initial block


> A improved and more general version of get_slice
> ------------------------------------------------
>
>                 Key: CASSANDRA-172
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-172
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Jun Rao
>            Assignee: Jun Rao
>         Attachments: get_slice_from.patchv1
>
>
> Today, get_slice has to scan through all columns in every memtable and sstable to get a slice of columns. This becomes inefficient when the number of columns in a row is large. We need a more efficient API.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.