accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aaron Kimball (JIRA)" <>
Subject [jira] [Commented] (ACCUMULO-2437) Cannot create splits with MSBit set in MSByte via API
Date Fri, 07 Mar 2014 06:34:43 GMT


Aaron Kimball commented on ACCUMULO-2437:

I also tried ranging i from -127 to 127 for good measure.

For what its worth, the following lines do work in the Accumulo shell:

{code}addsplits \x80 -t entity_test
addsplits \x81 -t entity_test
addsplits \x82 -t entity_test

so its possible to add the high-bit byte-centric splits there. I think the limitation is in
the API's use of Text more than a fundamental implementation detail

> Cannot create splits with MSBit set in MSByte via API 
> ------------------------------------------------------
>                 Key: ACCUMULO-2437
>                 URL:
>             Project: Accumulo
>          Issue Type: Bug
>    Affects Versions: 1.5.1
>            Reporter: Aaron Kimball
> I cannot create a table with 256 evenly-sliced splits using the API. I believe due to
the fact that Text can only hold valid Unicode characters, the following only generates 129
> {code}
>     TableOperations tableOps = connector.tableOperations();
>     TreeSet<Text> splits = new TreeSet<Text>();
>     for (int i = 0; i < 256; i++) { 
>       byte[] bytes = { (byte) i };
>       String theStr = new String(bytes);
>       splits.add(new Text(theStr));
>     } 
>     tableOps.addSplits(TABLE_NAME, splits);
> {code}
> Using {{getsplits}} in the shell, I see the highest split be 0x7F; while we can use byte
values 0x80 through 0xFF as leading bytes in row keys, the use of {{Text}} in the {{addSplits()}}
method makes these invalid strings to split on.

This message was sent by Atlassian JIRA

View raw message