You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Jonathan Gray (JIRA)" <ji...@apache.org> on 2011/09/22 20:47:26 UTC

[jira] [Created] (HBASE-4459) HbaseObjectWritable code is a byte, we will eventually run out of codes

HbaseObjectWritable code is a byte, we will eventually run out of codes
-----------------------------------------------------------------------

                 Key: HBASE-4459
                 URL: https://issues.apache.org/jira/browse/HBASE-4459
             Project: HBase
          Issue Type: Bug
          Components: io
            Reporter: Jonathan Gray
            Priority: Critical
             Fix For: 0.94.0


There are about 90 classes/codes in HbaseObjectWritable currently and Byte.MAX_VALUE is 127.  In addition, anyone wanting to add custom classes but not break compatibility might want to leave a gap before using codes and that's difficult in such limited space.

Eventually we should get rid of this pattern that makes compatibility difficult (better client/server protocol handshake) but we should probably at least bump this to a short for 0.94.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4459) HbaseObjectWritable code is a byte, we will eventually run out of codes

Posted by "ramkrishna.s.vasudevan (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4459?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13131870#comment-13131870 ] 

ramkrishna.s.vasudevan commented on HBASE-4459:
-----------------------------------------------

Commited to trunk and 0.92 branch. Thanks for the review Stack and Jon.
                
> HbaseObjectWritable code is a byte, we will eventually run out of codes
> -----------------------------------------------------------------------
>
>                 Key: HBASE-4459
>                 URL: https://issues.apache.org/jira/browse/HBASE-4459
>             Project: HBase
>          Issue Type: Bug
>          Components: io
>            Reporter: Jonathan Gray
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Critical
>             Fix For: 0.92.0
>
>         Attachments: 4459-v2.patch.txt, 4459.txt
>
>
> There are about 90 classes/codes in HbaseObjectWritable currently and Byte.MAX_VALUE is 127.  In addition, anyone wanting to add custom classes but not break compatibility might want to leave a gap before using codes and that's difficult in such limited space.
> Eventually we should get rid of this pattern that makes compatibility difficult (better client/server protocol handshake) but we should probably at least bump this to a short for 0.94.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4459) HbaseObjectWritable code is a byte, we will eventually run out of codes

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

Hudson commented on HBASE-4459:
-------------------------------

Integrated in HBase-TRUNK #2346 (See [https://builds.apache.org/job/HBase-TRUNK/2346/])
    HBASE-4459 HbaseObjectWritable code is a byte, we will eventually run out of codes

ramkrishna : 
Files : 
* /hbase/trunk/CHANGES.txt
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/io/HbaseObjectWritable.java
* /hbase/trunk/src/test/java/org/apache/hadoop/hbase/io/TestHbaseObjectWritable.java

                
> HbaseObjectWritable code is a byte, we will eventually run out of codes
> -----------------------------------------------------------------------
>
>                 Key: HBASE-4459
>                 URL: https://issues.apache.org/jira/browse/HBASE-4459
>             Project: HBase
>          Issue Type: Bug
>          Components: io
>            Reporter: Jonathan Gray
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Critical
>             Fix For: 0.92.0
>
>         Attachments: 4459-v2.patch.txt, 4459.txt
>
>
> There are about 90 classes/codes in HbaseObjectWritable currently and Byte.MAX_VALUE is 127.  In addition, anyone wanting to add custom classes but not break compatibility might want to leave a gap before using codes and that's difficult in such limited space.
> Eventually we should get rid of this pattern that makes compatibility difficult (better client/server protocol handshake) but we should probably at least bump this to a short for 0.94.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4459) HbaseObjectWritable code is a byte, we will eventually run out of codes

Posted by "Ted Yu (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4459?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13126312#comment-13126312 ] 

Ted Yu commented on HBASE-4459:
-------------------------------

So this means we can replace out.writeByte(code) in HBaseObjectWritable.writeClassCode() with WritableUtils.writeVInt

Shall we pull this JIRA into 0.92 ?
                
> HbaseObjectWritable code is a byte, we will eventually run out of codes
> -----------------------------------------------------------------------
>
>                 Key: HBASE-4459
>                 URL: https://issues.apache.org/jira/browse/HBASE-4459
>             Project: HBase
>          Issue Type: Bug
>          Components: io
>            Reporter: Jonathan Gray
>            Priority: Critical
>             Fix For: 0.94.0
>
>
> There are about 90 classes/codes in HbaseObjectWritable currently and Byte.MAX_VALUE is 127.  In addition, anyone wanting to add custom classes but not break compatibility might want to leave a gap before using codes and that's difficult in such limited space.
> Eventually we should get rid of this pattern that makes compatibility difficult (better client/server protocol handshake) but we should probably at least bump this to a short for 0.94.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4459) HbaseObjectWritable code is a byte, we will eventually run out of codes

Posted by "Todd Lipcon (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4459?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13116333#comment-13116333 ] 

Todd Lipcon commented on HBASE-4459:
------------------------------------

The scheme in WritableUtils.writeVInt looks like it's backwards-compatible for small positive bytes:
{code}
    if (i >= -112 && i <= 127) {
      stream.writeByte((byte)i);
      return;
    }
{code}
                
> HbaseObjectWritable code is a byte, we will eventually run out of codes
> -----------------------------------------------------------------------
>
>                 Key: HBASE-4459
>                 URL: https://issues.apache.org/jira/browse/HBASE-4459
>             Project: HBase
>          Issue Type: Bug
>          Components: io
>            Reporter: Jonathan Gray
>            Priority: Critical
>             Fix For: 0.94.0
>
>
> There are about 90 classes/codes in HbaseObjectWritable currently and Byte.MAX_VALUE is 127.  In addition, anyone wanting to add custom classes but not break compatibility might want to leave a gap before using codes and that's difficult in such limited space.
> Eventually we should get rid of this pattern that makes compatibility difficult (better client/server protocol handshake) but we should probably at least bump this to a short for 0.94.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HBASE-4459) HbaseObjectWritable code is a byte, we will eventually run out of codes

Posted by "ramkrishna.s.vasudevan (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4459?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

ramkrishna.s.vasudevan updated HBASE-4459:
------------------------------------------

    Status: Open  (was: Patch Available)
    
> HbaseObjectWritable code is a byte, we will eventually run out of codes
> -----------------------------------------------------------------------
>
>                 Key: HBASE-4459
>                 URL: https://issues.apache.org/jira/browse/HBASE-4459
>             Project: HBase
>          Issue Type: Bug
>          Components: io
>            Reporter: Jonathan Gray
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Critical
>             Fix For: 0.92.0
>
>         Attachments: 4459-v2.patch.txt, 4459.txt
>
>
> There are about 90 classes/codes in HbaseObjectWritable currently and Byte.MAX_VALUE is 127.  In addition, anyone wanting to add custom classes but not break compatibility might want to leave a gap before using codes and that's difficult in such limited space.
> Eventually we should get rid of this pattern that makes compatibility difficult (better client/server protocol handshake) but we should probably at least bump this to a short for 0.94.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Assigned] (HBASE-4459) HbaseObjectWritable code is a byte, we will eventually run out of codes

Posted by "ramkrishna.s.vasudevan (Assigned) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4459?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

ramkrishna.s.vasudevan reassigned HBASE-4459:
---------------------------------------------

    Assignee: ramkrishna.s.vasudevan
    
> HbaseObjectWritable code is a byte, we will eventually run out of codes
> -----------------------------------------------------------------------
>
>                 Key: HBASE-4459
>                 URL: https://issues.apache.org/jira/browse/HBASE-4459
>             Project: HBase
>          Issue Type: Bug
>          Components: io
>            Reporter: Jonathan Gray
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Critical
>             Fix For: 0.92.0
>
>
> There are about 90 classes/codes in HbaseObjectWritable currently and Byte.MAX_VALUE is 127.  In addition, anyone wanting to add custom classes but not break compatibility might want to leave a gap before using codes and that's difficult in such limited space.
> Eventually we should get rid of this pattern that makes compatibility difficult (better client/server protocol handshake) but we should probably at least bump this to a short for 0.94.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4459) HbaseObjectWritable code is a byte, we will eventually run out of codes

Posted by "dhruba borthakur (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4459?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13116155#comment-13116155 ] 

dhruba borthakur commented on HBASE-4459:
-----------------------------------------

@Todd: which "varint" are you referring to here?
                
> HbaseObjectWritable code is a byte, we will eventually run out of codes
> -----------------------------------------------------------------------
>
>                 Key: HBASE-4459
>                 URL: https://issues.apache.org/jira/browse/HBASE-4459
>             Project: HBase
>          Issue Type: Bug
>          Components: io
>            Reporter: Jonathan Gray
>            Priority: Critical
>             Fix For: 0.94.0
>
>
> There are about 90 classes/codes in HbaseObjectWritable currently and Byte.MAX_VALUE is 127.  In addition, anyone wanting to add custom classes but not break compatibility might want to leave a gap before using codes and that's difficult in such limited space.
> Eventually we should get rid of this pattern that makes compatibility difficult (better client/server protocol handshake) but we should probably at least bump this to a short for 0.94.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4459) HbaseObjectWritable code is a byte, we will eventually run out of codes

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

Jonathan Gray commented on HBASE-4459:
--------------------------------------

- Why is Queue added within the scope of this JIRA?  Seems unrelated.

- Can you remove the unnecessary import re-org at the top?

- Can we have a unit test which shows the backwards compatibility of this?

Thanks for working on this Ram.
                
> HbaseObjectWritable code is a byte, we will eventually run out of codes
> -----------------------------------------------------------------------
>
>                 Key: HBASE-4459
>                 URL: https://issues.apache.org/jira/browse/HBASE-4459
>             Project: HBase
>          Issue Type: Bug
>          Components: io
>            Reporter: Jonathan Gray
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Critical
>             Fix For: 0.92.0
>
>         Attachments: 4459.txt
>
>
> There are about 90 classes/codes in HbaseObjectWritable currently and Byte.MAX_VALUE is 127.  In addition, anyone wanting to add custom classes but not break compatibility might want to leave a gap before using codes and that's difficult in such limited space.
> Eventually we should get rid of this pattern that makes compatibility difficult (better client/server protocol handshake) but we should probably at least bump this to a short for 0.94.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4459) HbaseObjectWritable code is a byte, we will eventually run out of codes

Posted by "stack (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4459?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13131185#comment-13131185 ] 

stack commented on HBASE-4459:
------------------------------

+1
                
> HbaseObjectWritable code is a byte, we will eventually run out of codes
> -----------------------------------------------------------------------
>
>                 Key: HBASE-4459
>                 URL: https://issues.apache.org/jira/browse/HBASE-4459
>             Project: HBase
>          Issue Type: Bug
>          Components: io
>            Reporter: Jonathan Gray
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Critical
>             Fix For: 0.92.0
>
>         Attachments: 4459-v2.patch.txt, 4459.txt
>
>
> There are about 90 classes/codes in HbaseObjectWritable currently and Byte.MAX_VALUE is 127.  In addition, anyone wanting to add custom classes but not break compatibility might want to leave a gap before using codes and that's difficult in such limited space.
> Eventually we should get rid of this pattern that makes compatibility difficult (better client/server protocol handshake) but we should probably at least bump this to a short for 0.94.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HBASE-4459) HbaseObjectWritable code is a byte, we will eventually run out of codes

Posted by "ramkrishna.s.vasudevan (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4459?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

ramkrishna.s.vasudevan updated HBASE-4459:
------------------------------------------

    Status: Patch Available  (was: Open)
    
> HbaseObjectWritable code is a byte, we will eventually run out of codes
> -----------------------------------------------------------------------
>
>                 Key: HBASE-4459
>                 URL: https://issues.apache.org/jira/browse/HBASE-4459
>             Project: HBase
>          Issue Type: Bug
>          Components: io
>            Reporter: Jonathan Gray
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Critical
>             Fix For: 0.92.0
>
>         Attachments: 4459.txt
>
>
> There are about 90 classes/codes in HbaseObjectWritable currently and Byte.MAX_VALUE is 127.  In addition, anyone wanting to add custom classes but not break compatibility might want to leave a gap before using codes and that's difficult in such limited space.
> Eventually we should get rid of this pattern that makes compatibility difficult (better client/server protocol handshake) but we should probably at least bump this to a short for 0.94.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4459) HbaseObjectWritable code is a byte, we will eventually run out of codes

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

Hudson commented on HBASE-4459:
-------------------------------

Integrated in HBase-0.92 #75 (See [https://builds.apache.org/job/HBase-0.92/75/])
    HBASE-4459 HbaseObjectWritable code is a byte, we will eventually run out of codes

ramkrishna : 
Files : 
* /hbase/branches/0.92/CHANGES.txt
* /hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/io/HbaseObjectWritable.java
* /hbase/branches/0.92/src/test/java/org/apache/hadoop/hbase/io/TestHbaseObjectWritable.java

                
> HbaseObjectWritable code is a byte, we will eventually run out of codes
> -----------------------------------------------------------------------
>
>                 Key: HBASE-4459
>                 URL: https://issues.apache.org/jira/browse/HBASE-4459
>             Project: HBase
>          Issue Type: Bug
>          Components: io
>            Reporter: Jonathan Gray
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Critical
>             Fix For: 0.92.0
>
>         Attachments: 4459-v2.patch.txt, 4459.txt
>
>
> There are about 90 classes/codes in HbaseObjectWritable currently and Byte.MAX_VALUE is 127.  In addition, anyone wanting to add custom classes but not break compatibility might want to leave a gap before using codes and that's difficult in such limited space.
> Eventually we should get rid of this pattern that makes compatibility difficult (better client/server protocol handshake) but we should probably at least bump this to a short for 0.94.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HBASE-4459) HbaseObjectWritable code is a byte, we will eventually run out of codes

Posted by "ramkrishna.s.vasudevan (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4459?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

ramkrishna.s.vasudevan updated HBASE-4459:
------------------------------------------

    Status: Patch Available  (was: Open)
    
> HbaseObjectWritable code is a byte, we will eventually run out of codes
> -----------------------------------------------------------------------
>
>                 Key: HBASE-4459
>                 URL: https://issues.apache.org/jira/browse/HBASE-4459
>             Project: HBase
>          Issue Type: Bug
>          Components: io
>            Reporter: Jonathan Gray
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Critical
>             Fix For: 0.92.0
>
>         Attachments: 4459-v2.patch.txt, 4459.txt
>
>
> There are about 90 classes/codes in HbaseObjectWritable currently and Byte.MAX_VALUE is 127.  In addition, anyone wanting to add custom classes but not break compatibility might want to leave a gap before using codes and that's difficult in such limited space.
> Eventually we should get rid of this pattern that makes compatibility difficult (better client/server protocol handshake) but we should probably at least bump this to a short for 0.94.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4459) HbaseObjectWritable code is a byte, we will eventually run out of codes

Posted by "Ted Yu (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4459?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13113136#comment-13113136 ] 

Ted Yu commented on HBASE-4459:
-------------------------------

+1 on making code of type short.

> HbaseObjectWritable code is a byte, we will eventually run out of codes
> -----------------------------------------------------------------------
>
>                 Key: HBASE-4459
>                 URL: https://issues.apache.org/jira/browse/HBASE-4459
>             Project: HBase
>          Issue Type: Bug
>          Components: io
>            Reporter: Jonathan Gray
>            Priority: Critical
>             Fix For: 0.94.0
>
>
> There are about 90 classes/codes in HbaseObjectWritable currently and Byte.MAX_VALUE is 127.  In addition, anyone wanting to add custom classes but not break compatibility might want to leave a gap before using codes and that's difficult in such limited space.
> Eventually we should get rid of this pattern that makes compatibility difficult (better client/server protocol handshake) but we should probably at least bump this to a short for 0.94.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4459) HbaseObjectWritable code is a byte, we will eventually run out of codes

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

Jonathan Gray commented on HBASE-4459:
--------------------------------------

I'm fine with pulling into 0.92 since it doesn't break any compatibility.
                
> HbaseObjectWritable code is a byte, we will eventually run out of codes
> -----------------------------------------------------------------------
>
>                 Key: HBASE-4459
>                 URL: https://issues.apache.org/jira/browse/HBASE-4459
>             Project: HBase
>          Issue Type: Bug
>          Components: io
>            Reporter: Jonathan Gray
>            Priority: Critical
>             Fix For: 0.92.0
>
>
> There are about 90 classes/codes in HbaseObjectWritable currently and Byte.MAX_VALUE is 127.  In addition, anyone wanting to add custom classes but not break compatibility might want to leave a gap before using codes and that's difficult in such limited space.
> Eventually we should get rid of this pattern that makes compatibility difficult (better client/server protocol handshake) but we should probably at least bump this to a short for 0.94.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4459) HbaseObjectWritable code is a byte, we will eventually run out of codes

Posted by "Todd Lipcon (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4459?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13113413#comment-13113413 ] 

Todd Lipcon commented on HBASE-4459:
------------------------------------

We probably have to worry that someone has stored HBaseObjectWritables somewhere persistent, in which case just making the type a short is not backwards-compatible. Perhaps we should make it a varint, which I believe will encode the same for any existing data, but would be multibyte-capable?

> HbaseObjectWritable code is a byte, we will eventually run out of codes
> -----------------------------------------------------------------------
>
>                 Key: HBASE-4459
>                 URL: https://issues.apache.org/jira/browse/HBASE-4459
>             Project: HBase
>          Issue Type: Bug
>          Components: io
>            Reporter: Jonathan Gray
>            Priority: Critical
>             Fix For: 0.94.0
>
>
> There are about 90 classes/codes in HbaseObjectWritable currently and Byte.MAX_VALUE is 127.  In addition, anyone wanting to add custom classes but not break compatibility might want to leave a gap before using codes and that's difficult in such limited space.
> Eventually we should get rid of this pattern that makes compatibility difficult (better client/server protocol handshake) but we should probably at least bump this to a short for 0.94.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HBASE-4459) HbaseObjectWritable code is a byte, we will eventually run out of codes

Posted by "ramkrishna.s.vasudevan (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4459?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

ramkrishna.s.vasudevan updated HBASE-4459:
------------------------------------------

    Resolution: Fixed
        Status: Resolved  (was: Patch Available)
    
> HbaseObjectWritable code is a byte, we will eventually run out of codes
> -----------------------------------------------------------------------
>
>                 Key: HBASE-4459
>                 URL: https://issues.apache.org/jira/browse/HBASE-4459
>             Project: HBase
>          Issue Type: Bug
>          Components: io
>            Reporter: Jonathan Gray
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Critical
>             Fix For: 0.92.0
>
>         Attachments: 4459-v2.patch.txt, 4459.txt
>
>
> There are about 90 classes/codes in HbaseObjectWritable currently and Byte.MAX_VALUE is 127.  In addition, anyone wanting to add custom classes but not break compatibility might want to leave a gap before using codes and that's difficult in such limited space.
> Eventually we should get rid of this pattern that makes compatibility difficult (better client/server protocol handshake) but we should probably at least bump this to a short for 0.94.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HBASE-4459) HbaseObjectWritable code is a byte, we will eventually run out of codes

Posted by "ramkrishna.s.vasudevan (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4459?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

ramkrishna.s.vasudevan updated HBASE-4459:
------------------------------------------

    Attachment: 4459-v2.patch.txt

Latest patch with testcases.
Text and byte[] objects is persisted using current HbaseObjectWritable and read back with enhanced HbaseObjectWritable.(new patch)
                
> HbaseObjectWritable code is a byte, we will eventually run out of codes
> -----------------------------------------------------------------------
>
>                 Key: HBASE-4459
>                 URL: https://issues.apache.org/jira/browse/HBASE-4459
>             Project: HBase
>          Issue Type: Bug
>          Components: io
>            Reporter: Jonathan Gray
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Critical
>             Fix For: 0.92.0
>
>         Attachments: 4459-v2.patch.txt, 4459.txt
>
>
> There are about 90 classes/codes in HbaseObjectWritable currently and Byte.MAX_VALUE is 127.  In addition, anyone wanting to add custom classes but not break compatibility might want to leave a gap before using codes and that's difficult in such limited space.
> Eventually we should get rid of this pattern that makes compatibility difficult (better client/server protocol handshake) but we should probably at least bump this to a short for 0.94.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HBASE-4459) HbaseObjectWritable code is a byte, we will eventually run out of codes

Posted by "ramkrishna.s.vasudevan (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4459?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

ramkrishna.s.vasudevan updated HBASE-4459:
------------------------------------------

    Attachment: 4459.txt

Pls review the patch.
                
> HbaseObjectWritable code is a byte, we will eventually run out of codes
> -----------------------------------------------------------------------
>
>                 Key: HBASE-4459
>                 URL: https://issues.apache.org/jira/browse/HBASE-4459
>             Project: HBase
>          Issue Type: Bug
>          Components: io
>            Reporter: Jonathan Gray
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Critical
>             Fix For: 0.92.0
>
>         Attachments: 4459.txt
>
>
> There are about 90 classes/codes in HbaseObjectWritable currently and Byte.MAX_VALUE is 127.  In addition, anyone wanting to add custom classes but not break compatibility might want to leave a gap before using codes and that's difficult in such limited space.
> Eventually we should get rid of this pattern that makes compatibility difficult (better client/server protocol handshake) but we should probably at least bump this to a short for 0.94.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4459) HbaseObjectWritable code is a byte, we will eventually run out of codes

Posted by "stack (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4459?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13126864#comment-13126864 ] 

stack commented on HBASE-4459:
------------------------------

What is this about?

{code}
+    } else if (Queue.class.isAssignableFrom(declClass)) {
+      Queue queue = (Queue)instanceObj;
+      int length = queue.size();
+      out.writeInt(length);
+      Object obj;
+      for (int i = 0; i < length; i++) {
+        obj = queue.remove();
+        writeObject(out, obj, obj.getClass(), conf);
+      }
{code}

Is it necessary to this patch?

And this:

{code}
+    } else if (Queue.class.isAssignableFrom(declaredClass)) {
+      int length = in.readInt();
+      instance = new ConcurrentLinkedQueue();
+      for (int i = 0; i < length; i++) {
+        ((Queue)instance).add(readObject(in, conf));
+      }
{code}

Looks good Ram.  Any chance of a test to prove it works the way it used to?
                
> HbaseObjectWritable code is a byte, we will eventually run out of codes
> -----------------------------------------------------------------------
>
>                 Key: HBASE-4459
>                 URL: https://issues.apache.org/jira/browse/HBASE-4459
>             Project: HBase
>          Issue Type: Bug
>          Components: io
>            Reporter: Jonathan Gray
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Critical
>             Fix For: 0.92.0
>
>         Attachments: 4459.txt
>
>
> There are about 90 classes/codes in HbaseObjectWritable currently and Byte.MAX_VALUE is 127.  In addition, anyone wanting to add custom classes but not break compatibility might want to leave a gap before using codes and that's difficult in such limited space.
> Eventually we should get rid of this pattern that makes compatibility difficult (better client/server protocol handshake) but we should probably at least bump this to a short for 0.94.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HBASE-4459) HbaseObjectWritable code is a byte, we will eventually run out of codes

Posted by "Ted Yu (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4459?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ted Yu updated HBASE-4459:
--------------------------

    Fix Version/s:     (was: 0.94.0)
                   0.92.0
    
> HbaseObjectWritable code is a byte, we will eventually run out of codes
> -----------------------------------------------------------------------
>
>                 Key: HBASE-4459
>                 URL: https://issues.apache.org/jira/browse/HBASE-4459
>             Project: HBase
>          Issue Type: Bug
>          Components: io
>            Reporter: Jonathan Gray
>            Priority: Critical
>             Fix For: 0.92.0
>
>
> There are about 90 classes/codes in HbaseObjectWritable currently and Byte.MAX_VALUE is 127.  In addition, anyone wanting to add custom classes but not break compatibility might want to leave a gap before using codes and that's difficult in such limited space.
> Eventually we should get rid of this pattern that makes compatibility difficult (better client/server protocol handshake) but we should probably at least bump this to a short for 0.94.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira