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 2009/05/06 16:57:32 UTC

[jira] Created: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

thrift API should use lists instead of colon-delimited strings to specify column path
-------------------------------------------------------------------------------------

                 Key: CASSANDRA-139
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
             Project: Cassandra
          Issue Type: Improvement
            Reporter: Jonathan Ellis
             Fix For: 0.4




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


[jira] Updated: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis updated CASSANDRA-139:
-------------------------------------

    Attachment: 0001-thrift-changes.patch

proposed new thrift api.

using structs instead of list<string> makes it (a) much clearer for users, (b) much easier to sanity-check server-side, (c) much less important whether "string key" or "string columnFamily" comes first. :)

look reasonable?

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-thrift-changes.patch
>
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis commented on CASSANDRA-139:
------------------------------------------

you can't have optional parameters in thrift except in a struct.  so we're forced to use struct for some; for the rest it seems best to be consistent in struct usage even though it's not necessary.

for multiget I would take the approach of the batch_ methods and have table + key + list<cf> or list<cf, column>, etc.

(as I may have noted on the multiget issue, multiget is a superset of ordinary get so it probably doesn't make sense to keep both around ultimately.)

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-thrift-changes.patch
>
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver commented on CASSANDRA-139:
---------------------------------------

Another issue, possibly not related to this patch:

Keys don't appear to be really deleted by remove(key, CF). The values are gone, but get_key_range continues to return the key name even after compaction.

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-CASSANDRA-139-thrift-changes.txt, 0001-thrift-changes.patch, 0001-thrift-changes.patch, 0002-use-ColumnPath-ColumnParent-etc.-structs-to-encapsul.txt, 0003-update-system-tests.patch, 0004-missed-one-rename-column.column_name-column.name.patch, 0005-fix-get_column_count.patch
>
>


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


[jira] Issue Comment Edited: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver edited comment on CASSANDRA-139 at 7/6/09 11:06 AM:
----------------------------------------------------------------

The switch won't be silent, because we will drop the magic colons at the same time. Anyway, now is the time to break things.

Re. routing order:

What we care about here is what knowledge the client can act on. 
 * It's important to know that a CF is a single a file with keys inside it, because that's what lets you control column-major vs. row-major storage order. 
 * It is not important to know that a single key has all its column families on the same host.

Hbase and Hypertable use routing order, but they also use the colons, so I don't they are trustworthy API design models.

In the interests of not needlessly confusing the majority of developers who are familiar with SQL but not BigTable, I think we should switch it.

This normalizes some signatures because range queries let you look up based on CF and (optional) key:

  get_key_range(@keyspace, column_families, key_range.begin, key_range.end, limit)

So we already use storage order! It makes sense to trail with the optional parameters, and the CF is never optional.



      was (Author: eweaver):
    The switch won't be silent, because we will drop the magic colons at the same time. Anyway, now is the time to break things.

Re. routing order:

What we care about here is what knowledge the client can act on. 
 * It's important to know that a CF is a single a file with keys inside it, because that's what lets you control column-major vs. row-major storage order. 
 * It is not important to know that a single key has all its column families on the same host.

Hbase and Hypertable use routing order, but they also use the colons, so I don't they are trustworthy API design models.

In the interests of not needlessly confusing the majority of developers who are familiar with SQL but not BigTable, I think we should switch it.
  
> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Priority: Minor
>


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


[jira] Updated: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis updated CASSANDRA-139:
-------------------------------------

    Attachment: 0003-update-system-tests.patch

system tests

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-CASSANDRA-139-thrift-changes.txt, 0001-thrift-changes.patch, 0001-thrift-changes.patch, 0002-use-ColumnPath-ColumnParent-etc.-structs-to-encapsul.txt, 0003-update-system-tests.patch, 0004-missed-one-rename-column.column_name-column.name.patch
>
>


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


[jira] Issue Comment Edited: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver edited comment on CASSANDRA-139 at 7/6/09 12:16 AM:
----------------------------------------------------------------

OK, the old style API came from the BigTable paper. HBase uses it too:

    Cell cell = table.get("myRow", "myColumnFamily:columnQualifier1");

This is bad for three reasons:

  1. Concatenating strings; are you serious?
  2. It is targeted for a specific use case where your table contains just one kind of business object.
  3. It doesn't represent actual storage order, so it's super confusing.

I think all APIs should take parameters in storage order in all cases. That is:

  keyspace.get(column_family, key, [supercolumn], column)



      was (Author: eweaver):
    The old style API came from the BigTable pape. HBase uses it too:

    Cell cell = table.get("myRow", "myColumnFamily:columnQualifier1");

This is bad for three reasons:

  1. Concatenating strings; are you serious?
  2. It is targeted for a specific use case where your table contains just one kind of business object.
  3. It doesn't represent actual storage order, so it's super confusing.

I think all APIs should take parameters in storage order in all cases. That is:

  keyspace.get(column_family, key, [supercolumn], column)


  
> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Priority: Minor
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver commented on CASSANDRA-139:
---------------------------------------

Don't see any obvious issues in the patchset.

Ship it!

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-CASSANDRA-139-thrift-changes.txt, 0001-thrift-changes.patch, 0001-thrift-changes.patch, 0002-use-ColumnPath-ColumnParent-etc.-structs-to-encapsul.txt, 0003-update-system-tests.patch, 0004-missed-one-rename-column.column_name-column.name.patch, 0005-fix-get_column_count.patch
>
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver commented on CASSANDRA-139:
---------------------------------------

Looks reasonable.

Once we get multiget we will have the same situation for keys, so i like the struct solution. Internal layer is agnostic but consistent, and clients can go nuts. A standard may eventually emerge.

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-thrift-changes.patch
>
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Sandeep Tata commented on CASSANDRA-139:
----------------------------------------

Could we pull Table out of the struct -- list<column_path_t> should work fine for multi-get and multi-put.



> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-thrift-changes.patch
>
>


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


[jira] Issue Comment Edited: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis edited comment on CASSANDRA-139 at 7/9/09 1:23 PM:
------------------------------------------------------------------

Michael Greene on IRC pointed out that you can make a case for keeping all arguments the same to a slice call, with a list of keys.  This appears to be the direction Avinash was going over in CASSANDRA-70.

This makes sense if most of your ops are "I want to apply the same predicate multiple times to different rows."  Like a relational select.  This would be sufficiently general for the app I ported to Cassandra (which did after all start on a rdbms).

The alternative is to be like the batch_insert api is and for each key allow a different predicate.  I can appreciate that argument from the standpoint of symmetry, but it seems that in the common case it would make life a pain, writing

predicate = ...
get_slice(table, [(key, predicate) for key in list_of_keys])

instead of just

get_slice(table, list_of_keys, predicate)

I think that Lesher's 10th law applies: "Premature optimization is the root of all evil; premature generalization is premature optimization of the feature list."  Let's plan on following Avinash's lead on the multiget API, which means that I'll pull both table and key out of the path structs shown in that patch.

      was (Author: jbellis):
    Michael Greene on IRC pointed out that you can make a case for keeping all arguments the same to a slice call, with a list of keys.  This appears to be the direction Avinash was going over in CASSANDRA-70.

This makes sense if most of your ops are "I want to apply the same predicate multiple times to different rows."  Like a relational select.  This would be sufficiently general for the app I ported to Cassandra (which did after all start on a rdbms).

The alternative is to be like the batch_insert api is and for each key allow a different predicate.  I can appreciate that argument from the standpoint of symmetry, but it seems that in the common case it would make life a pain, writing

predicate = ...
get_slice(table, [(key, predicate) for key in list_of_keys])

instead of just

get_slice(table, list_of_keys, predicate)

I think the principle that "Premature optimization is the root of all evil; premature generalization is premature optimization of the feature list" applies here.

Let's plan on following Avinash's lead on the multiget API, which means that I'll pull both table and key out of the path structs shown in that patch.
  
> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-thrift-changes.patch
>
>


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


[jira] Issue Comment Edited: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver edited comment on CASSANDRA-139 at 7/7/09 9:56 AM:
---------------------------------------------------------------

Looks reasonable!

Once we get multiget we will have the same situation for keys, so i like the struct solution. Internal layer is agnostic but consistent, and clients can go nuts. A standard may eventually emerge.

Is a struct the same as named parameters in Thrift or are there other benefits to reifying the param list?

For multi-get/multi-insert, would you pass multiple structs?

      was (Author: eweaver):
    Looks reasonable!

Once we get multiget we will have the same situation for keys, so i like the struct solution. Internal layer is agnostic but consistent, and clients can go nuts. A standard may eventually emerge.

Is a struct the same as named parameters in Thrift or are there other benefits to reifying the param list?
  
> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-thrift-changes.patch
>
>


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


[jira] Issue Comment Edited: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver edited comment on CASSANDRA-139 at 7/10/09 9:40 AM:
----------------------------------------------------------------

No multiget from multiple column families for a single key?

For what it's worth I thought the previous way was more flexible, but I suppose your point is that that may be bad at this point. I liked having the full path excluding table as its own self-contained object though; I can see storing that full predicate (?) as the id in a hydrated row, rather than storing the predicate and key separately.

      was (Author: eweaver):
    No multiget from multiple column families for a single key?

For what it's worth I thought the previous way was more flexible (if we're worried about forward compatibility). Not a big deal.
  
> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-thrift-changes.patch, 0001-thrift-changes.patch
>
>


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


[jira] Assigned: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis reassigned CASSANDRA-139:
----------------------------------------

    Assignee: Jonathan Ellis

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>


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


[jira] Updated: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis updated CASSANDRA-139:
-------------------------------------

    Fix Version/s:     (was: 0.4)

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Priority: Minor
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis commented on CASSANDRA-139:
------------------------------------------

key-first is also consistent in that (key, cf, [sc], column) is the order it needs things for routing.  So while I am +1 on getting rid of string concatenation I am -0 on switching the argument order.

(I also note that switching the order of identically typed parameters will silently screw over people following trunk -- the new client will "work" against your old code but everything will fail with no obvious reason why.)

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Priority: Minor
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver commented on CASSANDRA-139:
---------------------------------------

The switch won't be silent, because we will drop the magic colons at the same time. Anyway, now is the time to break things.

Re. routing order:

What we care about here is what knowledge the client can act on. 
 * It's important to know that a CF is a single a file with keys inside it, because that's what lets you control column-major vs. row-major storage order. 
 * It is not important to know that a single key has all its column families on the same host.

Hbase and Hypertable use routing order, but they also use the colons, so I don't they are trustworthy API design models.

In the interests of not needlessly confusing the majority of developers who are familiar with SQL but not BigTable, I think we should switch it.

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Priority: Minor
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Sandeep Tata commented on CASSANDRA-139:
----------------------------------------

Unit tests and system tests pass.
I verified the paths that deal with regular column reads/writes/deletes/get_slice*/batch_insert -- they work fine for me. +1 on those.
Haven't looked at the supercolumn APIs.


> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-CASSANDRA-139-thrift-changes.txt, 0001-thrift-changes.patch, 0001-thrift-changes.patch, 0002-use-ColumnPath-ColumnParent-etc.-structs-to-encapsul.txt, 0003-update-system-tests.patch, 0004-missed-one-rename-column.column_name-column.name.patch, 0005-fix-get_column_count.patch
>
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis commented on CASSANDRA-139:
------------------------------------------

Turns out that's an old bug.  I'd like to fix it sooner than later but it's related to CASSANDRA-286 (which I already have a patch for, that requires the -139 patchset).  So let's address it there.

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-CASSANDRA-139-thrift-changes.txt, 0001-thrift-changes.patch, 0001-thrift-changes.patch, 0002-use-ColumnPath-ColumnParent-etc.-structs-to-encapsul.txt, 0003-update-system-tests.patch, 0004-missed-one-rename-column.column_name-column.name.patch, 0005-fix-get_column_count.patch
>
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver commented on CASSANDRA-139:
---------------------------------------

Example of switched order is in these tests: http://github.com/fauna/cassandra_client/blob/4e11d79ebebe4fbafd6ea54d20c435728a12555d/test/cassandra_client_test.rb

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Priority: Minor
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis commented on CASSANDRA-139:
------------------------------------------

Nobody is arguing in favor of string concatenation.  Let's avoid straw men here please.

"the CF is never optional" is a good point.

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Priority: Minor
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver commented on CASSANDRA-139:
---------------------------------------

signature for get_slice_super needs to accept a ColumnParent...currently takes a string.

carrying on with testing/review

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-CASSANDRA-139-thrift-changes.txt, 0001-thrift-changes.patch, 0001-thrift-changes.patch, 0002-use-ColumnPath-ColumnParent-etc.-structs-to-encapsul.txt, 0003-update-system-tests.patch, 0004-missed-one-rename-column.column_name-column.name.patch
>
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis commented on CASSANDRA-139:
------------------------------------------

haven't finished updating the system tests to use the new api yet, but unit tests pass.  if someone wants to get a head start on reviewing, great, because it's a lot of code. :)

02
  the meat of the change

01
  generated thrift changes.  won't compile alone; isn't meant to.

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-CASSANDRA-139-thrift-changes.txt, 0001-thrift-changes.patch, 0001-thrift-changes.patch, 0002-use-ColumnPath-ColumnParent-etc.-structs-to-encapsul.txt
>
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Hudson commented on CASSANDRA-139:
----------------------------------

Integrated in Cassandra #139 (See [http://hudson.zones.apache.org/hudson/job/Cassandra/139/])
    missed one: rename column.column_name -> column.name
patch by jbellis; reviewed by Evan Weaver and Sandeep Tata for 
update system tests; fix get_column_count
patch by jbellis; reviewed by Evan Weaver and Sandeep Tata for 
thrift changes to remove : api.
use ColumnPath, ColumnParent, etc. structs to encapsulate optional SuperColumns (and occasionally, optional Columns).
patch by jbellis; reviewed by Evan Weaver and Sandeep Tata for 


> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-CASSANDRA-139-thrift-changes.txt, 0001-thrift-changes.patch, 0001-thrift-changes.patch, 0002-use-ColumnPath-ColumnParent-etc.-structs-to-encapsul.txt, 0003-update-system-tests.patch, 0004-missed-one-rename-column.column_name-column.name.patch, 0005-fix-get_column_count.patch
>
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis commented on CASSANDRA-139:
------------------------------------------

signatures: no, it's correct the way it is, since it's not valid to pass a supercolumn name -- only the CF is legal.  we could alias string to superColumnParent but that's more obfuscatory than otherwise.

will look at get_column_count.

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-CASSANDRA-139-thrift-changes.txt, 0001-thrift-changes.patch, 0001-thrift-changes.patch, 0002-use-ColumnPath-ColumnParent-etc.-structs-to-encapsul.txt, 0003-update-system-tests.patch, 0004-missed-one-rename-column.column_name-column.name.patch
>
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Chris Goffinet commented on CASSANDRA-139:
------------------------------------------

+1. After speaking to Evan more on this, I tend to agree:

  keyspace.get(column_family, key, [supercolumn], column) 

[12:26:17] <evn> its so you can pretend that all the CFs are your fields for a specific use case where you have to do range scans over fields
[12:26:28] <evn> rather than a bag of columns you have a bag of column families


> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Priority: Minor
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver commented on CASSANDRA-139:
---------------------------------------

fine with me

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-thrift-changes.patch
>
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver commented on CASSANDRA-139:
---------------------------------------

Takes an array of CFs right? I see your point.

I can't imagine that that's the common use case though.

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis commented on CASSANDRA-139:
------------------------------------------

Evan, can you review?

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-CASSANDRA-139-thrift-changes.txt, 0001-thrift-changes.patch, 0001-thrift-changes.patch, 0002-use-ColumnPath-ColumnParent-etc.-structs-to-encapsul.txt, 0003-update-system-tests.patch, 0004-missed-one-rename-column.column_name-column.name.patch
>
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver commented on CASSANDRA-139:
---------------------------------------

Yep today...was traveling.

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-CASSANDRA-139-thrift-changes.txt, 0001-thrift-changes.patch, 0001-thrift-changes.patch, 0002-use-ColumnPath-ColumnParent-etc.-structs-to-encapsul.txt, 0003-update-system-tests.patch, 0004-missed-one-rename-column.column_name-column.name.patch
>
>


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


[jira] Updated: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis updated CASSANDRA-139:
-------------------------------------

    Priority: Minor  (was: Major)

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Priority: Minor
>             Fix For: 0.4
>
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver commented on CASSANDRA-139:
---------------------------------------

Agree that this is the common case. 

I am vaguely worried about bigtable-like multigets though where you would select multiple CFs for multiple keys--in that case it makes a lot more sense to specify each path separately, so that the order of the returned values is predictable.

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-thrift-changes.patch, 0001-thrift-changes.patch
>
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver commented on CASSANDRA-139:
---------------------------------------

This currently makes it impossible to serialize column names.

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Priority: Minor
>


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


[jira] Issue Comment Edited: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver edited comment on CASSANDRA-139 at 7/10/09 9:37 AM:
----------------------------------------------------------------

No multiget from multiple column families for a single key?

For what it's worth I thought the previous way was more flexible (if we're worried about forward compatibility). Not a big deal.

      was (Author: eweaver):
    No multiget from multiple column families for a single key?

The new way basically matches my Ruby API exactly, but for what it's worth I thought the previous way was more flexible (if we're worried about forward compatibility). Not a big deal.
  
> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-thrift-changes.patch, 0001-thrift-changes.patch
>
>


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


[jira] Issue Comment Edited: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver edited comment on CASSANDRA-139 at 7/14/09 5:26 PM:
----------------------------------------------------------------

Regressions:

* signatures for get_key_range, get_slice_super and get_slice_super_by_names need to accept a ColumnParent...currently take a CF string.

* get_column_count no longer lets you count super columns (InvalidRequestException) or columns of supercolumns (java.lang.UnsupportedOperationException)

Those are the regressions I hit in my test suite. Will review the actual code next. 

This is a big step forward. I am excited for the day when overlapping structs start to get unified.

      was (Author: eweaver):
    problems:

* signatures for get_slice_super and get_slice_super_by_names need to accept a ColumnParent...currently take a CF string.

* get_column_count no longer lets you count super columns (InvalidRequestException), only columns of supercolumns

carrying on with testing/review
  
> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-CASSANDRA-139-thrift-changes.txt, 0001-thrift-changes.patch, 0001-thrift-changes.patch, 0002-use-ColumnPath-ColumnParent-etc.-structs-to-encapsul.txt, 0003-update-system-tests.patch, 0004-missed-one-rename-column.column_name-column.name.patch
>
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis commented on CASSANDRA-139:
------------------------------------------

I see.  No, you're not missing anything.  (Although it's just column names that can't have the :, keys are fine.)

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Priority: Minor
>


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


[jira] Updated: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis updated CASSANDRA-139:
-------------------------------------

    Attachment: 0002-use-ColumnPath-ColumnParent-etc.-structs-to-encapsul.txt
                0001-CASSANDRA-139-thrift-changes.txt

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-CASSANDRA-139-thrift-changes.txt, 0001-thrift-changes.patch, 0001-thrift-changes.patch, 0002-use-ColumnPath-ColumnParent-etc.-structs-to-encapsul.txt
>
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver commented on CASSANDRA-139:
---------------------------------------

Ok, this style of API definitely came from BigTable. HBase uses it too:

    Cell cell = table.get("myRow", "myColumnFamily:columnQualifier1");

This is bad for three reasons:

1. Concatenating strings; are you serious?

2. It is targeted for a specific use case where your table contains just one kind of business object.

3. It doesn't represent actual storage order, so it's super confusing.

I think all APIs should take parameters in storage order in all cases. That is:

  keyspace.get(column_family, key, [supercolumn], column)



> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Priority: Minor
>


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


[jira] Issue Comment Edited: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver edited comment on CASSANDRA-139 at 7/3/09 11:26 AM:
----------------------------------------------------------------

If your serialization format produces a dump for a particular object that happens to include a ':' character, you can't use that object as a key or column name in any of the methods that expect a concatenated string where ':' has special meaning...

      was (Author: eweaver):
    If your serialization format produces a dump for a particular object happens to include a ':' character, you can't use that object as a key or column name in any of the methods that expect a concatenated string where ':' has special meaning...
  
> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Priority: Minor
>


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


[jira] Updated: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis updated CASSANDRA-139:
-------------------------------------

    Attachment: 0005-fix-get_column_count.patch

05 fixes get_column_count

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-CASSANDRA-139-thrift-changes.txt, 0001-thrift-changes.patch, 0001-thrift-changes.patch, 0002-use-ColumnPath-ColumnParent-etc.-structs-to-encapsul.txt, 0003-update-system-tests.patch, 0004-missed-one-rename-column.column_name-column.name.patch, 0005-fix-get_column_count.patch
>
>


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


[jira] Issue Comment Edited: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver edited comment on CASSANDRA-139 at 7/6/09 12:15 AM:
----------------------------------------------------------------

The old style API came from the BigTable pape. HBase uses it too:

    Cell cell = table.get("myRow", "myColumnFamily:columnQualifier1");

This is bad for three reasons:

1. Concatenating strings; are you serious?

2. It is targeted for a specific use case where your table contains just one kind of business object.

3. It doesn't represent actual storage order, so it's super confusing.

I think all APIs should take parameters in storage order in all cases. That is:

  keyspace.get(column_family, key, [supercolumn], column)



      was (Author: eweaver):
    Ok, this style of API definitely came from BigTable. HBase uses it too:

    Cell cell = table.get("myRow", "myColumnFamily:columnQualifier1");

This is bad for three reasons:

1. Concatenating strings; are you serious?

2. It is targeted for a specific use case where your table contains just one kind of business object.

3. It doesn't represent actual storage order, so it's super confusing.

I think all APIs should take parameters in storage order in all cases. That is:

  keyspace.get(column_family, key, [supercolumn], column)


  
> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Priority: Minor
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis commented on CASSANDRA-139:
------------------------------------------

If you watch the fb cassandra video (not the nosql one) about 20% of the way in they explain their data model and they have like 4 CFs with the same keys.

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis commented on CASSANDRA-139:
------------------------------------------

good idea, Sandeep. I will do that.

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-thrift-changes.patch
>
>


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


[jira] Updated: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

Posted by "Evan Weaver (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-139?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Evan Weaver updated CASSANDRA-139:
----------------------------------

    Comment: was deleted

(was: Build fails with that patch:

build-project:
     [echo] apache-cassandra-incubating: /Volumes/Projects/incubator/cassandra/trunk/build.xml
    [javac] Compiling 303 source files to /Volumes/Projects/incubator/cassandra/trunk/build/classes
    [javac] /Volumes/Projects/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnReadCommand.java:33: cannot find symbol
    [javac] symbol  : variable CMD_TYPE_GET_COLUMN
    [javac] location: class org.apache.cassandra.db.ColumnReadCommand
    [javac]         super(table, key, CMD_TYPE_GET_COLUMN);
    [javac]                           ^
    [javac] /Volumes/Projects/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnReadCommand.java:58: cannot find symbol
    [javac] symbol  : method getRow(java.lang.String,java.lang.String,java.util.TreeSet<java.lang.String>)
    [javac] location: class org.apache.cassandra.db.Table
    [javac]             return table.getRow(key, values[0], new TreeSet<String>(Arrays.asList(values[1])));
    [javac]                         ^
    [javac] /Volumes/Projects/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnReadCommand.java:61: cannot find symbol
    [javac] symbol  : method getRow(java.lang.String,java.lang.String,java.util.TreeSet<java.lang.String>)
    [javac] location: class org.apache.cassandra.db.Table
    [javac]         return table.getRow(key, values[0] + ":" + values[1], new TreeSet<String>(Arrays.asList(values[2])));
    [javac]                     ^
    [javac] /Volumes/Projects/incubator/cassandra/trunk/src/java/org/apache/cassandra/test/DBTest.java:43: cannot find symbol
    [javac] symbol  : method add(java.lang.String,byte[],int)
    [javac] location: class org.apache.cassandra.db.RowMutation
    [javac]             rm.add("Test:" + "Column", value.getBytes(), i);                
    [javac]               ^
    [javac] /Volumes/Projects/incubator/cassandra/trunk/src/java/org/apache/cassandra/test/TestRunner.java:64: cannot find symbol
    [javac] symbol  : method add(java.lang.String,byte[],int)
    [javac] location: class org.apache.cassandra.db.RowMutation
    [javac]                     rm.add("MailboxMailData0:SuperColumn-" + j + ":Column-" + k, bytes, k);                    
    [javac]                       ^
    [javac] /Volumes/Projects/incubator/cassandra/trunk/src/java/org/apache/cassandra/test/TestRunner.java:88: cannot find symbol
    [javac] symbol  : method getRow(java.lang.String,java.lang.String,java.util.TreeSet<java.lang.String>)
    [javac] location: class org.apache.cassandra.db.Table
    [javac]         Row row = table.getRow("0", "MailboxMailData0", list);
    [javac]                        ^
    [javac] Note: Some input files use or override a deprecated API.
    [javac] Note: Recompile with -Xlint:deprecation for details.
    [javac] Note: Some input files use unchecked or unsafe operations.
    [javac] Note: Recompile with -Xlint:unchecked for details.
    [javac] 6 errors
)

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-CASSANDRA-139-thrift-changes.txt, 0001-thrift-changes.patch, 0001-thrift-changes.patch, 0002-use-ColumnPath-ColumnParent-etc.-structs-to-encapsul.txt, 0003-update-system-tests.patch, 0004-missed-one-rename-column.column_name-column.name.patch, 0005-fix-get_column_count.patch
>
>


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


[jira] Issue Comment Edited: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver edited comment on CASSANDRA-139 at 7/7/09 9:54 AM:
---------------------------------------------------------------

Looks reasonable!

Once we get multiget we will have the same situation for keys, so i like the struct solution. Internal layer is agnostic but consistent, and clients can go nuts. A standard may eventually emerge.

Is a struct the same as named parameters in Thrift or are there other benefits to reifying the param list?

      was (Author: eweaver):
    Looks reasonable.

Once we get multiget we will have the same situation for keys, so i like the struct solution. Internal layer is agnostic but consistent, and clients can go nuts. A standard may eventually emerge.
  
> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-thrift-changes.patch
>
>


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


[jira] Issue Comment Edited: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver edited comment on CASSANDRA-139 at 7/6/09 12:15 AM:
----------------------------------------------------------------

The old style API came from the BigTable pape. HBase uses it too:

    Cell cell = table.get("myRow", "myColumnFamily:columnQualifier1");

This is bad for three reasons:

  1. Concatenating strings; are you serious?
  2. It is targeted for a specific use case where your table contains just one kind of business object.
  3. It doesn't represent actual storage order, so it's super confusing.

I think all APIs should take parameters in storage order in all cases. That is:

  keyspace.get(column_family, key, [supercolumn], column)



      was (Author: eweaver):
    The old style API came from the BigTable pape. HBase uses it too:

    Cell cell = table.get("myRow", "myColumnFamily:columnQualifier1");

This is bad for three reasons:

1. Concatenating strings; are you serious?

2. It is targeted for a specific use case where your table contains just one kind of business object.

3. It doesn't represent actual storage order, so it's super confusing.

I think all APIs should take parameters in storage order in all cases. That is:

  keyspace.get(column_family, key, [supercolumn], column)


  
> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Priority: Minor
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver commented on CASSANDRA-139:
---------------------------------------

If your serialization format produces a dump for a particular object happens to include a ':' character, you can't use that object as a key or column name in any of the methods that expect a concatenated string where ':' has special meaning...

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Priority: Minor
>


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


[jira] Updated: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

Posted by "Michael Greene (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-139?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Greene updated CASSANDRA-139:
-------------------------------------

    Component/s: Core

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>             Fix For: 0.4
>
>         Attachments: 0001-CASSANDRA-139-thrift-changes.txt, 0001-thrift-changes.patch, 0001-thrift-changes.patch, 0002-use-ColumnPath-ColumnParent-etc.-structs-to-encapsul.txt, 0003-update-system-tests.patch, 0004-missed-one-rename-column.column_name-column.name.patch, 0005-fix-get_column_count.patch
>
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis commented on CASSANDRA-139:
------------------------------------------

Michael Greene on IRC pointed out that you can make a case for keeping all arguments the same to a slice call, with a list of keys.  This appears to be the direction Avinash was going over in CASSANDRA-70.

This makes sense if most of your ops are "I want to apply the same predicate multiple times to different rows."  Like a relational select.  This would be sufficiently general for the app I ported to Cassandra (which did after all start on a rdbms).

The alternative is to be like the batch_insert api is and for each key allow a different predicate.  I can appreciate that argument from the standpoint of symmetry, but it seems that in the common case it would make life a pain, writing

predicate = ...
get_slice(table, [(key, predicate) for key in list_of_keys])

instead of just

get_slice(table, list_of_keys, predicate)

I think the principle that "Premature optimization is the root of all evil; premature generalization is premature optimization of the feature list" applies here.

Let's plan on following Avinash's lead on the multiget API, which means that I'll pull both table and key out of the path structs shown in that patch.

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-thrift-changes.patch
>
>


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


[jira] Issue Comment Edited: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver edited comment on CASSANDRA-139 at 7/14/09 5:07 PM:
----------------------------------------------------------------

problems:

* signatures for get_slice_super and get_slice_super_by_names need to accept a ColumnParent...currently take a CF string.

* get_column_count no longer lets you count super columns (InvalidRequestException), only columns of supercolumns

carrying on with testing/review

      was (Author: eweaver):
    signatures for get_slice_super and get_slice_super_by_names need to accept a ColumnParent...currently take a CF string.

carrying on with testing/review
  
> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-CASSANDRA-139-thrift-changes.txt, 0001-thrift-changes.patch, 0001-thrift-changes.patch, 0002-use-ColumnPath-ColumnParent-etc.-structs-to-encapsul.txt, 0003-update-system-tests.patch, 0004-missed-one-rename-column.column_name-column.name.patch
>
>


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


[jira] Issue Comment Edited: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver edited comment on CASSANDRA-139 at 7/14/09 5:27 PM:
----------------------------------------------------------------

Problems:

* signatures for get_key_range, get_slice_super and get_slice_super_by_names need to accept a ColumnParent...currently take a CF string.

* get_column_count no longer lets you count super columns (InvalidRequestException) or columns of supercolumns (java.lang.UnsupportedOperationException)

Those are the regressions I hit in my test suite. Will review the actual code next. 

This is a big step forward. I am excited for the day when overlapping structs start to get unified.

      was (Author: eweaver):
    Regressions:

* signatures for get_key_range, get_slice_super and get_slice_super_by_names need to accept a ColumnParent...currently take a CF string.

* get_column_count no longer lets you count super columns (InvalidRequestException) or columns of supercolumns (java.lang.UnsupportedOperationException)

Those are the regressions I hit in my test suite. Will review the actual code next. 

This is a big step forward. I am excited for the day when overlapping structs start to get unified.
  
> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-CASSANDRA-139-thrift-changes.txt, 0001-thrift-changes.patch, 0001-thrift-changes.patch, 0002-use-ColumnPath-ColumnParent-etc.-structs-to-encapsul.txt, 0003-update-system-tests.patch, 0004-missed-one-rename-column.column_name-column.name.patch
>
>


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


[jira] Issue Comment Edited: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver edited comment on CASSANDRA-139 at 7/6/09 11:07 AM:
----------------------------------------------------------------

The switch won't be silent, because we will drop the magic colons at the same time. 

Re. routing order:

What we care about here is what knowledge the client can act on. 
 * It's important to know that a CF is a single a file with keys inside it, because that's what lets you control column-major vs. row-major storage order. 
 * It is not important to know that a single key has all its column families on the same host.

Hbase and Hypertable use routing order, but they also use the colons, so I don't they are trustworthy API design models. In the interests of not needlessly confusing the majority of developers who are familiar with SQL but not BigTable, I think we should switch it.

This normalizes some signatures because range queries let you look up based on CF and (optional) key:

  get_key_range(@keyspace, column_families, key_range.begin, key_range.end, limit)

So we already use storage order! It makes sense to trail with the optional parameters, and the CF is never optional.



      was (Author: eweaver):
    The switch won't be silent, because we will drop the magic colons at the same time. 

Re. routing order:

What we care about here is what knowledge the client can act on. 
 * It's important to know that a CF is a single a file with keys inside it, because that's what lets you control column-major vs. row-major storage order. 
 * It is not important to know that a single key has all its column families on the same host.

Hbase and Hypertable use routing order, but they also use the colons, so I don't they are trustworthy API design models.

In the interests of not needlessly confusing the majority of developers who are familiar with SQL but not BigTable, I think we should switch it.

This normalizes some signatures because range queries let you look up based on CF and (optional) key:

  get_key_range(@keyspace, column_families, key_range.begin, key_range.end, limit)

So we already use storage order! It makes sense to trail with the optional parameters, and the CF is never optional.


  
> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Priority: Minor
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis commented on CASSANDRA-139:
------------------------------------------

Gah, you edited your comment twice more. :P

Basically we need to make a call for 04 and this is it.  We can try to make it reasonably future-proof but past a certain point it's just bikeshedding.

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-thrift-changes.patch, 0001-thrift-changes.patch
>
>


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


[jira] Updated: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis updated CASSANDRA-139:
-------------------------------------

    Attachment: 0001-thrift-changes.patch

new version of proposed thrift file, with consistent naming convention (CamelCase structs; under_scored everything else)

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-thrift-changes.patch, 0001-thrift-changes.patch
>
>


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


[jira] Issue Comment Edited: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver edited comment on CASSANDRA-139 at 7/3/09 11:30 AM:
----------------------------------------------------------------

If your serialization format produces a dump for a particular object that happens to include a ':' character, you can't use that object as a key or column name in any of the methods that expect a concatenated string where ':' has special meaning...

All the user-provided values need to support the full range of possible "just byte arrays".

Maybe I am missing something.

      was (Author: eweaver):
    If your serialization format produces a dump for a particular object that happens to include a ':' character, you can't use that object as a key or column name in any of the methods that expect a concatenated string where ':' has special meaning...
  
> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Priority: Minor
>


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


[jira] Issue Comment Edited: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver edited comment on CASSANDRA-139 at 7/14/09 4:56 PM:
----------------------------------------------------------------

signatures for get_slice_super and get_slice_super_by_names need to accept a ColumnParent...currently take a CF string.

carrying on with testing/review

      was (Author: eweaver):
    signature for get_slice_super needs to accept a ColumnParent...currently takes a string.

carrying on with testing/review
  
> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-CASSANDRA-139-thrift-changes.txt, 0001-thrift-changes.patch, 0001-thrift-changes.patch, 0002-use-ColumnPath-ColumnParent-etc.-structs-to-encapsul.txt, 0003-update-system-tests.patch, 0004-missed-one-rename-column.column_name-column.name.patch
>
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver commented on CASSANDRA-139:
---------------------------------------

No multiget from multiple column families for a single key?

The new way basically matches my Ruby API exactly, but for what it's worth I thought the previous way was more flexible (if we're worried about forward compatibility). Not a big deal.

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-thrift-changes.patch, 0001-thrift-changes.patch
>
>


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


[jira] Updated: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis updated CASSANDRA-139:
-------------------------------------

    Attachment: 0004-missed-one-rename-column.column_name-column.name.patch

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-CASSANDRA-139-thrift-changes.txt, 0001-thrift-changes.patch, 0001-thrift-changes.patch, 0002-use-ColumnPath-ColumnParent-etc.-structs-to-encapsul.txt, 0003-update-system-tests.patch, 0004-missed-one-rename-column.column_name-column.name.patch
>
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis commented on CASSANDRA-139:
------------------------------------------

How so?

(Not defending the status quo by any means, just not sure what you mean.)

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Priority: Minor
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver commented on CASSANDRA-139:
---------------------------------------

Optional params is great because we can unify the supercolumn and standardcolumn APIs (no reason for the client to have to introspect on that all the time).

For my use cases I need multiget from one CF with multiple keys more than vis versa...I suppose we would want to take optional lists for every slot except keyspace, returning a list in some deterministic order.

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-thrift-changes.patch
>
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver commented on CASSANDRA-139:
---------------------------------------

i assumed they would be all reified but strings are fine when there is only one field

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-CASSANDRA-139-thrift-changes.txt, 0001-thrift-changes.patch, 0001-thrift-changes.patch, 0002-use-ColumnPath-ColumnParent-etc.-structs-to-encapsul.txt, 0003-update-system-tests.patch, 0004-missed-one-rename-column.column_name-column.name.patch
>
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver commented on CASSANDRA-139:
---------------------------------------

Build fails with that patch:

build-project:
     [echo] apache-cassandra-incubating: /Volumes/Projects/incubator/cassandra/trunk/build.xml
    [javac] Compiling 303 source files to /Volumes/Projects/incubator/cassandra/trunk/build/classes
    [javac] /Volumes/Projects/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnReadCommand.java:33: cannot find symbol
    [javac] symbol  : variable CMD_TYPE_GET_COLUMN
    [javac] location: class org.apache.cassandra.db.ColumnReadCommand
    [javac]         super(table, key, CMD_TYPE_GET_COLUMN);
    [javac]                           ^
    [javac] /Volumes/Projects/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnReadCommand.java:58: cannot find symbol
    [javac] symbol  : method getRow(java.lang.String,java.lang.String,java.util.TreeSet<java.lang.String>)
    [javac] location: class org.apache.cassandra.db.Table
    [javac]             return table.getRow(key, values[0], new TreeSet<String>(Arrays.asList(values[1])));
    [javac]                         ^
    [javac] /Volumes/Projects/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnReadCommand.java:61: cannot find symbol
    [javac] symbol  : method getRow(java.lang.String,java.lang.String,java.util.TreeSet<java.lang.String>)
    [javac] location: class org.apache.cassandra.db.Table
    [javac]         return table.getRow(key, values[0] + ":" + values[1], new TreeSet<String>(Arrays.asList(values[2])));
    [javac]                     ^
    [javac] /Volumes/Projects/incubator/cassandra/trunk/src/java/org/apache/cassandra/test/DBTest.java:43: cannot find symbol
    [javac] symbol  : method add(java.lang.String,byte[],int)
    [javac] location: class org.apache.cassandra.db.RowMutation
    [javac]             rm.add("Test:" + "Column", value.getBytes(), i);                
    [javac]               ^
    [javac] /Volumes/Projects/incubator/cassandra/trunk/src/java/org/apache/cassandra/test/TestRunner.java:64: cannot find symbol
    [javac] symbol  : method add(java.lang.String,byte[],int)
    [javac] location: class org.apache.cassandra.db.RowMutation
    [javac]                     rm.add("MailboxMailData0:SuperColumn-" + j + ":Column-" + k, bytes, k);                    
    [javac]                       ^
    [javac] /Volumes/Projects/incubator/cassandra/trunk/src/java/org/apache/cassandra/test/TestRunner.java:88: cannot find symbol
    [javac] symbol  : method getRow(java.lang.String,java.lang.String,java.util.TreeSet<java.lang.String>)
    [javac] location: class org.apache.cassandra.db.Table
    [javac]         Row row = table.getRow("0", "MailboxMailData0", list);
    [javac]                        ^
    [javac] Note: Some input files use or override a deprecated API.
    [javac] Note: Recompile with -Xlint:deprecation for details.
    [javac] Note: Some input files use unchecked or unsafe operations.
    [javac] Note: Recompile with -Xlint:unchecked for details.
    [javac] 6 errors


> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-CASSANDRA-139-thrift-changes.txt, 0001-thrift-changes.patch, 0001-thrift-changes.patch, 0002-use-ColumnPath-ColumnParent-etc.-structs-to-encapsul.txt, 0003-update-system-tests.patch, 0004-missed-one-rename-column.column_name-column.name.patch, 0005-fix-get_column_count.patch
>
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis commented on CASSANDRA-139:
------------------------------------------

One reason to care about routing order:

The batch_ methods allow inserting to multiple CFs at the same time, under the same key.

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>


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


[jira] Issue Comment Edited: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver edited comment on CASSANDRA-139 at 7/6/09 11:07 AM:
----------------------------------------------------------------

The switch won't be silent, because we will drop the magic colons at the same time. 

Re. routing order:

What we care about here is what knowledge the client can act on. 
 * It's important to know that a CF is a single a file with keys inside it, because that's what lets you control column-major vs. row-major storage order. 
 * It is not important to know that a single key has all its column families on the same host.

Hbase and Hypertable use routing order, but they also use the colons, so I don't they are trustworthy API design models.

In the interests of not needlessly confusing the majority of developers who are familiar with SQL but not BigTable, I think we should switch it.

This normalizes some signatures because range queries let you look up based on CF and (optional) key:

  get_key_range(@keyspace, column_families, key_range.begin, key_range.end, limit)

So we already use storage order! It makes sense to trail with the optional parameters, and the CF is never optional.



      was (Author: eweaver):
    The switch won't be silent, because we will drop the magic colons at the same time. Anyway, now is the time to break things.

Re. routing order:

What we care about here is what knowledge the client can act on. 
 * It's important to know that a CF is a single a file with keys inside it, because that's what lets you control column-major vs. row-major storage order. 
 * It is not important to know that a single key has all its column families on the same host.

Hbase and Hypertable use routing order, but they also use the colons, so I don't they are trustworthy API design models.

In the interests of not needlessly confusing the majority of developers who are familiar with SQL but not BigTable, I think we should switch it.

This normalizes some signatures because range queries let you look up based on CF and (optional) key:

  get_key_range(@keyspace, column_families, key_range.begin, key_range.end, limit)

So we already use storage order! It makes sense to trail with the optional parameters, and the CF is never optional.


  
> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Priority: Minor
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Evan Weaver commented on CASSANDRA-139:
---------------------------------------

I agree with that. My vote is for the key in the struct. But if we ship 0.4 with the key outside the struct, I won't complain unless I have an actual failing use case.

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-thrift-changes.patch, 0001-thrift-changes.patch
>
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Jonathan Ellis commented on CASSANDRA-139:
------------------------------------------

Yeah, I don't think it's worth complicating the common case to support the uncommon one.  (And neither did Avinash, from the code fragments we have, even though they're the only ones with a schema that would use something like that.)

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-thrift-changes.patch, 0001-thrift-changes.patch
>
>


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


[jira] Commented: (CASSANDRA-139) thrift API should use lists instead of colon-delimited strings to specify column path

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

Toby DiPasquale commented on CASSANDRA-139:
-------------------------------------------

+1. I would agree with Evan on this one. String concatenation is not awesome.

> thrift API should use lists instead of colon-delimited strings to specify column path
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-139
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-139
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Priority: Minor
>


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