You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Daniel Lord (Created) (JIRA)" <ji...@apache.org> on 2011/11/01 20:21:32 UTC

[jira] [Created] (HBASE-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
----------------------------------------------------------------------------------------

                 Key: HBASE-4720
                 URL: https://issues.apache.org/jira/browse/HBASE-4720
             Project: HBase
          Issue Type: Improvement
            Reporter: Daniel Lord


I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Hadoop QA commented on HBASE-4720:
----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12510309/HBASE-4720.trunk.v4.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 6 new or modified tests.

    -1 javadoc.  The javadoc tool appears to have generated -146 warning messages.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    -1 findbugs.  The patch appears to introduce 81 new Findbugs (version 1.3.9) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

     -1 core tests.  The patch failed these unit tests:
                       org.apache.hadoop.hbase.mapreduce.TestImportTsv
                  org.apache.hadoop.hbase.mapred.TestTableMapReduce
                  org.apache.hadoop.hbase.mapreduce.TestHFileOutputFormat

Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/743//testReport/
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/743//artifact/trunk/patchprocess/newPatchFindbugsWarnings.html
Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/743//console

This message is automatically generated.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu updated HBASE-4720:
------------------------------

    Attachment:     (was: HBASE-4720.trunk.v2.patch)
    
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Andrew Purtell commented on HBASE-4720:
---------------------------------------

Either the current semantics for REST paths remain the same, that is /table/row/ ..., or every operation is changed to specify the operation first, e.g. /operation/table/row ... . 
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

Minor comments:
{code}
+   * Validates the input request parameters, parse columns from CellSetModel,
+   * and invoke checkAndPut on HTable.
{code}
should read 'parses columns ... and invokes ...'
Same applies to CheckAndDeleteRowResource.update()

Please remove the year in CheckAndPutRowResource.java

Nice job.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu updated HBASE-4720:
------------------------------

    Attachment:     (was: HBASE-4720.trunk.v1.patch)
    
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

Patch v5 looks good.
{code}
+   * @return Response 200 for OK and 304 for not-modified
{code}
BAD_REQUEST is 400. Please update the above javadoc for the two update methods.

@Andrew:
Do you have comments about patch v5 ?
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

Thanks Ted. I am done with refactor the code/unit-tests. Once unit test (with runLargeTests) ran, will update the diff to review board and update the patch here. Thanks.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>         Attachments: HBASE-4720.v1.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

I used the formatter provided by Nicolas.

Please adjust line length manually.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Hadoop QA commented on HBASE-4720:
----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12508447/HBASE-4720.trunk.v2.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 6 new or modified tests.

    -1 javadoc.  The javadoc tool appears to have generated -151 warning messages.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    -1 findbugs.  The patch appears to introduce 77 new Findbugs (version 1.3.9) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

     -1 core tests.  The patch failed these unit tests:
                       org.apache.hadoop.hbase.mapred.TestTableMapReduce
                  org.apache.hadoop.hbase.mapreduce.TestHFileOutputFormat

Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/583//testReport/
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/583//artifact/trunk/patchprocess/newPatchFindbugsWarnings.html
Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/583//console

This message is automatically generated.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

For patch based on 0.90 branch, you can still upload to reviewboard.
Here was from Jonathan Hsieh:

Assuming you are using git and have a single committed patch which is your
current branch, I've found using git's 'git format-patch HEAD^' and using
the generated file with the 'hbase-git' project to be the easiest.  The file
name generated should start with 0001-HBASE-xxxxx.patch.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

{code}
[ERROR] /Users/zhihyu/trunk-hbase/src/main/java/org/apache/hadoop/hbase/rest/RootResource.java:[108,9] cannot find symbol
[ERROR] symbol  : class CheckAndPutTableResource
[ERROR] location: class org.apache.hadoop.hbase.rest.RootResource
[ERROR] 
[ERROR] /Users/zhihyu/trunk-hbase/src/main/java/org/apache/hadoop/hbase/rest/RootResource.java:[114,9] cannot find symbol
[ERROR] symbol  : class CheckAndDeleteTableResource
[ERROR] location: class org.apache.hadoop.hbase.rest.RootResource
[ERROR] 
{code}
I think some new files were not added as part of TRUNK patch.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

@Mubarak:
Thanks for your persistence.

Please also describe the scenarios that you tested in your cluster.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Andrew Purtell commented on HBASE-4720:
---------------------------------------

+1 except for small debug logging nit that can be corrected on commit.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.92.1, 0.96.0, 0.94.1
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, 4720_trunk_v3.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

@Ted:
{{eclipse_formatter_apache.xml}} does not work for long lines. Do you mind to post your eclipse formatter rule file? Thanks.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu updated HBASE-4720:
------------------------------

    Attachment:     (was: HBASE-4720.trunk.v1.patch)
    
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Lars Hofhansl commented on HBASE-4720:
--------------------------------------

Needs to be reviewed today to get into 0.94.0. Can still aim for 0.94.1.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Hudson commented on HBASE-4720:
-------------------------------

Integrated in HBase-0.94 #235 (See [https://builds.apache.org/job/HBase-0.94/235/])
    HBASE-4720 Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server (Revision 1344399)

     Result = FAILURE
stack : 
Files : 
* /hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/RowResource.java
* /hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java
* /hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/client/RemoteHTable.java
* /hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/rest/TestRowResource.java

                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.92.1, 0.96.0, 0.94.1
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, 4720_trunk_v3.1.patch, 4720_trunk_v3.patch, 4720_trunk_v3.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Jimmy Xiang updated HBASE-4720:
-------------------------------

    Status: Patch Available  (was: Open)

Logged more info for put. It's tested on a live cluster and checkAndPut, checkAndDelete, and regular check work for me.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.96.0
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, 4720_trunk_v3.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

@Andrew:
Glad to see your response.

Mubarak responded to your comment at the end of:
https://issues.apache.org/jira/browse/HBASE-4720?focusedCommentId=13184647&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13184647

which refers to Stack's comment: https://issues.apache.org/jira/browse/HBASE-4720?focusedCommentId=13169969&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13169969

I have been requesting your comment since Jan. 12th: https://issues.apache.org/jira/browse/HBASE-4720?focusedCommentId=13185150&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13185150

I didn't see a -1 until this morning.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed updated HBASE-4720:
---------------------------------

    Attachment: HBASE-4720.v3.patch

The attached file (HBASE-4720.v3.patch) contains refactored code with unit tests.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Andrew Purtell commented on HBASE-4720:
---------------------------------------

Ted, I am going to revert your commit.

{quote}
bq. The URI format for requests is '/<table>/<row>/ ...' This violates that by adding, just for check-and cases, a prefix. Having a special case like that should be avoided. What about handling this in TableResource, with a query parameter? '/<table>/<row>/?check' E.g.Then you won't need CheckAndXTableResource classes. Additionally use the appropriate HTTP operations. PUT/POST for check-and-put. DELETE for check-and-delete. The spec does not forbid bodies in DELETE requests. (I am unsure if Jetty/Jersey will support it however.)

We have discussed the design choices earlier (refer comments in the same JIRA), Stack and Ted have voted for option # 2 (/checkandput, /checkanddelete) option. If i have to go back to option #1 then i will have to re-work most of the stuff here.
{quote}

This has not changed, therefore -1.

                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

This patch does not cover the following from Andrew's comments:

{quote}
The REST gateway does support a batch put operation, where the supplied model contains multiple rows. The request URI will contain the table name and a row key, but the row key would be ignored and should be set to something known not to exist, like "submit". (Row name in the model takes preference to whatever was supplied in the URI.) See RowResource, starting around line 160. This gives the client the option of submitting work in batch, to reduce overheads.

So optionally here you could retrieve a list of rows and process them, building a response that includes the disposition of each.
{quote}

[HTable.checkAndPut|http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HTable.html] and [HTable.checkAndDelete|http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HTable.html]
API supports only one row at a time. I don't think we need to support batch of checkAndPut and checkAndDelete.

{quote}
The URI format for requests is '/<table>/<row>/ ...' This violates that by adding, just for check-and cases, a prefix. Having a special case like that should be avoided. What about handling this in TableResource, with a query parameter? '/<table>/<row>/?check' E.g.Then you won't need CheckAndXTableResource classes. Additionally use the appropriate HTTP operations. PUT/POST for check-and-put. DELETE for check-and-delete. The spec does not forbid bodies in DELETE requests. (I am unsure if Jetty/Jersey will support it however.)
{quote}

We have discussed the design choices earlier (refer comments in the same JIRA), Stack and Ted have voted for option # 2 (/checkandput, /checkanddelete) option. If i have to go back to option #1 then i will have to re-work most of the stuff here.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

Thanks Ted and Stack.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

I addressed most of the review comments, will wait until get more review comments from Andrew (and others).

{code}
parameter update is not being used in other places as well.

RowResoure.java:
----------------
Response update(final CellSetModel model, final boolean replace)

Response updateBinary(final byte[] message, final HttpHeaders headers,
      final boolean replace) 

ScannerResource.java:
---------------------
Response update(final ScannerModel model, final boolean replace,
      final UriInfo uriInfo) {
{code}
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Hadoop QA commented on HBASE-4720:
----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12530230/4720_trunk_v3.1.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 3 new or modified tests.

    +1 hadoop2.0.  The patch compiles against the hadoop 2.0 profile.

    +1 javadoc.  The javadoc tool did not generate any warning messages.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    -1 findbugs.  The patch appears to cause Findbugs (version 1.3.9) to fail.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

     -1 core tests.  The patch failed these unit tests:
                       org.apache.hadoop.hbase.master.TestSplitLogManager
                  org.apache.hadoop.hbase.master.TestLogsCleaner
                  org.apache.hadoop.hbase.regionserver.TestServerCustomProtocol

Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/2055//testReport/
Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/2055//console

This message is automatically generated.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.92.1, 0.96.0, 0.94.1
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, 4720_trunk_v3.1.patch, 4720_trunk_v3.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

Hi Andy,

Can you please review the patch? Thanks.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.1
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

stack commented on HBASE-4720:
------------------------------

Would using an attribute work?

?check=true

How you passing the value to check when PUT'ing or DELETE'ing?
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu updated HBASE-4720:
------------------------------

    Status: Patch Available  (was: Open)
    
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

stack commented on HBASE-4720:
------------------------------

@Mubarak That test fails for me too on a mac (I presume you are on a mac -- smile).  Need to dig in.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Hadoop QA commented on HBASE-4720:
----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12511419/HBASE-4720.trunk.v5.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 3 new or modified tests.

    -1 javadoc.  The javadoc tool appears to have generated -145 warning messages.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    -1 findbugs.  The patch appears to introduce 85 new Findbugs (version 1.3.9) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

     -1 core tests.  The patch failed these unit tests:
                       org.apache.hadoop.hbase.replication.TestReplicationPeer
                  org.apache.hadoop.hbase.mapreduce.TestImportTsv
                  org.apache.hadoop.hbase.mapred.TestTableMapReduce
                  org.apache.hadoop.hbase.mapreduce.TestHFileOutputFormat

Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/832//testReport/
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/832//artifact/trunk/patchprocess/newPatchFindbugsWarnings.html
Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/832//console

This message is automatically generated.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Jimmy Xiang commented on HBASE-4720:
------------------------------------

The new review request is here: https://reviews.apache.org/r/5259/
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.96.0
>
>         Attachments: 4720_trunk.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

The failed tests were due to NumberFormatException (see MAPREDUCE-3583)
TestMasterReplication hung but shouldn't be caused by this JIRA.

The latest patch should be good to go.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Jimmy Xiang updated HBASE-4720:
-------------------------------

    Status: Open  (was: Patch Available)
    
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.96.0
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, 4720_trunk_v3.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Jimmy Xiang updated HBASE-4720:
-------------------------------

    Status: Patch Available  (was: Open)

I enhanced Mubarak's patch a little bit and rebased it to the latest trunk branch.

Unit test is green:

mvn -PrunMediumTests -Dtest=Test*Resource clean test
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.96.0
>
>         Attachments: 4720_trunk.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

stack updated HBASE-4720:
-------------------------

      Resolution: Fixed
    Hadoop Flags: Reviewed
          Status: Resolved  (was: Patch Available)

Committed to 0.92, 0.94 and trunk.  Thanks for the patch  Jimmy and Mubarak.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.96.0, 0.94.1, 0.92.1
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, 4720_trunk_v3.1.patch, 4720_trunk_v3.patch, 4720_trunk_v3.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

Latest patch passed unit tests.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Hadoop QA commented on HBASE-4720:
----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12530092/4720_trunk.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 3 new or modified tests.

    +1 hadoop2.0.  The patch compiles against the hadoop 2.0 profile.

    +1 javadoc.  The javadoc tool did not generate any warning messages.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    -1 findbugs.  The patch appears to cause Findbugs (version 1.3.9) to fail.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

    +1 core tests.  The patch passed unit tests in .

Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/2033//testReport/
Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/2033//console

This message is automatically generated.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.96.0
>
>         Attachments: 4720_trunk.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

Thanks Ted. This is what i think about refactoring the TableResource and CheckAndXXXXResource.

I can't extend from TableResource as WebContainer ends up look for @Path in TableResource after calling super(table) in CheckAndXXXXResource, which causes web container to throw incorrect URI exception. 

Even if i make some of the methods (scanTransformAttrs) to static, it breaks on variables scope.

I think we need a superClass for both TableResource and CheckAndXXXXResource, which can carry most of the methods (scanTransformAttrs, getTransform, setTransform, tranform), it would look like

{code}
public class BasicResource extends ResourceBase{

   -- All the common methods --
}

public class TableResource extends BasicResource{

}

public class CheckAndXXXXResource extends BasicResource{

}

{code}

OR we can move all the common methods to ResourceBase and we can have overloaded constructor to send table name, like

{code}
public ResourceBase(String table){

}

public ResourceBase(){

}
{code}

so that all other resource classes (such as VersionResource, SchemaResource, etc) does not need to change.

I am just hacking the code with option #2 (moving methods to ResourceBase), will test it out, post them on review board then wait for comments.

Thanks,
Mubarak
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>         Attachments: HBASE-4720.v1.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

@Ted
I have tested with unit test suite (using -P runMediumTests)

{code}
Running org.apache.hadoop.hbase.rest.TestMultiRowResource
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 21.421 sec
2012-01-27 11:32:49.762 java[82087:10803] Unable to load realm info from SCDynamicStore
Running org.apache.hadoop.hbase.rest.TestGzipFilter
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 30.149 sec
2012-01-27 11:32:58.404 java[82108:10803] Unable to load realm info from SCDynamicStore
Running org.apache.hadoop.hbase.rest.TestRowResource
Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 36.876 sec
2012-01-27 11:33:27.716 java[82119:10803] Unable to load realm info from SCDynamicStore
Running org.apache.hadoop.hbase.rest.TestScannerResource
Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 43.012 sec
2012-01-27 11:33:42.335 java[82141:10803] Unable to load realm info from SCDynamicStore
Running org.apache.hadoop.hbase.rest.TestScannersWithFilters
Tests run: 10, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 26.465 sec
2012-01-27 11:33:55.059 java[82151:10803] Unable to load realm info from SCDynamicStore
Running org.apache.hadoop.hbase.rest.TestStatusResource
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 20.569 sec
2012-01-27 11:34:16.689 java[82160:10803] Unable to load realm info from SCDynamicStore
Running org.apache.hadoop.hbase.rest.TestSchemaResource
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 54.973 sec
2012-01-27 11:34:38.275 java[82181:10803] Unable to load realm info from SCDynamicStore
Running org.apache.hadoop.hbase.rest.TestTableResource
Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 40.286 sec
Running org.apache.hadoop.hbase.rest.TestVersionResource
Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 22.001 sec

Results :
Tests run: 51, Failures: 0, Errors: 0, Skipped: 0
{code}
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Jimmy Xiang updated HBASE-4720:
-------------------------------

    Fix Version/s:     (was: 0.94.1)
                   0.96.0
    
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.96.0
>
>         Attachments: 4720_trunk.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Hadoop QA commented on HBASE-4720:
----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12510293/HBASE-4720.trunk.v3.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 6 new or modified tests.

    -1 javadoc.  The javadoc tool appears to have generated -146 warning messages.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    -1 findbugs.  The patch appears to introduce 81 new Findbugs (version 1.3.9) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

     -1 core tests.  The patch failed these unit tests:
                       org.apache.hadoop.hbase.mapreduce.TestHFileOutputFormat
                  org.apache.hadoop.hbase.rest.TestRowResource
                  org.apache.hadoop.hbase.mapred.TestTableMapReduce
                  org.apache.hadoop.hbase.mapreduce.TestImportTsv

Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/740//testReport/
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/740//artifact/trunk/patchprocess/newPatchFindbugsWarnings.html
Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/740//console

This message is automatically generated.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

stack commented on HBASE-4720:
------------------------------

@Mubarak Understood (re: formatter).  Would suggest you not run it on total file when changing a few lines in the file only; we've not been doing a good job enforcing formatting across the code base so forcing formatting on all of a file will usually turn up loads of changes.  When loads of changes, your patch gets big.  Big patches are harder to get reviews on.  Just some advice for next time.

On the test URL making, sounds good.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

Waiting for corporate approval to contribute this patch. Thanks.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Lars Hofhansl updated HBASE-4720:
---------------------------------

    Fix Version/s:     (was: 0.94.0)
                   0.94.1

Let's try for 0.94.1
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.1
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu updated HBASE-4720:
------------------------------

    Fix Version/s: 0.94.0
    
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.v1.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

stack commented on HBASE-4720:
------------------------------

lgtm on cursory review.  I'll commit in a few days.  Maybe Andrew will take a look meantime.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed updated HBASE-4720:
---------------------------------

    Attachment: HBASE-4720.trunk.v2.patch

The attached file (HBASE-4720.trunk.v2.patch) addresses most of the code review comments.

Thanks.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Hudson commented on HBASE-4720:
-------------------------------

Integrated in HBase-0.92 #434 (See [https://builds.apache.org/job/HBase-0.92/434/])
    HBASE-4720 Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server (Revision 1344400)

     Result = FAILURE
stack : 
Files : 
* /hbase/branches/0.92/CHANGES.txt
* /hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/rest/RowResource.java
* /hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java
* /hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/rest/client/RemoteHTable.java
* /hbase/branches/0.92/src/test/java/org/apache/hadoop/hbase/rest/TestRowResource.java

                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.92.1, 0.96.0, 0.94.1
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, 4720_trunk_v3.1.patch, 4720_trunk_v3.patch, 4720_trunk_v3.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

The patch is of decent size, can you post on review board so that it is easier to correlated comments with code ?
{code}
+ * Copyright 2010 The Apache Software Foundation
{code}
Year isn't needed in license.

Looks like the two new CheckAndXXTableResource classes are cloned off of TableResource.java
It would be nice to reuse code from TableResource.java, such as:
{code}
  void scanTransformAttrs() throws IOException {
{code}
Refactoring is always an integral part of new feature.

Thanks for your effort, Mubarak.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>         Attachments: HBASE-4720.v1.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

stack commented on HBASE-4720:
------------------------------

On patch:

+ Suggest you not do stuff like below in future because it bloats your patch making it more susceptible to rot and besides is not related directly to what you are trying to your fix so distracting for reviewers (for the next time):

{code}
-  private static final HBaseRESTTestingUtility REST_TEST_UTIL = 
-    new HBaseRESTTestingUtility();
+  private static final HBaseRESTTestingUtility REST_TEST_UTIL = new HBaseRESTTestingUtility();
{code}

+ Is this safe?  e.g. what if row has binary characters in it?  Should these be base64'd or something?

{code}
+    path.append('/');
+    path.append("checkandput");
+    path.append('/');
+    path.append(table);
+    path.append('/');
+    path.append(row);
+    path.append('/');
+    path.append(column);
{code}

I suppose its not needed in a test (I missed that this is test code)

You have some lines that are way too long.

Else patch looks good to me on cursory review.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Hadoop QA commented on HBASE-4720:
----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12512066/HBASE-4720.trunk.v7.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 3 new or modified tests.

    -1 javadoc.  The javadoc tool appears to have generated -140 warning messages.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    -1 findbugs.  The patch appears to introduce 161 new Findbugs (version 1.3.9) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

     -1 core tests.  The patch failed these unit tests:
                       org.apache.hadoop.hbase.mapreduce.TestHFileOutputFormat
                  org.apache.hadoop.hbase.mapred.TestTableMapReduce
                  org.apache.hadoop.hbase.io.hfile.TestHFileBlock
                  org.apache.hadoop.hbase.mapreduce.TestImportTsv

Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/856//testReport/
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/856//artifact/trunk/patchprocess/newPatchFindbugsWarnings.html
Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/856//console

This message is automatically generated.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Hadoop QA commented on HBASE-4720:
----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12530140/4720_trunk_v3.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 3 new or modified tests.

    +1 hadoop2.0.  The patch compiles against the hadoop 2.0 profile.

    +1 javadoc.  The javadoc tool did not generate any warning messages.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    -1 findbugs.  The patch appears to cause Findbugs (version 1.3.9) to fail.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

     -1 core tests.  The patch failed these unit tests:
                       org.apache.hadoop.hbase.regionserver.TestSplitTransactionOnCluster

Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/2044//testReport/
Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/2044//console

This message is automatically generated.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.92.1, 0.96.0, 0.94.1
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, 4720_trunk_v3.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Hudson commented on HBASE-4720:
-------------------------------

Integrated in HBase-TRUNK #2646 (See [https://builds.apache.org/job/HBase-TRUNK/2646/])
    HBASE-4720 revert until agreement is reached on solution
HBASE-4720 Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server (Mubarak)

tedyu : 
Files : 
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/CheckAndDeleteRowResource.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/CheckAndDeleteTableResource.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/CheckAndPutRowResource.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/CheckAndPutTableResource.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/RootResource.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/client/RemoteHTable.java
* /hbase/trunk/src/test/java/org/apache/hadoop/hbase/rest/TestRowResource.java

tedyu : 
Files : 
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/CheckAndDeleteRowResource.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/CheckAndDeleteTableResource.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/CheckAndPutRowResource.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/CheckAndPutTableResource.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/RootResource.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/client/RemoteHTable.java
* /hbase/trunk/src/test/java/org/apache/hadoop/hbase/rest/TestRowResource.java

                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Lars Hofhansl commented on HBASE-4720:
--------------------------------------

FYI: Rest is not really my area, so I can't do a faithful review.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

stack updated HBASE-4720:
-------------------------

    Status: Patch Available  (was: Open)
    
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.96.0, 0.94.1, 0.92.1
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, 4720_trunk_v3.1.patch, 4720_trunk_v3.patch, 4720_trunk_v3.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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] [Comment Edited] (HBASE-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Andrew Purtell edited comment on HBASE-4720 at 5/30/12 4:12 PM:
----------------------------------------------------------------

+1 except for small debug logging nit that can be corrected on commit. See https://reviews.apache.org/r/5259/diff/3/?file=110632#file110632line294
                
      was (Author: apurtell):
    +1 except for small debug logging nit that can be corrected on commit.
                  
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.92.1, 0.96.0, 0.94.1
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, 4720_trunk_v3.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Andrew Purtell commented on HBASE-4720:
---------------------------------------

Actually Ted you should now honor my -1 and revert that commit. Next time allow me chance to find out there is even a discussion happening. Stack brought this to my attention late last night only.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Hadoop QA commented on HBASE-4720:
----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12530241/4720_trunk_v3.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 3 new or modified tests.

    +1 hadoop2.0.  The patch compiles against the hadoop 2.0 profile.

    +1 javadoc.  The javadoc tool did not generate any warning messages.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    -1 findbugs.  The patch appears to cause Findbugs (version 1.3.9) to fail.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

     -1 core tests.  The patch failed these unit tests:
                       org.apache.hadoop.hbase.master.TestSplitLogManager
                  org.apache.hadoop.hbase.regionserver.TestSplitTransactionOnCluster

Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/2057//testReport/
Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/2057//console

This message is automatically generated.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.92.1, 0.96.0, 0.94.1
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, 4720_trunk_v3.1.patch, 4720_trunk_v3.patch, 4720_trunk_v3.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

stack updated HBASE-4720:
-------------------------

    Fix Version/s:     (was: 0.96.0)
                   0.94.0

Moving back to 0.94.0 so Lars sees it.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu reassigned HBASE-4720:
---------------------------------

    Assignee: Mubarak Seyed  (was: Seyed)
    
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

stack commented on HBASE-4720:
------------------------------

Patch lgtm.

Andrew?  What you reckon?
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.92.1, 0.96.0, 0.94.1
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, 4720_trunk_v3.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed updated HBASE-4720:
---------------------------------

    Attachment: HBASE-4720.trunk.v6.patch

The attached file (HBASE-4720.trunk.v6.patch) is updated patch file. Thanks.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

@Mubarak:
Now that Andy removed support for transformation, can you rebase your patch ?
{code}
Hunk #2 FAILED at 49.
2 out of 2 hunks FAILED -- saving rejects to file src/main/java/org/apache/hadoop/hbase/rest/TableResource.java.rej
{code}
If you can address comment @ 12/Jan/12 19:19, that would great.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed updated HBASE-4720:
---------------------------------

    Attachment: HBASE-4720.trunk.v1.patch

Sorry for the inconvenience, i forgot to do 'svn add <file>' before the patch. The attached file contains updated patch. Thanks.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

@Mubarak:
I think the rule you posted only governs comment.
I tried auto-formatting a long line which has 3 identical short statements. There was no auto-wrapping.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

Thanks Jimmy for taking care of this JIRA.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.96.0
>
>         Attachments: 4720_trunk.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

Stack,

Option 1:
If we send ?check=true then client can send value to check and value-to-check as part of URI like

PUT or POST
/table/<row>/<column>:<qualifier> ?(/<check:true>) ?(/<value-to-check>) ?(/<timestamp>)
(with Put object as content)

Delete on RowResource uses only request-URI and there is no way to get CellSetModel (which holds the content of Delete object, as part of checkAndDelete API). If we go by HTTP @Delete method then how do we send the entity-body (content)? Ref: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.7

Can we treat checkAndDelete as HTTP PUT or POST operation and send the Delete object content as entity-body?

so, the request URI would look like

checkAndPut: PUT (or) POST /table/<row>/<column>:<qualifier> ?(/<checkandput:true>) ?(/<value-to-check>) ?(/<timestamp>)
checkAndDelete: PUT (or) POST /table/<row>/<column>:<qualifier> ?(/<checkanddelete:true>) ?(/<value-to-check>) ?(/<timestamp>)

we can make use of put or post in RowResource and refactor the put()/post() code to handle both put/checkAndPut and delete/checkAndDelete.

Option 2:
If we dont want to refactor the RowResource code, we can create new resource (such as /checkandput and /checkanddelete) then we can append the /table/<row>/... convention

                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

@Lars:
Feel free to create one JIRA for RowMutations.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

Integrated to TRUNK.

Thanks for the patch Mubarak.

Thanks for the review comments, Andrew.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

Thanks Stack. Yeah, i can pass the value-to-check in the body of the Put/Delete.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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] [Issue Comment Edited] (HBASE-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu edited comment on HBASE-4720 at 12/16/11 5:33 PM:
-------------------------------------------------------------

The patch is of decent size, can you post on review board so that it is easier to correlate comments with code ?
{code}
+ * Copyright 2010 The Apache Software Foundation
{code}
Year isn't needed in license.

Looks like the two new CheckAndXXTableResource classes are cloned off of TableResource.java
It would be nice to reuse code from TableResource.java, such as:
{code}
  void scanTransformAttrs() throws IOException {
{code}
Refactoring is always an integral part of new feature.

Thanks for your effort, Mubarak.
                
      was (Author: zhihyu@ebaysf.com):
    The patch is of decent size, can you post on review board so that it is easier to correlated comments with code ?
{code}
+ * Copyright 2010 The Apache Software Foundation
{code}
Year isn't needed in license.

Looks like the two new CheckAndXXTableResource classes are cloned off of TableResource.java
It would be nice to reuse code from TableResource.java, such as:
{code}
  void scanTransformAttrs() throws IOException {
{code}
Refactoring is always an integral part of new feature.

Thanks for your effort, Mubarak.
                  
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>         Attachments: HBASE-4720.v1.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

Thanks Stack.

bq. Suggest you not do stuff like below in future because it bloats your patch making it more susceptible to rot and besides is not related directly to what you are trying to your fix so distracting for reviewers (for the next time):
I had formatted the code using [-HBASE-3678-|https://issues.apache.org/jira/browse/HBASE-3678] {{eclipse_formatter_apache.xml}}. I apologize for messing up with format. Can you please advice on code formatting? (i believe hbase book also refers HBASE-3678 for code formatting)

bq. Is this safe? e.g. what if row has binary characters in it? Should these be base64'd or something?
Other test methods in {{src/test/java/org/apache/hadoop/hbase/rest/TestRowResources.java}} uses the same way to build the URI ({{deleteRow, deleteValue, putValuePB,}} etc). I just copied the code from other methods.

bq. You have some lines that are way too long.
{{eclipse-code-formatter.xml}} uses line length as 80, please advice on line length. 

{code}
<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="80"/>
{code}
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed updated HBASE-4720:
---------------------------------

    Attachment: HBASE-4720.trunk.v5.patch

The attached patch (HBASE-4720.trunk.v5.patch) rebased on trunk, removed the previous refactoring (ResourceBase) and Unit tested.

{code}
test-test:hbase-trunk-test mubarak$ patch -p0 -i ~/HBASE-4720.trunk.v5.patch 
patching file src/test/java/org/apache/hadoop/hbase/rest/TestRowResource.java
patching file src/main/java/org/apache/hadoop/hbase/rest/CheckAndPutTableResource.java
patching file src/main/java/org/apache/hadoop/hbase/rest/CheckAndPutRowResource.java
patching file src/main/java/org/apache/hadoop/hbase/rest/CheckAndDeleteTableResource.java
patching file src/main/java/org/apache/hadoop/hbase/rest/CheckAndDeleteRowResource.java
patching file src/main/java/org/apache/hadoop/hbase/rest/RootResource.java
patching file src/main/java/org/apache/hadoop/hbase/rest/client/RemoteHTable.java
{code}
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed updated HBASE-4720:
---------------------------------

    Attachment: HBASE-4720.trunk.v1.patch

The attached file (HBASE-4720.trunk.v1.patch) contains changes (after rebased patch on TRUNK)
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

Okay, i will work on patch for TRUNK then. Thanks.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

The following scenarios are tested:

1. 5 nodes dev cluster, running trunk
   * Generated load with curl for checkAndPut/checkAndDelete, tested for functional verification
   * Developed a test client, which uses HBaseAdmin APIs to test the atomic operations functionality (for   positive/negative testcases)

2. 7 nodes perf cluster, running trunk
   * Developed a test client, which uses HBaseAdmin APIs to test the atomic operations functionality (for positive/negative testcases).
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

stack commented on HBASE-4720:
------------------------------

@Mubarak Do you like Jimmy's changes?

Jimmy, should you do a define for 'put'?  Should the compare lowercase first?

Jimmy, there is no excuse for dup'ing code:

{code}
+    if ("put".equals(check)) {
+      return checkAndPut(model);
+    } else if ("delete".equals(check)) {
+      return checkAndDelete(model);
+    } else {
+      if (check != null && check.length() > 0) {
+        LOG.warn("Unknown check value: " + check + ", ignored");
+      }
+      return update(model, false);
+    }
{code}

Else looks good to me Jimmy
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.96.0
>
>         Attachments: 4720_trunk.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

I tried applying patch v3 on 0.92 and TRUNK but encountered similar errors.
{code}
1 out of 1 hunk FAILED -- saving rejects to file src/main/java/org/apache/hadoop/hbase/rest/TableResource.java.rej
1 out of 3 hunks FAILED -- saving rejects to file src/main/java/org/apache/hadoop/hbase/rest/ExistsResource.java.rej
1 out of 30 hunks FAILED -- saving rejects to file src/main/java/org/apache/hadoop/hbase/rest/client/RemoteHTable.java.rej
{code}
Please rebase patch on TRUNK so that Hadoop QA can test it.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Hudson commented on HBASE-4720:
-------------------------------

Integrated in HBase-0.94-security #33 (See [https://builds.apache.org/job/HBase-0.94-security/33/])
    HBASE-4720 Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server (Revision 1344399)

     Result = FAILURE
stack : 
Files : 
* /hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/RowResource.java
* /hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java
* /hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/client/RemoteHTable.java
* /hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/rest/TestRowResource.java

                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.92.1, 0.96.0, 0.94.1
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, 4720_trunk_v3.1.patch, 4720_trunk_v3.patch, 4720_trunk_v3.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

Uploaded the patch (HBASE-4720.v3.patch) to review board

https://reviews.apache.org/r/3250/diff/2/
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

+1 for option 2
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

when i ran the tests, it fails at 

{code}
Running org.apache.hadoop.hbase.util.TestRegionSplitCalculator
Tests run: 14, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.077 sec <<< FAILURE!

Failed tests:   testSplitCalculatorEq(org.apache.hadoop.hbase.util.TestRegionSplitCalculator): expected:<2> but was:<1>
{code}
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

Sure, will do Andy. Thanks.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.1
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Lars Hofhansl updated HBASE-4720:
---------------------------------

    Fix Version/s:     (was: 0.94.0)
                   0.96.0

What is the status of this?
Moving to 0.96 for now. Pull back if you feel that this should go into 0.94.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.96.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

I think option 2 is more favorable.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Jimmy Xiang updated HBASE-4720:
-------------------------------

    Fix Version/s: 0.92.1
                   0.94.1
    
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.92.1, 0.96.0, 0.94.1
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, 4720_trunk_v3.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Andrew Purtell commented on HBASE-4720:
---------------------------------------

Anyway, my apologies, but this commit must be reverted. It is poor and IMO unacceptable design to have such an inconsistency in how request URLs should be constructed. Either the current semantics for REST paths remain the same, that is /table/row/ ..., or every operation is changed to specify the operation first, e.g. /operation/table/row ... .
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Andrew Purtell commented on HBASE-4720:
---------------------------------------

Ted, I raised a objection on this issue and you committed it with that objection unaddressed before I had a chance to ack the commit candidate. I apologize if it was not clear my objection earlier was a -1. It was. I thought it clear enough, my mistake.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

Patch v6 looks good.
Will integrate if Andrew doesn't have further comment.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed updated HBASE-4720:
---------------------------------

    Attachment: HBASE-4720.trunk.v3.patch

The attached file (HBASE-4720.trunk.v3.patch) contains changes for Andrew Purtell's code review comments.

This patch does not cover the following from Andrew's comments:

>The REST gateway does support a batch put operation, where the supplied model contains multiple rows. The request URI will contain the table name and a row key, but the row key would be ignored and should be set to something known not to exist, like "submit". (Row name in the model takes preference to whatever was supplied in the URI.) See RowResource, starting around line 160. This gives the client the option of submitting work in batch, to reduce overheads.

So optionally here you could retrieve a list of rows and process them, building a response that includes the disposition of each.

HTable.checkAndPut and HTable.checkAndDelete
API supports only one row at a time (http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HTable.html#checkAndPut(byte[], byte[], byte[], byte[], org.apache.hadoop.hbase.client.Put)). I don't think we need to support batch of checkAndPut and checkAndDelete.

>The URI format for requests is '/<table>/<row>/ ...' This violates that by adding, just for check-and cases, a prefix. Having a special case like that should be avoided. What about handling this in TableResource, with a query parameter? '/<table>/<row>/?check' E.g.Then you won't need CheckAndXTableResource classes. Additionally use the appropriate HTTP operations. PUT/POST for check-and-put. DELETE for check-and-delete. The spec does not forbid bodies in DELETE requests. (I am unsure if Jetty/Jersey will support it however.)

We have discussed the design choices earlier (refer comments in the same JIRA), Stack and Ted have voted for option # 2 (/checkandput, /checkanddelete) option. If i have to go back to option #1 then i will have to re-work most of the stuff here.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Lars Hofhansl commented on HBASE-4720:
--------------------------------------

Should we add another jira for supporting the new RowMutations? (HBASE-3584 and HBASE-5203)
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Jimmy Xiang updated HBASE-4720:
-------------------------------

    Status: Open  (was: Patch Available)
    
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.96.0
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

stack updated HBASE-4720:
-------------------------

    Attachment: 4720_trunk_v3.patch

Retry just in case
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.92.1, 0.96.0, 0.94.1
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, 4720_trunk_v3.1.patch, 4720_trunk_v3.patch, 4720_trunk_v3.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Hudson commented on HBASE-4720:
-------------------------------

Integrated in HBase-TRUNK-security #89 (See [https://builds.apache.org/job/HBase-TRUNK-security/89/])
    HBASE-4720 revert until agreement is reached on solution
HBASE-4720 Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server (Mubarak)

tedyu : 
Files : 
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/CheckAndDeleteRowResource.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/CheckAndDeleteTableResource.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/CheckAndPutRowResource.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/CheckAndPutTableResource.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/RootResource.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/client/RemoteHTable.java
* /hbase/trunk/src/test/java/org/apache/hadoop/hbase/rest/TestRowResource.java

tedyu : 
Files : 
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/CheckAndDeleteRowResource.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/CheckAndDeleteTableResource.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/CheckAndPutRowResource.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/CheckAndPutTableResource.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/RootResource.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/client/RemoteHTable.java
* /hbase/trunk/src/test/java/org/apache/hadoop/hbase/rest/TestRowResource.java

                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

@Andrew:
Can you please review patch v4 ?
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed updated HBASE-4720:
---------------------------------

    Attachment: HBASE-4720.trunk.v2.patch

Per Ted's request, resubmitting the patch. Thanks.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

@Andrew:
Can you take a look at patch v4, please ?
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

Regarding unit test classes, i dont need separate TestXXXXResource.java as checkAndPut/checkAndDelete are related to RowResource. I just added few test methods in RowResource, is that ok? or do i need to create separate TestCheckAndPutResource.java/TestCheckAndDeleteResource.java? Please confirm. Thanks.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.v1.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

Thanks Jimmy for the patch.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.92.1, 0.96.0, 0.94.1
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, 4720_trunk_v3.1.patch, 4720_trunk_v3.patch, 4720_trunk_v3.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu reassigned HBASE-4720:
---------------------------------

    Assignee: Mubarak Seyed
    
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.v1.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

I posted comment on review board.

@Andrew:
Can you take a look at the latest patch ?
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

Sure, will do. Thanks.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Jimmy Xiang updated HBASE-4720:
-------------------------------

    Attachment: 4720_trunk_v3.patch
    
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.96.0
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, 4720_trunk_v3.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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] [Closed] (HBASE-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Lars Hofhansl closed HBASE-4720.
--------------------------------

    
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.92.1, 0.94.1, 0.96.0
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, 4720_trunk_v3.1.patch, 4720_trunk_v3.patch, 4720_trunk_v3.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (HBASE-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Hadoop QA commented on HBASE-4720:
----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12511535/HBASE-4720.trunk.v6.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 3 new or modified tests.

    -1 javadoc.  The javadoc tool appears to have generated -145 warning messages.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    -1 findbugs.  The patch appears to introduce 85 new Findbugs (version 1.3.9) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

     -1 core tests.  The patch failed these unit tests:
                       org.apache.hadoop.hbase.mapreduce.TestImportTsv
                  org.apache.hadoop.hbase.mapred.TestTableMapReduce
                  org.apache.hadoop.hbase.mapreduce.TestHFileOutputFormat

Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/841//testReport/
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/841//artifact/trunk/patchprocess/newPatchFindbugsWarnings.html
Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/841//console

This message is automatically generated.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed updated HBASE-4720:
---------------------------------

    Attachment: HBASE-4720.v1.patch

The attached file is a patch
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>         Attachments: HBASE-4720.v1.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Jimmy Xiang updated HBASE-4720:
-------------------------------

    Status: Open  (was: Patch Available)
    
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.1
>
>         Attachments: 4720_trunk.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Jimmy Xiang updated HBASE-4720:
-------------------------------

    Attachment: 4720_trunk.patch
    
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.96.0
>
>         Attachments: 4720_trunk.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Andrew Purtell commented on HBASE-4720:
---------------------------------------

While you are in there Mubarak please make sure that the tests also cover put and delete operations without '?check=...'.  
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.1
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

I suggest working on patch for TRUNK.
Once the review is done and patch gets integrated, you can backport it to 0.90

This means you would run patched 0.90 build in production for a while before the backport is finalized in 0.90.6

HBASE-4508 is such an example.

Is the above procedure acceptable ?
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

stack updated HBASE-4720:
-------------------------

    Status: Open  (was: Patch Available)
    
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.96.0, 0.94.1, 0.92.1
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, 4720_trunk_v3.1.patch, 4720_trunk_v3.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

Can you update https://reviews.apache.org/r/3250 with patch for TRUNK ?
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Jimmy Xiang updated HBASE-4720:
-------------------------------

    Attachment: 4720_trunk_v3.1.patch

Fix the logging issue Andrew found.

Thanks Stack, Andrew, and Ted for reviewing.
Thanks Mubarak for the patch.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.92.1, 0.96.0, 0.94.1
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, 4720_trunk_v3.1.patch, 4720_trunk_v3.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed updated HBASE-4720:
---------------------------------

    Attachment: HBASE-4720.trunk.v7.patch

The attached file (HBASE-4720.trunk.v7.patch)   addresses option # 1 to add query param /table/row?check=put or /table/row?check=delete

@Andrew
Can you please review the changes?
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

Code is posted at https://reviews.apache.org/r/3250/ for review.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>         Attachments: HBASE-4720.v1.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

Sure, will refactor and post it on review board. Thanks.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>         Attachments: HBASE-4720.v1.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

My approach is to use a label in the URI path

checkAndPut of HRemoteTable would send 
PUT /check/<table>/<row>/<column>:<qualifier> ? ( / <timestamp> )?


checkAndDelete of HRemoteTable would send
DELETE /check/<table>/<row>/<column>:<qualifier> ? ( / <timestamp> )?

with Put object will be converted to content (byte[] from createProtobufOutput)  
  
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

The diff was made against 0.90.5
I got the following when trying to apply to TRUNK:
{code}
1 out of 2 hunks FAILED -- saving rejects to file src/main/java/org/apache/hadoop/hbase/rest/TableResource.java.rej
{code}

I suggest the following steps based on TRUNK:
1. continue with refactoring
2. add unit tests for the new XXResource classes (remember to add test category)
3. let Hadoop QA test the patch

Minor comment: year isn't needed for license

Thanks for your effort Mubarak.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>         Attachments: HBASE-4720.v1.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed updated HBASE-4720:
---------------------------------

    Attachment: HBASE-4720.trunk.v1.patch

The attached file (HBASE-4720.trunk.v1.patch) contains changes after rebased on TRUNK.

Thanks.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

I think adding test methods in TestRowResource makes sense.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.v1.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

@Mubarak:
Please resubmit patch for Hadoop QA - build machine was just restarted.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Jimmy Xiang updated HBASE-4720:
-------------------------------

    Status: Patch Available  (was: Open)

Addressed Stack's comments.

@Stack, I moved the duplicated code to some shared place. 
I defined constants put and delete.  I could not lowercase first
since it can be null.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.96.0
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed updated HBASE-4720:
---------------------------------

    Attachment: HBASE-4720.trunk.v4.patch

Tests were still failing for runMediumTests on trunk but i have fixed the TestRowResource. The attached file (HBASE-4720.trunk.v4.patch) is a latest patch. Thanks.

{code}
mvn clean test -P runMediumTests -Dtest=org.apache.hadoop.hbase.rest.*

Running org.apache.hadoop.hbase.rest.TestRowResource
Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 22.099 se
{code}
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

My local tests were keep failing on trunk, will fix the TestRowResource.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

That is Okay, Andy.
I have reverted the patch.

Let's start from the beginning.

@Mubarak:
Now that Andy has chosen option #1, can you work up a new patch ?
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

I was expecting Andy to review the new patch. Once it is reviewed, i can pull back to 0.94.x. Thanks.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.96.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

stack commented on HBASE-4720:
------------------------------

Option 2 sounds better.  How do you pass the value to check in option 2?  You can't pass it as attribute because it could be binary, right?  Maybe in the body of the put, you have two values, first the one to check then the one to set if it pans out.  Ditto delete?
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Hudson commented on HBASE-4720:
-------------------------------

Integrated in HBase-0.92-security #109 (See [https://builds.apache.org/job/HBase-0.92-security/109/])
    HBASE-4720 Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server (Revision 1344400)

     Result = SUCCESS
stack : 
Files : 
* /hbase/branches/0.92/CHANGES.txt
* /hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/rest/RowResource.java
* /hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java
* /hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/rest/client/RemoteHTable.java
* /hbase/branches/0.92/src/test/java/org/apache/hadoop/hbase/rest/TestRowResource.java

                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.92.1, 0.96.0, 0.94.1
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, 4720_trunk_v3.1.patch, 4720_trunk_v3.patch, 4720_trunk_v3.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

Thanks Andy. Will fix your comments in test code and submit a patch. Thanks.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.1
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Hadoop QA commented on HBASE-4720:
----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12512066/HBASE-4720.trunk.v7.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 3 new or modified tests.

    -1 javadoc.  The javadoc tool appears to have generated -136 warning messages.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    -1 findbugs.  The patch appears to introduce 156 new Findbugs (version 1.3.9) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

     -1 core tests.  The patch failed these unit tests:
                       org.apache.hadoop.hbase.io.hfile.TestHFileBlock
                  org.apache.hadoop.hbase.mapreduce.TestImportTsv
                  org.apache.hadoop.hbase.mapred.TestTableMapReduce
                  org.apache.hadoop.hbase.mapreduce.TestHFileOutputFormat

Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/940//testReport/
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/940//artifact/trunk/patchprocess/newPatchFindbugsWarnings.html
Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/940//console

This message is automatically generated.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Jimmy Xiang updated HBASE-4720:
-------------------------------

    Attachment: 4720_trunk_v2.patch
    
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.96.0
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Andrew Purtell commented on HBASE-4720:
---------------------------------------

Patch v7 still applies to trunk, but with some fuzz. Implementation looks fine, appropriate use of query parameters and HTTP return codes, thanks for implementing it this way Mubarak. The only thing that looks missing is a check for the not-modified case in TestRowResource and TestDelete.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.1
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Hudson commented on HBASE-4720:
-------------------------------

Integrated in HBase-TRUNK #2956 (See [https://builds.apache.org/job/HBase-TRUNK/2956/])
    HBASE-4720 Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server (Revision 1344398)

     Result = FAILURE
stack : 
Files : 
* /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/rest/RowResource.java
* /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java
* /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/rest/client/RemoteHTable.java
* /hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/rest/TestRowResource.java

                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.92.1, 0.96.0, 0.94.1
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, 4720_trunk_v3.1.patch, 4720_trunk_v3.patch, 4720_trunk_v3.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Zhihong Yu commented on HBASE-4720:
-----------------------------------

Sounds good. 
Keep us posted. 
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>         Attachments: HBASE-4720.v1.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Hadoop QA commented on HBASE-4720:
----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12508468/HBASE-4720.trunk.v2.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 6 new or modified tests.

    -1 javadoc.  The javadoc tool appears to have generated -151 warning messages.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    -1 findbugs.  The patch appears to introduce 77 new Findbugs (version 1.3.9) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

     -1 core tests.  The patch failed these unit tests:
                       org.apache.hadoop.hbase.coprocessor.TestCoprocessorEndpoint

Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/584//testReport/
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/584//artifact/trunk/patchprocess/newPatchFindbugsWarnings.html
Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/584//console

This message is automatically generated.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Hadoop QA commented on HBASE-4720:
----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12530103/4720_trunk_v2.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 3 new or modified tests.

    +1 hadoop2.0.  The patch compiles against the hadoop 2.0 profile.

    +1 javadoc.  The javadoc tool did not generate any warning messages.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    -1 findbugs.  The patch appears to cause Findbugs (version 1.3.9) to fail.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

     -1 core tests.  The patch failed these unit tests:
                       org.apache.hadoop.hbase.security.access.TestZKPermissionsWatcher

Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/2037//testReport/
Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/2037//console

This message is automatically generated.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.96.0
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Mubarak Seyed commented on HBASE-4720:
--------------------------------------

This JIRA request was opened by my colleague as we need this feature in 0.90 branch as we have a requirement to use atomic update operations in production cluster. If this fix goes only in 0.92 and TRUNK then we need to wait a while. Can't we apply this patch under 0.90.6 branch? I can create a separate patch for 0.92 and TRUNK. Please confirm. Thanks.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.94.0
>
>         Attachments: HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Jimmy Xiang commented on HBASE-4720:
------------------------------------

The patch is good for 0.94 and 0.92 too.
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.92.1, 0.96.0, 0.94.1
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, 4720_trunk_v3.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

Hudson commented on HBASE-4720:
-------------------------------

Integrated in HBase-TRUNK-on-Hadoop-2.0.0 #33 (See [https://builds.apache.org/job/HBase-TRUNK-on-Hadoop-2.0.0/33/])
    HBASE-4720 Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server (Revision 1344398)

     Result = FAILURE
stack : 
Files : 
* /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/rest/RowResource.java
* /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java
* /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/rest/client/RemoteHTable.java
* /hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/rest/TestRowResource.java

                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.92.1, 0.96.0, 0.94.1
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, 4720_trunk_v3.1.patch, 4720_trunk_v3.patch, 4720_trunk_v3.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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-4720) Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server

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

stack commented on HBASE-4720:
------------------------------

+1 on patch.  Tests look good.  Does it work for you Jimmy?
                
> Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server 
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-4720
>                 URL: https://issues.apache.org/jira/browse/HBASE-4720
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daniel Lord
>            Assignee: Mubarak Seyed
>             Fix For: 0.96.0
>
>         Attachments: 4720_trunk.patch, 4720_trunk_v2.patch, HBASE-4720.trunk.v1.patch, HBASE-4720.trunk.v2.patch, HBASE-4720.trunk.v3.patch, HBASE-4720.trunk.v4.patch, HBASE-4720.trunk.v5.patch, HBASE-4720.trunk.v6.patch, HBASE-4720.trunk.v7.patch, HBASE-4720.v1.patch, HBASE-4720.v3.patch
>
>
> I have several large application/HBase clusters where an application node will occasionally need to talk to HBase from a different cluster.  In order to help ensure some of my consistency guarantees I have a sentinel table that is updated atomically as users interact with the system.  This works quite well for the "regular" hbase client but the REST client does not implement the checkAndPut and checkAndDelete operations.  This exposes the application to some race conditions that have to be worked around.  It would be ideal if the same checkAndPut/checkAndDelete operations could be supported by the REST client.

--
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