You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Jonathan Gray (JIRA)" <ji...@apache.org> on 2008/08/08 19:37:44 UTC

[jira] Created: (HBASE-803) Atomic increment operations

Atomic increment operations
---------------------------

                 Key: HBASE-803
                 URL: https://issues.apache.org/jira/browse/HBASE-803
             Project: Hadoop HBase
          Issue Type: New Feature
          Components: client, ipc, regionserver
    Affects Versions: 0.2.0
            Reporter: Jonathan Gray
            Priority: Minor
             Fix For: 0.2.1


Discussion was already started in HBASE-798

First version will contain to additional HTable methods:

incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.

incrementFamilyColumn(table,row,family:) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.

I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.

Next week I will likely have a go at HBASE-493

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


Re: [jira] Commented: (HBASE-803) Atomic increment operations

Posted by Ryan Rawson <ry...@gmail.com>.
How does it look under concurrent load? Id be interested in seeing many
threads against 1 value...

On Mar 7, 2009 11:51 PM, "Jonathan Gray (JIRA)" <ji...@apache.org> wrote:

[
https://issues.apache.org/jira/browse/HBASE-803?page=com.atlassian.jira.plugin.system.issueta.
..

[jira] Updated: (HBASE-803) Atomic increment operations

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

ryan rawson updated HBASE-803:
------------------------------

    Attachment: HBASE-803-v2.patch

new patch, but uses longs as the param and return types.

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.2.0
>            Reporter: Jonathan Gray
>            Assignee: ryan rawson
>            Priority: Minor
>             Fix For: 0.20.0
>
>         Attachments: hbase-803-v1.patch, HBASE-803-v2.patch, HBASE-803.patch
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Updated: (HBASE-803) Atomic increment operations

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

stack updated HBASE-803:
------------------------

    Resolution: Fixed
        Status: Resolved  (was: Patch Available)

Committed the patch for crash.  Thanks for the patch Ryan. Lets open new issue next time rather than reuse.

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.19.0
>            Reporter: Jonathan Gray
>            Assignee: ryan rawson
>            Priority: Minor
>             Fix For: 0.20.0, 0.19.1
>
>         Attachments: HBASE-803-crash-bug.patch, hbase-803-v1.patch, HBASE-803-v2.patch, HBASE-803-v3-0.19.patch, HBASE-803-v3-0.20.patch, HBASE-803-v3.patch, HBASE-803.patch
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Updated: (HBASE-803) Atomic increment operations

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

ryan rawson updated HBASE-803:
------------------------------

    Attachment: HBASE-803-crash-bug.patch

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.19.0
>            Reporter: Jonathan Gray
>            Assignee: ryan rawson
>            Priority: Minor
>             Fix For: 0.19.1, 0.20.0
>
>         Attachments: HBASE-803-crash-bug.patch, hbase-803-v1.patch, HBASE-803-v2.patch, HBASE-803-v3-0.19.patch, HBASE-803-v3-0.20.patch, HBASE-803-v3.patch, HBASE-803.patch
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Commented: (HBASE-803) Atomic increment operations

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

Jonathan Gray commented on HBASE-803:
-------------------------------------

Everything seems to be working.  I have not tested data-loss scenarios.  < 0.5ms/increment in bulk, 3ms indvidually (client on master, gigabit ethernet to regionserver).

On our cluster:
{code}
Completed 1000 increments (0 to 10000 by 10) in 405ms (0.405 ms/increment)
Completed 1000 increments (0 to 20000 by 10) in 394ms (0.394 ms/increment)
Completed 1 increments (0 to 20010 by 10) in 3ms (3.0 ms/increment)
Completed 1 increments (0 to 20020 by 10) in 3ms (3.0 ms/increment)
{code}

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.19.0
>            Reporter: Jonathan Gray
>            Assignee: ryan rawson
>            Priority: Minor
>             Fix For: 0.19.1, 0.20.0
>
>         Attachments: hbase-803-v1.patch, HBASE-803-v2.patch, HBASE-803-v3-0.19.patch, HBASE-803-v3-0.20.patch, HBASE-803.patch
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Updated: (HBASE-803) Atomic increment operations

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

Jonathan Gray updated HBASE-803:
--------------------------------

    Attachment:     (was: hbase-803-v2-0.19.patch)

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.19.0
>            Reporter: Jonathan Gray
>            Assignee: ryan rawson
>            Priority: Minor
>             Fix For: 0.19.1, 0.20.0
>
>         Attachments: hbase-803-v1.patch, HBASE-803-v2.patch, HBASE-803.patch
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Updated: (HBASE-803) Atomic increment operations

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

Jonathan Gray updated HBASE-803:
--------------------------------

    Attachment: HBASE-803-v2-0.19.patch

Version of Ryan's patch for 0.19 branch that compiles.  It's called HStore here.

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.19.0
>            Reporter: Jonathan Gray
>            Assignee: ryan rawson
>            Priority: Minor
>             Fix For: 0.19.1, 0.20.0
>
>         Attachments: hbase-803-v1.patch, HBASE-803-v2-0.19.patch, HBASE-803-v2.patch, HBASE-803.patch
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Reopened: (HBASE-803) Atomic increment operations

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

ryan rawson reopened HBASE-803:
-------------------------------


the server code crashes if you increment during a flush, with an exception "more than 1 value from memcache.".  The solution is to only use the first value if there are more than 1 returned - with the snapshot, it's possible to return 2 values during a flush.

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.19.0
>            Reporter: Jonathan Gray
>            Assignee: ryan rawson
>            Priority: Minor
>             Fix For: 0.19.1, 0.20.0
>
>         Attachments: HBASE-803-crash-bug.patch, hbase-803-v1.patch, HBASE-803-v2.patch, HBASE-803-v3-0.19.patch, HBASE-803-v3-0.20.patch, HBASE-803-v3.patch, HBASE-803.patch
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Updated: (HBASE-803) Atomic increment operations

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

stack updated HBASE-803:
------------------------

    Fix Version/s:     (was: 0.19.0)
                   0.20.0

Moved it out of 0.19.0.

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.2.0
>            Reporter: Jonathan Gray
>            Assignee: Jonathan Gray
>            Priority: Minor
>             Fix For: 0.20.0
>
>         Attachments: hbase-803-v1.patch
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Updated: (HBASE-803) Atomic increment operations

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

Jonathan Gray updated HBASE-803:
--------------------------------

    Description: 
Discussion was already started in HBASE-798

First version will contain to additional HTable methods:

incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.

incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.

I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.

Next week I will likely have a go at HBASE-493

  was:
Discussion was already started in HBASE-798

First version will contain to additional HTable methods:

incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.

incrementFamilyColumn(table,row,family:) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.

I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.

Next week I will likely have a go at HBASE-493


Removed the :)

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.2.0
>            Reporter: Jonathan Gray
>            Priority: Minor
>             Fix For: 0.2.1
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Updated: (HBASE-803) Atomic increment operations

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

ryan rawson updated HBASE-803:
------------------------------

    Attachment: HBASE-803-v3.patch

the next patch iteration against trunk.

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.19.0
>            Reporter: Jonathan Gray
>            Assignee: ryan rawson
>            Priority: Minor
>             Fix For: 0.19.1, 0.20.0
>
>         Attachments: hbase-803-v1.patch, HBASE-803-v2.patch, HBASE-803-v3-0.19.patch, HBASE-803-v3-0.20.patch, HBASE-803-v3.patch, HBASE-803.patch
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Resolved: (HBASE-803) Atomic increment operations

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

stack resolved HBASE-803.
-------------------------

    Resolution: Fixed

Committed branch and trunk (Thanks for the patch ryan and jon).

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.19.0
>            Reporter: Jonathan Gray
>            Assignee: ryan rawson
>            Priority: Minor
>             Fix For: 0.19.1, 0.20.0
>
>         Attachments: hbase-803-v1.patch, HBASE-803-v2.patch, HBASE-803-v3-0.19.patch, HBASE-803-v3-0.20.patch, HBASE-803-v3.patch, HBASE-803.patch
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Assigned: (HBASE-803) Atomic increment operations

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

Jonathan Gray reassigned HBASE-803:
-----------------------------------

    Assignee: Jonathan Gray

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.2.0
>            Reporter: Jonathan Gray
>            Assignee: Jonathan Gray
>            Priority: Minor
>             Fix For: 0.2.1
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Updated: (HBASE-803) Atomic increment operations

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

ryan rawson updated HBASE-803:
------------------------------

    Status: Patch Available  (was: Reopened)

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.19.0
>            Reporter: Jonathan Gray
>            Assignee: ryan rawson
>            Priority: Minor
>             Fix For: 0.20.0, 0.19.1
>
>         Attachments: HBASE-803-crash-bug.patch, hbase-803-v1.patch, HBASE-803-v2.patch, HBASE-803-v3-0.19.patch, HBASE-803-v3-0.20.patch, HBASE-803-v3.patch, HBASE-803.patch
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Updated: (HBASE-803) Atomic increment operations

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

Jonathan Gray updated HBASE-803:
--------------------------------

    Attachment: HBASE-803-v3-0.20.patch
                HBASE-803-v3-0.19.patch

Changes HTable method to long to match HRI.  Also changes logging in HRegion to debug level, even one line per increment is noisy for info.

0.19 patch just changes Store back to HStore and RPC version from 15 to 16 (instead of 16 to 17)... What's the right thing to do here?  This is actually a unique RPC version as it's not 15, 16 or 17.

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.19.0
>            Reporter: Jonathan Gray
>            Assignee: ryan rawson
>            Priority: Minor
>             Fix For: 0.19.1, 0.20.0
>
>         Attachments: hbase-803-v1.patch, HBASE-803-v2.patch, HBASE-803-v3-0.19.patch, HBASE-803-v3-0.20.patch, HBASE-803.patch
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Updated: (HBASE-803) Atomic increment operations

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

Jonathan Gray updated HBASE-803:
--------------------------------

    Status: Open  (was: Patch Available)

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.19.0
>            Reporter: Jonathan Gray
>            Assignee: ryan rawson
>            Priority: Minor
>             Fix For: 0.19.1, 0.20.0
>
>         Attachments: hbase-803-v1.patch, HBASE-803-v2.patch, HBASE-803.patch
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Commented: (HBASE-803) Atomic increment operations

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

Jonathan Gray commented on HBASE-803:
-------------------------------------

Unfortunately I have to switch my focus to another project for the next few days.

I will post the patch I have now so you can see what I'm doing, but it is still buggy.  incrementFamilyColumn is a bit odd and may not work at all.

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.2.0
>            Reporter: Jonathan Gray
>            Assignee: Jonathan Gray
>            Priority: Minor
>             Fix For: 0.2.1
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Updated: (HBASE-803) Atomic increment operations

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

Jim Kellerman updated HBASE-803:
--------------------------------

    Fix Version/s: 0.19.0

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.2.0
>            Reporter: Jonathan Gray
>            Assignee: Jonathan Gray
>            Priority: Minor
>             Fix For: 0.19.0
>
>         Attachments: hbase-803-v1.patch
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Commented: (HBASE-803) Atomic increment operations

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

Clint Morgan commented on HBASE-803:
------------------------------------

What does it mean to increment a cell value? Is there an implicit type that the byte[]  is deserialized to (long/int..)? Or some sort of increment of a byte[]? Perhaps it would be best to be as generic as possible, and pass a byte[] modify(byte []) method? Would add to the RPC cost, though..

I'm a bit concerned that the functionality as proposed above is too specialized for the HTable api, which is already sizable..

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.2.0
>            Reporter: Jonathan Gray
>            Priority: Minor
>             Fix For: 0.2.1
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Updated: (HBASE-803) Atomic increment operations

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

Jonathan Gray updated HBASE-803:
--------------------------------

    Attachment: hbase-803-v1.patch

This patch applies against TRUNK but does not compile.

Within HR it relies on new batchUpdate and getFull methods that can be passed previously acquired row locks.

Will clean up HBASE-798 next week, though latest patch should work.

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.2.0
>            Reporter: Jonathan Gray
>            Assignee: Jonathan Gray
>            Priority: Minor
>             Fix For: 0.2.1
>
>         Attachments: hbase-803-v1.patch
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Updated: (HBASE-803) Atomic increment operations

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

ryan rawson updated HBASE-803:
------------------------------

    Attachment: HBASE-803.patch

new atomic increment - for efficiency only increments up to 64 bits total. Test also works.

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.2.0
>            Reporter: Jonathan Gray
>            Assignee: ryan rawson
>            Priority: Minor
>             Fix For: 0.20.0
>
>         Attachments: hbase-803-v1.patch, HBASE-803.patch
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Commented: (HBASE-803) Atomic increment operations

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

Jonathan Gray commented on HBASE-803:
-------------------------------------

Currently I am doing an actual byte increment.  I may actual do as you propose, passing a modify method.  But for now I'm leaving as a straight byte-increment.  This includes adding additional bytes if you overflow your array size.  I should have a patch up today so you can see.

I completely agree that this functionality is probably too specialized for HTable api.  I'm doing it for internal use and I know of at least one other person who wants similar behavior.  So I figured I'd put it out there for others to see or use.

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.2.0
>            Reporter: Jonathan Gray
>            Priority: Minor
>             Fix For: 0.2.1
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Commented: (HBASE-803) Atomic increment operations

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

stack commented on HBASE-803:
-----------------------------

Here's a couple of comments on the patch:

Javadoc on new method in HTable is wrong (run ant javadoc and you'll see the warnings).  I'd suggest you remove it.  The correct javadoc in the Interface will shine through when the javadoc tool is run.

The below should probably be DEBUG especially if you are talking of many updates an hour:

+        LOG.info("Overwriting the memcache value for " + Bytes.toString(row) + "/" + Bytes.toString(column));

Same here:

+          LOG.info("Using HFile previous value for " + Bytes.toString(row) + "/" + Bytes.toString(column));

,,,,and this:

+        LOG.info("Creating new counter value for " + Bytes.toString(row) + "/"+ Bytes.toString(column));

I don't think this necessary though no harm I suppose:

+      for (int i = 0; i < newvalue.length; ++i)
+        newvalue[i] = 0;

Here, I think  you can add the exception as an extra argument:\

+      IOException io = new IOException(
+          "Invalid arguments to incrementColumnValue");
+      io.initCause(npe);

As in, new IOException("Invalid....", npe);

I could be wrong on that.  Just FYI.

Your new test is missing an Apache license header.

Otherwise patch is great.  Does it work for you jgray?





> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.2.0
>            Reporter: Jonathan Gray
>            Assignee: ryan rawson
>            Priority: Minor
>             Fix For: 0.20.0
>
>         Attachments: hbase-803-v1.patch, HBASE-803-v2.patch, HBASE-803.patch
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Commented: (HBASE-803) Atomic increment operations

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

ryan rawson commented on HBASE-803:
-----------------------------------

we may also need this functionality.  Fast up-to-date counters like this are a common use case out there, I think it could be justified to create a new API point for it.  

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.2.0
>            Reporter: Jonathan Gray
>            Assignee: Jonathan Gray
>            Priority: Minor
>             Fix For: 0.20.0
>
>         Attachments: hbase-803-v1.patch
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Updated: (HBASE-803) Atomic increment operations

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

Jim Kellerman updated HBASE-803:
--------------------------------

    Fix Version/s:     (was: 0.2.1)

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.2.0
>            Reporter: Jonathan Gray
>            Assignee: Jonathan Gray
>            Priority: Minor
>         Attachments: hbase-803-v1.patch
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Assigned: (HBASE-803) Atomic increment operations

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

ryan rawson reassigned HBASE-803:
---------------------------------

    Assignee: ryan rawson  (was: Jonathan Gray)

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.2.0
>            Reporter: Jonathan Gray
>            Assignee: ryan rawson
>            Priority: Minor
>             Fix For: 0.20.0
>
>         Attachments: hbase-803-v1.patch, HBASE-803.patch
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Commented: (HBASE-803) Atomic increment operations

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

Andrew Purtell commented on HBASE-803:
--------------------------------------

Just a random thought but incrementors (and decrementors, etc.) could be handled the same way row fitlers are handled: There are a standard set implemented server side that the client can build descriptors for and send them up in RPC invocations. 

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.2.0
>            Reporter: Jonathan Gray
>            Assignee: Jonathan Gray
>            Priority: Minor
>             Fix For: 0.2.1
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Updated: (HBASE-803) Atomic increment operations

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

Jonathan Gray updated HBASE-803:
--------------------------------

        Fix Version/s: 0.19.1
    Affects Version/s:     (was: 0.2.0)
                       0.19.0
               Status: Patch Available  (was: Open)

Patch that applies cleanly to 0.19 branch.  I'd like to get this in to 0.19.1 release if possible.  Currently doing more thorough testing.

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.19.0
>            Reporter: Jonathan Gray
>            Assignee: ryan rawson
>            Priority: Minor
>             Fix For: 0.19.1, 0.20.0
>
>         Attachments: hbase-803-v1.patch, HBASE-803-v2.patch, HBASE-803.patch
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Updated: (HBASE-803) Atomic increment operations

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

Jonathan Gray updated HBASE-803:
--------------------------------

    Attachment: hbase-803-v2-0.19.patch

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.19.0
>            Reporter: Jonathan Gray
>            Assignee: ryan rawson
>            Priority: Minor
>             Fix For: 0.19.1, 0.20.0
>
>         Attachments: hbase-803-v1.patch, hbase-803-v2-0.19.patch, HBASE-803-v2.patch, HBASE-803.patch
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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


[jira] Updated: (HBASE-803) Atomic increment operations

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

Jonathan Gray updated HBASE-803:
--------------------------------

    Attachment:     (was: HBASE-803-v2-0.19.patch)

> Atomic increment operations
> ---------------------------
>
>                 Key: HBASE-803
>                 URL: https://issues.apache.org/jira/browse/HBASE-803
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>    Affects Versions: 0.19.0
>            Reporter: Jonathan Gray
>            Assignee: ryan rawson
>            Priority: Minor
>             Fix For: 0.19.1, 0.20.0
>
>         Attachments: hbase-803-v1.patch, HBASE-803-v2.patch, HBASE-803.patch
>
>
> Discussion was already started in HBASE-798
> First version will contain to additional HTable methods:
> incrementColumnValue(table,row,family:column) -> Inserts a new version of the specified column (which must already exist) with an incremented cell value.
> incrementFamilyColumn(table,row,family: ) -> Inserts a new column under the specified family.  This assumes the family always contains only one column.  That column is read, incremented, deleted, and a new column is inserted with the incremented column name.  The existing value is re-inserted unchanged to the new column.
> I'm going to be making even more specialized versions of these for internal use (taking apart byte[]'s, doing different bit/byte operations, and assorted munging...).  So if anyone has any requests for other specialized versions, or more generic versions, please post them here and I'd be more than happy to take a stab at them.
> Next week I will likely have a go at HBASE-493

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