[ 
https://issues.apache.org/jira/browse/HBASE-7129?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16441085#comment-16441085
 ] 

Dequan Chen edited comment on HBASE-7129 at 4/17/18 4:10 PM:
-------------------------------------------------------------

To [~mdrob] ,

To answer your today's question: In the check-and-put operation, new value 
[first] and checked value (expected value) [second or last occurrence] are as 
what you expressed - based on the order. In addition, between the two values, 
there are cell name (column family:column name) to separate them.

In addition, I just submitted [^HBASE-7129.0005.patch] which contains all you 
suggested Yesterday evening:

A. For the Detailed Explanation section of Check-And-Put, one more item is 
added as follows:

{color:#f691b2}5. The {{"row key" in the request URL}} should be URL-encoded, 
e.g., {{"david%20chen"}} and {{"row1"}} are the URL-encoded formats of row keys 
{{"david chen"}} and {{"row1"}}, respectively {color}

B. A whole new Detailed Explanation section was added to the Check-And-Delete 
as follows:
 {color:#f691b2}Detailed Explanation:{color}
 * {color:#f691b2}In the above 4 json-format examples:{color}

 # {color:#f691b2}{{{"column":"Y2ZhOmFsaWFz", "$":"TmV3R3V5"}}} at the end of 
{{-d}} option are {{the check cell name and check cell value in Base-64}} 
respectively: {{"Y2ZhOmFsaWFz" for "cfa:alias"}}, and {{"TmV3R3V5" for 
"NewGuy"}}{color}

 # {color:#f691b2}{{"cm93MQ=="}} is {{the Base-64 for "row1"}} for the 
checkAndPut {{row key}}{color}

 # {color:#f691b2}{{"/?check=delete"}} at the end of {{the request URL}} is 
required for checkAndDelete WebHBase operation to work{color}

 # {color:#f691b2}{{"version_id"}} in the {{request URL}} of the last 
json-format example should be equivalent to the value of {{"the timestamp 
number + 1"}}{color}

 # {color:#f691b2}The {{"row key"}}, {{"column family"}}, {{"cell name" or 
"column family:column name"}}, and {{"version_id"}} in {{the request URL}} of a 
checkAndDelete WebHBase operation should be URL-encoded, e.g., {{"row1"}}, 
{{"cfa"}}, {{"cfa:alias"}} and {{"1519423552160"}} in the examples are the 
URL-encoded {{"row key"}}, {{"column family"}}, {{"column family:column 
name"}}, and {{"version_id"}}, respectively{color}

 * {color:#f691b2}Basically, the 4 xml-format examples are the same as the 4 
corresponding json-format examples, and will not be explained here in 
detail.{color}

As regards the row key, column, etc are in the request url, maybe a new Jira is 
warranted to create for code improvement of the back-end HBase Rest 
implementation because without them at present (our enterprise version is 
v1.1.2) the Check-And-PUT or Check-And-Delete operation failed to work.

Hope that my above answer and additions are helpful.

Have a good day!

 

Dequan 


was (Author: dequanchen):
Mike,

To answer your today's question: In the check-and-put operation, new value 
[first] and checked value (expected value) [second or last occurrence] are as 
what you expressed - based on the order. In addition, between the two values, 
there are cell name (column family:column name) to separate them.

In addition, I just submitted [^HBASE-7129.0005.patch] which contains all you 
suggested Yesterday evening:

A. For the Detailed Explanation section of Check-And-Put, one more item is 
added as follows:

{color:#f691b2}5. The {{"row key" in the request URL}} should be URL-encoded, 
e.g., {{"david%20chen"}} and {{"row1"}} are the URL-encoded formats of row keys 
{{"david chen"}} and {{"row1"}}, respectively {color}

B. A whole new Detailed Explanation section was added to the Check-And-Delete 
as follows:
{color:#f691b2}Detailed Explanation:{color}
 * {color:#f691b2}In the above 4 json-format examples:{color}
 # {color:#f691b2}{{{"column":"Y2ZhOmFsaWFz", "$":"TmV3R3V5"}}} at the end of 
{{-d}} option are {{the check cell name and check cell value in Base-64}} 
respectively: {{"Y2ZhOmFsaWFz" for "cfa:alias"}}, and {{"TmV3R3V5" for 
"NewGuy"}}{color}

 # {color:#f691b2}{{"cm93MQ=="}} is {{the Base-64 for "row1"}} for the 
checkAndPut {{row key}}{color}

 # {color:#f691b2}{{"/?check=delete"}} at the end of {{the request URL}} is 
required for checkAndDelete WebHBase operation to work{color}

 # {color:#f691b2}{{"version_id"}} in the {{request URL}} of the last 
json-format example should be equivalent to the value of {{"the timestamp 
number + 1"}}{color}

 # {color:#f691b2}The {{"row key"}}, {{"column family"}}, {{"cell name" or 
"column family:column name"}}, and {{"version_id"}} in {{the request URL}} of a 
checkAndDelete WebHBase operation should be URL-encoded, e.g., {{"row1"}}, 
{{"cfa"}}, {{"cfa:alias"}} and {{"1519423552160"}} in the examples are the 
URL-encoded {{"row key"}}, {{"column family"}}, {{"column family:column 
name"}}, and {{"version_id"}}, respectively{color}

 * {color:#f691b2}Basically, the 4 xml-format examples are the same as the 4 
corresponding json-format examples, and will not be explained here in 
detail.{color}

As regards the row key, column, etc are in the request url, maybe a new Jira is 
warranted to create for code improvement of the back-end HBase Rest 
implementation because without them at present (our enterprise version is 
v1.1.2) the Check-And-PUT or Check-And-Delete operation failed to work.

Hope that my above answer and additions are helpful.

Have a good day!

 

Dequan 

> Need documentation for REST atomic operations (HBASE-4720)
> ----------------------------------------------------------
>
>                 Key: HBASE-7129
>                 URL: https://issues.apache.org/jira/browse/HBASE-7129
>             Project: HBase
>          Issue Type: Improvement
>          Components: documentation, REST
>            Reporter: Joe Pallas
>            Assignee: Dequan Chen
>            Priority: Minor
>              Labels: beginner
>         Attachments: HBASE-7129.0001.patch, HBASE-7129.0002.patch, 
> HBASE-7129.0003.patch, HBASE-7129.0004.patch, HBASE-7129.0005.patch, 
> HBASE-7129.patch, image-2018-04-17-10-57-48-213.png
>
>
> HBASE-4720 added checkAndPut/checkAndDelete capability to the REST interface, 
> but the REST documentation (in the package summary) needs to be updated so 
> people know that this feature exists and how to use it.
> http://wiki.apache.org/hadoop/Hbase/Stargate
> http://hbase.apache.org/book/rest.html



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to