[jira] [Commented] (HBASE-25576) Should not use a byte array as a key of HashMap or an element of HashSet

2023-03-01 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-25576:
--

[~umesh9414] If the PR for this Jira is going to be bulky, you can split it 
into multiple PRs. If you want to work on this, you can assign it to you and go 
ahead.

> Should not use a byte array as a key of HashMap or an element of HashSet
> 
>
> Key: HBASE-25576
> URL: https://issues.apache.org/jira/browse/HBASE-25576
> Project: HBase
>  Issue Type: Bug
>Reporter: Toshihiro Suzuki
>Priority: Major
>  Labels: beginner
>
> I sometimes face the code where we use a byte array as a key of HashMap 
> (ConcurrentHashMap) or an element of HashSet, which could cause very 
> confusing bugs.
> The following code is an example where we use a byte array as a key of 
> HashMap:
> https://github.com/apache/hbase/blob/326835e8372cc83092e0ec127650438ff153476a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.java#L94
> In Java, we can't use a byte array as a key of HashMap or an element of 
> HashSet directly. One solution for it is to use TreeMap 
> (ConcurrentSkipListMap) or TreeSet (ConcurrentSkipListSet) with 
> Bytes.BYTES_COMPARATOR instead of HashMap and HashSet as follows:
> {code}
> Map map1 = new TreeMap<>(Bytes.BYTES_COMPARATOR);
> Map map2 = new 
> ConcurrentSkipListMap<>(Bytes.BYTES_COMPARATOR);
> Set set1 = new TreeSet<>(Bytes.BYTES_COMPARATOR);
> Set set2 = new ConcurrentSkipListSet<>(Bytes.BYTES_COMPARATOR);
> {code}
> We should fix the existing ones in this Jira.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Assigned] (HBASE-25576) Should not use a byte array as a key of HashMap or an element of HashSet

2023-03-01 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25576?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki reassigned HBASE-25576:


Assignee: (was: Sourabh Dhanotia)

> Should not use a byte array as a key of HashMap or an element of HashSet
> 
>
> Key: HBASE-25576
> URL: https://issues.apache.org/jira/browse/HBASE-25576
> Project: HBase
>  Issue Type: Bug
>Reporter: Toshihiro Suzuki
>Priority: Major
>  Labels: beginner
>
> I sometimes face the code where we use a byte array as a key of HashMap 
> (ConcurrentHashMap) or an element of HashSet, which could cause very 
> confusing bugs.
> The following code is an example where we use a byte array as a key of 
> HashMap:
> https://github.com/apache/hbase/blob/326835e8372cc83092e0ec127650438ff153476a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.java#L94
> In Java, we can't use a byte array as a key of HashMap or an element of 
> HashSet directly. One solution for it is to use TreeMap 
> (ConcurrentSkipListMap) or TreeSet (ConcurrentSkipListSet) with 
> Bytes.BYTES_COMPARATOR instead of HashMap and HashSet as follows:
> {code}
> Map map1 = new TreeMap<>(Bytes.BYTES_COMPARATOR);
> Map map2 = new 
> ConcurrentSkipListMap<>(Bytes.BYTES_COMPARATOR);
> Set set1 = new TreeSet<>(Bytes.BYTES_COMPARATOR);
> Set set2 = new ConcurrentSkipListSet<>(Bytes.BYTES_COMPARATOR);
> {code}
> We should fix the existing ones in this Jira.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (HBASE-26010) Backport HBASE-25703 and HBASE-26002 to branch-2.3

2021-06-23 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26010?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki resolved HBASE-26010.
--
Resolution: Won't Fix

> Backport HBASE-25703 and HBASE-26002 to branch-2.3
> --
>
> Key: HBASE-26010
> URL: https://issues.apache.org/jira/browse/HBASE-26010
> Project: HBase
>  Issue Type: Improvement
>  Components: backport
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 2.3.6
>
>
> Backport HBASE-25703 "Support conditional update in MultiRowMutationEndpoint" 
> and HBASE-26002 "MultiRowMutationEndpoint should return the result of the 
> conditional update" to branch-2.3.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-26010) Backport HBASE-25703 and HBASE-26002 to branch-2.3

2021-06-23 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-26010:
--

As it's not a bug fix, we shouldn't apply it to patch releases. Closing this. 

> Backport HBASE-25703 and HBASE-26002 to branch-2.3
> --
>
> Key: HBASE-26010
> URL: https://issues.apache.org/jira/browse/HBASE-26010
> Project: HBase
>  Issue Type: Improvement
>  Components: backport
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 2.3.6
>
>
> Backport HBASE-25703 "Support conditional update in MultiRowMutationEndpoint" 
> and HBASE-26002 "MultiRowMutationEndpoint should return the result of the 
> conditional update" to branch-2.3.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (HBASE-26009) Backport HBASE-25766 "Introduce RegionSplitRestriction that restricts the pattern of the split point" to branch-2.3

2021-06-23 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26009?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki resolved HBASE-26009.
--
Resolution: Won't Fix

> Backport HBASE-25766 "Introduce RegionSplitRestriction that restricts the 
> pattern of the split point" to branch-2.3
> ---
>
> Key: HBASE-26009
> URL: https://issues.apache.org/jira/browse/HBASE-26009
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 2.3.6
>
>
> Backport the parent issue to branch-2.3.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-26009) Backport HBASE-25766 "Introduce RegionSplitRestriction that restricts the pattern of the split point" to branch-2.3

2021-06-23 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-26009:
--

As discussed in https://github.com/apache/hbase/pull/3395, we won't fix this. 
Closing it.

> Backport HBASE-25766 "Introduce RegionSplitRestriction that restricts the 
> pattern of the split point" to branch-2.3
> ---
>
> Key: HBASE-26009
> URL: https://issues.apache.org/jira/browse/HBASE-26009
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 2.3.6
>
>
> Backport the parent issue to branch-2.3.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-26010) Backport HBASE-25703 and HBASE-26002 to branch-2.3

2021-06-16 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26010?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-26010:
-
Fix Version/s: 2.3.6

> Backport HBASE-25703 and HBASE-26002 to branch-2.3
> --
>
> Key: HBASE-26010
> URL: https://issues.apache.org/jira/browse/HBASE-26010
> Project: HBase
>  Issue Type: Improvement
>  Components: backport
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 2.3.6
>
>
> Backport HBASE-25703 "Support conditional update in MultiRowMutationEndpoint" 
> and HBASE-26002 "MultiRowMutationEndpoint should return the result of the 
> conditional update" to branch-2.3.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-26009) Backport HBASE-25766 "Introduce RegionSplitRestriction that restricts the pattern of the split point" to branch-2.3

2021-06-16 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26009?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-26009:
-
Fix Version/s: 2.3.6

> Backport HBASE-25766 "Introduce RegionSplitRestriction that restricts the 
> pattern of the split point" to branch-2.3
> ---
>
> Key: HBASE-26009
> URL: https://issues.apache.org/jira/browse/HBASE-26009
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 2.3.6
>
>
> Backport the parent issue to branch-2.3.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-26010) Backport HBASE-25703 and HBASE-26002 to branch-2.3

2021-06-16 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26010?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-26010:
-
Issue Type: Improvement  (was: Bug)

> Backport HBASE-25703 and HBASE-26002 to branch-2.3
> --
>
> Key: HBASE-26010
> URL: https://issues.apache.org/jira/browse/HBASE-26010
> Project: HBase
>  Issue Type: Improvement
>  Components: backport
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
>
> Backport HBASE-25703 "Support conditional update in MultiRowMutationEndpoint" 
> and HBASE-26002 "MultiRowMutationEndpoint should return the result of the 
> conditional update" to branch-2.3.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (HBASE-26010) Backport HBASE-25703 and HBASE-26002 to branch-2.3

2021-06-16 Thread Toshihiro Suzuki (Jira)
Toshihiro Suzuki created HBASE-26010:


 Summary: Backport HBASE-25703 and HBASE-26002 to branch-2.3
 Key: HBASE-26010
 URL: https://issues.apache.org/jira/browse/HBASE-26010
 Project: HBase
  Issue Type: Bug
  Components: backport
Reporter: Toshihiro Suzuki
Assignee: Toshihiro Suzuki


Backport HBASE-25703 "Support conditional update in MultiRowMutationEndpoint" 
and HBASE-26002 "MultiRowMutationEndpoint should return the result of the 
conditional update" to branch-2.3.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (HBASE-26009) Backport HBASE-25766 "Introduce RegionSplitRestriction that restricts the pattern of the split point" to branch-2.3

2021-06-16 Thread Toshihiro Suzuki (Jira)
Toshihiro Suzuki created HBASE-26009:


 Summary: Backport HBASE-25766 "Introduce RegionSplitRestriction 
that restricts the pattern of the split point" to branch-2.3
 Key: HBASE-26009
 URL: https://issues.apache.org/jira/browse/HBASE-26009
 Project: HBase
  Issue Type: Sub-task
Reporter: Toshihiro Suzuki
Assignee: Toshihiro Suzuki


Backport the parent issue to branch-2.3.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-26002) MultiRowMutationEndpoint should return the result of the conditional update

2021-06-14 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-26002:
--

Pushed to branch-2 and branch-2.4.

Thank you for reviewing this! [~zhangduo]

> MultiRowMutationEndpoint should return the result of the conditional update
> ---
>
> Key: HBASE-26002
> URL: https://issues.apache.org/jira/browse/HBASE-26002
> Project: HBase
>  Issue Type: Improvement
>  Components: Coprocessors
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 2.5.0, 3.0.0-alpha-2, 2.4.5
>
>
> HBASE-25703 added support for the conditional update in 
> MultiRowMutationEndpoint, but MultiRowMutationEndpoint doesn't return the 
> result of the conditional update (whether or not the mutations are executed). 
> In this Jira, we will make MultiRowMutationEndpoint return the result of the 
> conditional update.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (HBASE-26002) MultiRowMutationEndpoint should return the result of the conditional update

2021-06-14 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26002?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki resolved HBASE-26002.
--
Hadoop Flags: Reviewed
  Resolution: Fixed

> MultiRowMutationEndpoint should return the result of the conditional update
> ---
>
> Key: HBASE-26002
> URL: https://issues.apache.org/jira/browse/HBASE-26002
> Project: HBase
>  Issue Type: Improvement
>  Components: Coprocessors
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 2.5.0, 3.0.0-alpha-2, 2.4.5
>
>
> HBASE-25703 added support for the conditional update in 
> MultiRowMutationEndpoint, but MultiRowMutationEndpoint doesn't return the 
> result of the conditional update (whether or not the mutations are executed). 
> In this Jira, we will make MultiRowMutationEndpoint return the result of the 
> conditional update.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (HBASE-25576) Should not use a byte array as a key of HashMap or an element of HashSet

2021-06-14 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25576?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki reassigned HBASE-25576:


Assignee: (was: Swaroopa Kadam)

> Should not use a byte array as a key of HashMap or an element of HashSet
> 
>
> Key: HBASE-25576
> URL: https://issues.apache.org/jira/browse/HBASE-25576
> Project: HBase
>  Issue Type: Bug
>Reporter: Toshihiro Suzuki
>Priority: Major
>  Labels: beginner
>
> I sometimes face the code where we use a byte array as a key of HashMap 
> (ConcurrentHashMap) or an element of HashSet, which could cause very 
> confusing bugs.
> The following code is an example where we use a byte array as a key of 
> HashMap:
> https://github.com/apache/hbase/blob/326835e8372cc83092e0ec127650438ff153476a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.java#L94
> In Java, we can't use a byte array as a key of HashMap or an element of 
> HashSet directly. One solution for it is to use TreeMap 
> (ConcurrentSkipListMap) or TreeSet (ConcurrentSkipListSet) with 
> Bytes.BYTES_COMPARATOR instead of HashMap and HashSet as follows:
> {code}
> Map map1 = new TreeMap<>(Bytes.BYTES_COMPARATOR);
> Map map2 = new 
> ConcurrentSkipListMap<>(Bytes.BYTES_COMPARATOR);
> Set set1 = new TreeSet<>(Bytes.BYTES_COMPARATOR);
> Set set2 = new ConcurrentSkipListSet<>(Bytes.BYTES_COMPARATOR);
> {code}
> We should fix the existing ones in this Jira.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-26002) MultiRowMutationEndpoint should return the result of the conditional update

2021-06-14 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-26002:
--

Pushed to master and created a PR for branch-2 to run QA.

> MultiRowMutationEndpoint should return the result of the conditional update
> ---
>
> Key: HBASE-26002
> URL: https://issues.apache.org/jira/browse/HBASE-26002
> Project: HBase
>  Issue Type: Improvement
>  Components: Coprocessors
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 2.5.0, 3.0.0-alpha-2, 2.4.5
>
>
> HBASE-25703 added support for the conditional update in 
> MultiRowMutationEndpoint, but MultiRowMutationEndpoint doesn't return the 
> result of the conditional update (whether or not the mutations are executed). 
> In this Jira, we will make MultiRowMutationEndpoint return the result of the 
> conditional update.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-26002) MultiRowMutationEndpoint should return the result of the conditional update

2021-06-14 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26002?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-26002:
-
Fix Version/s: 2.5.0

> MultiRowMutationEndpoint should return the result of the conditional update
> ---
>
> Key: HBASE-26002
> URL: https://issues.apache.org/jira/browse/HBASE-26002
> Project: HBase
>  Issue Type: Improvement
>  Components: Coprocessors
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 2.5.0, 3.0.0-alpha-2, 2.4.5
>
>
> HBASE-25703 added support for the conditional update in 
> MultiRowMutationEndpoint, but MultiRowMutationEndpoint doesn't return the 
> result of the conditional update (whether or not the mutations are executed). 
> In this Jira, we will make MultiRowMutationEndpoint return the result of the 
> conditional update.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-26002) MultiRowMutationEndpoint should return the result of the conditional update

2021-06-14 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26002?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-26002:
-
Fix Version/s: 2.4.5
   3.0.0-alpha-2

> MultiRowMutationEndpoint should return the result of the conditional update
> ---
>
> Key: HBASE-26002
> URL: https://issues.apache.org/jira/browse/HBASE-26002
> Project: HBase
>  Issue Type: Improvement
>  Components: Coprocessors
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-2, 2.4.5
>
>
> HBASE-25703 added support for the conditional update in 
> MultiRowMutationEndpoint, but MultiRowMutationEndpoint doesn't return the 
> result of the conditional update (whether or not the mutations are executed). 
> In this Jira, we will make MultiRowMutationEndpoint return the result of the 
> conditional update.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (HBASE-26002) MultiRowMutationEndpoint should return the result of the conditional update

2021-06-14 Thread Toshihiro Suzuki (Jira)
Toshihiro Suzuki created HBASE-26002:


 Summary: MultiRowMutationEndpoint should return the result of the 
conditional update
 Key: HBASE-26002
 URL: https://issues.apache.org/jira/browse/HBASE-26002
 Project: HBase
  Issue Type: Improvement
  Components: Coprocessors
Reporter: Toshihiro Suzuki
Assignee: Toshihiro Suzuki


HBASE-25703 added support for the conditional update in 
MultiRowMutationEndpoint, but MultiRowMutationEndpoint doesn't return the 
result of the conditional update (whether or not the mutations are executed). 
In this Jira, we will make MultiRowMutationEndpoint return the result of the 
conditional update.




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Comment Edited] (HBASE-25797) Batch version of checkAndMutate on AsyncTable always returns false

2021-05-05 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki edited comment on HBASE-25797 at 5/5/21, 2:07 PM:
---

[~bryson] Thank you for sharing the code. But I just realized that you are 
using different versions between client and server. Can you please use the same 
version? And note that hbase-2.2.6 doesn't support batch version of 
checkAndMutate(). We support that feature from hbase-2.4.0.

Please see the following Jira for the details:
https://issues.apache.org/jira/browse/HBASE-8458


was (Author: brfrn169):
[~bryson] Thank you for sharing the code. But I just realized that you are 
using different versions between client and server. Can you please use the same 
version? And note that hbase-2.2.6 doesn't support batch version of 
checkAndMutate(). We support that feature from hbase-2.4.0:

Please see the following Jira for the details:
https://issues.apache.org/jira/browse/HBASE-8458

> Batch version of checkAndMutate on AsyncTable always returns false
> --
>
> Key: HBASE-25797
> URL: https://issues.apache.org/jira/browse/HBASE-25797
> Project: HBase
>  Issue Type: Bug
>  Components: Client
>Affects Versions: 2.4.1
>Reporter: Hochul Shin
>Assignee: Toshihiro Suzuki
>Priority: Minor
>  Labels: bug
>
> Batch version of CheckAndMutate always returns false whereas non-batch 
> version works fine. 
> The code is like: 
>  
> {code:java}
> AysncTable table = connection.getTable(tableName, executorService);
> ...
> // add r1
> table.put(Arrays.asList(
>  new Put(Bytes.toBytes("r1")).addColumn(COL_FAMILY, Bytes.toBytes("q1"), 
> Bytes.toBytes("v1";
> CheckAndMutate checkAndMutate1 = 
> CheckAndMutate.newBuilder(Bytes.toBytes("r1"))
>  .ifNotExists(COL_FAMILY, Bytes.toBytes("q1"))
>  .build(new Put(Bytes.toBytes("r1")).addColumn(COL_FAMILY, 
> Bytes.toBytes("q1"), Bytes.toBytes("v1")));
> CheckAndMutate checkAndMutate2 = 
> CheckAndMutate.newBuilder(Bytes.toBytes("r2"))
>  .ifNotExists(COL_FAMILY, Bytes.toBytes("q2"))
>  .build(new Put(Bytes.toBytes("r2")).addColumn(COL_FAMILY, 
> Bytes.toBytes("q2"), Bytes.toBytes("v2")));
> {code}
>  
> With batch version of checkAndMutate
> {code:java}
> List> results =
>     table.checkAndMutate(Arrays.asList(checkAndMutate1, checkAndMutate2));
> System.out.println("first: " + results.get(0).join().isSuccess());  // false
> System.out.println("second: " + results.get(1).join().isSuccess()); //false!
> {code}
>  
>  
> Even it returned false, the r1 was written to the table. (timestamp was 
> updated) 
>  
> With non-batch version of checkAndMutate
>  
> {code:java}
> CompletableFuture result1 = 
> table.checkAndMutate(checkAndMutate1);
>  CompletableFuture result2 = 
> table.checkAndMutate(checkAndMutate2);
> System.out.println("first: " + result1.join().isSuccess()); // false 
> System.out.println("second: " + result2.join().isSuccess()); // true as 
> expected
> {code}
>  
> As expected r1 wasn't written to the table. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-25797) Batch version of checkAndMutate on AsyncTable always returns false

2021-05-05 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-25797:
--

[~bryson] Thank you for sharing the code. But I just realized that you are 
using different versions between client and server. Can you please use the same 
version? And note that hbase-2.2.6 doesn't support batch version of 
checkAndMutate(). We support that feature from hbase-2.4.0:

Please see the following Jira for the details:
https://issues.apache.org/jira/browse/HBASE-8458

> Batch version of checkAndMutate on AsyncTable always returns false
> --
>
> Key: HBASE-25797
> URL: https://issues.apache.org/jira/browse/HBASE-25797
> Project: HBase
>  Issue Type: Bug
>  Components: Client
>Affects Versions: 2.4.1
>Reporter: Hochul Shin
>Assignee: Toshihiro Suzuki
>Priority: Minor
>  Labels: bug
>
> Batch version of CheckAndMutate always returns false whereas non-batch 
> version works fine. 
> The code is like: 
>  
> {code:java}
> AysncTable table = connection.getTable(tableName, executorService);
> ...
> // add r1
> table.put(Arrays.asList(
>  new Put(Bytes.toBytes("r1")).addColumn(COL_FAMILY, Bytes.toBytes("q1"), 
> Bytes.toBytes("v1";
> CheckAndMutate checkAndMutate1 = 
> CheckAndMutate.newBuilder(Bytes.toBytes("r1"))
>  .ifNotExists(COL_FAMILY, Bytes.toBytes("q1"))
>  .build(new Put(Bytes.toBytes("r1")).addColumn(COL_FAMILY, 
> Bytes.toBytes("q1"), Bytes.toBytes("v1")));
> CheckAndMutate checkAndMutate2 = 
> CheckAndMutate.newBuilder(Bytes.toBytes("r2"))
>  .ifNotExists(COL_FAMILY, Bytes.toBytes("q2"))
>  .build(new Put(Bytes.toBytes("r2")).addColumn(COL_FAMILY, 
> Bytes.toBytes("q2"), Bytes.toBytes("v2")));
> {code}
>  
> With batch version of checkAndMutate
> {code:java}
> List> results =
>     table.checkAndMutate(Arrays.asList(checkAndMutate1, checkAndMutate2));
> System.out.println("first: " + results.get(0).join().isSuccess());  // false
> System.out.println("second: " + results.get(1).join().isSuccess()); //false!
> {code}
>  
>  
> Even it returned false, the r1 was written to the table. (timestamp was 
> updated) 
>  
> With non-batch version of checkAndMutate
>  
> {code:java}
> CompletableFuture result1 = 
> table.checkAndMutate(checkAndMutate1);
>  CompletableFuture result2 = 
> table.checkAndMutate(checkAndMutate2);
> System.out.println("first: " + result1.join().isSuccess()); // false 
> System.out.println("second: " + result2.join().isSuccess()); // true as 
> expected
> {code}
>  
> As expected r1 wasn't written to the table. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (HBASE-25797) Batch version of checkAndMutate on AsyncTable always returns false

2021-05-03 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25797?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki reassigned HBASE-25797:


Assignee: Toshihiro Suzuki

> Batch version of checkAndMutate on AsyncTable always returns false
> --
>
> Key: HBASE-25797
> URL: https://issues.apache.org/jira/browse/HBASE-25797
> Project: HBase
>  Issue Type: Bug
>  Components: Client
>Affects Versions: 2.4.1
>Reporter: Hochul Shin
>Assignee: Toshihiro Suzuki
>Priority: Minor
>  Labels: bug
>
> Batch version of CheckAndMutate always returns false whereas non-batch 
> version works fine. 
> The code is like: 
>  
> {code:java}
> AysncTable table = connection.getTable(tableName, executorService);
> ...
> // add r1
> table.put(Arrays.asList(
>  new Put(Bytes.toBytes("r1")).addColumn(COL_FAMILY, Bytes.toBytes("q1"), 
> Bytes.toBytes("v1";
> CheckAndMutate checkAndMutate1 = 
> CheckAndMutate.newBuilder(Bytes.toBytes("r1"))
>  .ifNotExists(COL_FAMILY, Bytes.toBytes("q1"))
>  .build(new Put(Bytes.toBytes("r1")).addColumn(COL_FAMILY, 
> Bytes.toBytes("q1"), Bytes.toBytes("v1")));
> CheckAndMutate checkAndMutate2 = 
> CheckAndMutate.newBuilder(Bytes.toBytes("r2"))
>  .ifNotExists(COL_FAMILY, Bytes.toBytes("q2"))
>  .build(new Put(Bytes.toBytes("r2")).addColumn(COL_FAMILY, 
> Bytes.toBytes("q2"), Bytes.toBytes("v2")));
> {code}
>  
> With batch version of checkAndMutate
> {code:java}
> List> results =
>     table.checkAndMutate(Arrays.asList(checkAndMutate1, checkAndMutate2));
> System.out.println("first: " + results.get(0).join().isSuccess());  // false
> System.out.println("second: " + results.get(1).join().isSuccess()); //false!
> {code}
>  
>  
> Even it returned false, the r1 was written to the table. (timestamp was 
> updated) 
>  
> With non-batch version of checkAndMutate
>  
> {code:java}
> CompletableFuture result1 = 
> table.checkAndMutate(checkAndMutate1);
>  CompletableFuture result2 = 
> table.checkAndMutate(checkAndMutate2);
> System.out.println("first: " + result1.join().isSuccess()); // false 
> System.out.println("second: " + result2.join().isSuccess()); // true as 
> expected
> {code}
>  
> As expected r1 wasn't written to the table. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-25797) Batch version of checkAndMutate on AsyncTable always returns false

2021-05-03 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-25797:
--

Thank you [~bryson],

Can you please try to call the get() method of the CompletableFuture object 
returned by table.put() as follows:
{code}
// add r1
table.put(Arrays.asList(
 new Put(Bytes.toBytes("r1")).addColumn(COL_FAMILY, Bytes.toBytes("q1"), 
Bytes.toBytes("v1".get();
{code}

As the *table* is AysncTable, we need to wait for table.put() to complete 
before calling table.checkAndMutate(). Thanks.

> Batch version of checkAndMutate on AsyncTable always returns false
> --
>
> Key: HBASE-25797
> URL: https://issues.apache.org/jira/browse/HBASE-25797
> Project: HBase
>  Issue Type: Bug
>  Components: Client
>Affects Versions: 2.4.1
>Reporter: Hochul Shin
>Priority: Minor
>  Labels: bug
>
> Batch version of CheckAndMutate always returns false whereas non-batch 
> version works fine. 
> The code is like: 
>  
> {code:java}
> AysncTable table = connection.getTable(tableName, executorService);
> ...
> // add r1
> table.put(Arrays.asList(
>  new Put(Bytes.toBytes("r1")).addColumn(COL_FAMILY, Bytes.toBytes("q1"), 
> Bytes.toBytes("v1";
> CheckAndMutate checkAndMutate1 = 
> CheckAndMutate.newBuilder(Bytes.toBytes("r1"))
>  .ifNotExists(COL_FAMILY, Bytes.toBytes("q1"))
>  .build(new Put(Bytes.toBytes("r1")).addColumn(COL_FAMILY, 
> Bytes.toBytes("q1"), Bytes.toBytes("v1")));
> CheckAndMutate checkAndMutate2 = 
> CheckAndMutate.newBuilder(Bytes.toBytes("r2"))
>  .ifNotExists(COL_FAMILY, Bytes.toBytes("q2"))
>  .build(new Put(Bytes.toBytes("r2")).addColumn(COL_FAMILY, 
> Bytes.toBytes("q2"), Bytes.toBytes("v2")));
> {code}
>  
> With batch version of checkAndMutate
> {code:java}
> List> results =
>     table.checkAndMutate(Arrays.asList(checkAndMutate1, checkAndMutate2));
> System.out.println("first: " + results.get(0).join().isSuccess());  // false
> System.out.println("second: " + results.get(1).join().isSuccess()); //false!
> {code}
>  
>  
> Even it returned false, the r1 was written to the table. (timestamp was 
> updated) 
>  
> With non-batch version of checkAndMutate
>  
> {code:java}
> CompletableFuture result1 = 
> table.checkAndMutate(checkAndMutate1);
>  CompletableFuture result2 = 
> table.checkAndMutate(checkAndMutate2);
> System.out.println("first: " + result1.join().isSuccess()); // false 
> System.out.println("second: " + result2.join().isSuccess()); // true as 
> expected
> {code}
>  
> As expected r1 wasn't written to the table. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-25797) Batch version of checkAndMutate on AsyncTable always returns false

2021-05-01 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-25797:
--

[~bryson] Could you please show me a complete code to reproduce this issue?



> Batch version of checkAndMutate on AsyncTable always returns false
> --
>
> Key: HBASE-25797
> URL: https://issues.apache.org/jira/browse/HBASE-25797
> Project: HBase
>  Issue Type: Bug
>  Components: Client
>Affects Versions: 2.4.1
>Reporter: Hochul Shin
>Priority: Minor
>  Labels: bug
>
> Batch version of CheckAndMutate always returns false whereas non-batch 
> version works fine. 
> The code is like: 
> ```
> AysncTable table = connection.getTable(tableName, executorService);
> ...
> // add r1
> table.put(Arrays.asList(
>  new Put(Bytes.toBytes("r1")).addColumn(COL_FAMILY, Bytes.toBytes("q1"), 
> Bytes.toBytes("v1";
> CheckAndMutate checkAndMutate1 = 
> CheckAndMutate.newBuilder(Bytes.toBytes("r1"))
>  .ifNotExists(COL_FAMILY, Bytes.toBytes("q1"))
>  .build(new Put(Bytes.toBytes("r1")).addColumn(COL_FAMILY, 
> Bytes.toBytes("q1"), Bytes.toBytes("v1")));
> CheckAndMutate checkAndMutate2 = 
> CheckAndMutate.newBuilder(Bytes.toBytes("r2"))
>  .ifNotExists(COL_FAMILY, Bytes.toBytes("q2"))
>  .build(new Put(Bytes.toBytes("r2")).addColumn(COL_FAMILY, 
> Bytes.toBytes("q2"), Bytes.toBytes("v2")));
> ```
> With batch version of checkAndMutate
> ```
> List> results =
>     table.checkAndMutate(Arrays.asList(checkAndMutate1, checkAndMutate2));
> System.out.println("first: " + results.get(0).join().isSuccess());  // false
>  System.out.println("second: " + results.get(1).join().isSuccess()); //false!
> ```
> Even it returned false, the r1 was written to the table. (timestamp was 
> updated) 
>  
> With non-batch version of checkAndMutate
> ```
> CompletableFuture result1 = 
> table.checkAndMutate(checkAndMutate1);
>  CompletableFuture result2 = 
> table.checkAndMutate(checkAndMutate2);
> System.out.println("first: " + result1.join().isSuccess()); // false 
>  System.out.println("second: " + result2.join().isSuccess()); // true as 
> expected
> ```
> As expected r1 wasn't written to the table. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-25797) Batch version of checkAndMutate on AsyncTable always returns false

2021-05-01 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-25797:
--

Thank you for reporting this. Let me take a look at it.

> Batch version of checkAndMutate on AsyncTable always returns false
> --
>
> Key: HBASE-25797
> URL: https://issues.apache.org/jira/browse/HBASE-25797
> Project: HBase
>  Issue Type: Bug
>  Components: Client
>Affects Versions: 2.4.1
>Reporter: Hochul Shin
>Priority: Minor
>  Labels: bug
>
> Batch version of CheckAndMutate always returns false whereas non-batch 
> version works fine. 
> The code is like: 
> ```
> AysncTable table = connection.getTable(tableName, executorService);
> ...
> // add r1
> table.put(Arrays.asList(
>  new Put(Bytes.toBytes("r1")).addColumn(COL_FAMILY, Bytes.toBytes("q1"), 
> Bytes.toBytes("v1";
> CheckAndMutate checkAndMutate1 = 
> CheckAndMutate.newBuilder(Bytes.toBytes("r1"))
>  .ifNotExists(COL_FAMILY, Bytes.toBytes("q1"))
>  .build(new Put(Bytes.toBytes("r1")).addColumn(COL_FAMILY, 
> Bytes.toBytes("q1"), Bytes.toBytes("v1")));
> CheckAndMutate checkAndMutate2 = 
> CheckAndMutate.newBuilder(Bytes.toBytes("r2"))
>  .ifNotExists(COL_FAMILY, Bytes.toBytes("q2"))
>  .build(new Put(Bytes.toBytes("r2")).addColumn(COL_FAMILY, 
> Bytes.toBytes("q2"), Bytes.toBytes("v2")));
> ```
> With batch version of checkAndMutate
> ```
> List> results =
>     table.checkAndMutate(Arrays.asList(checkAndMutate1, checkAndMutate2));
> System.out.println("first: " + results.get(0).join().isSuccess());  // false
>  System.out.println("second: " + results.get(1).join().isSuccess()); //false!
> ```
> Even it returned false, the r1 was written to the table. (timestamp was 
> updated) 
>  
> With non-batch version of checkAndMutate
> ```
> CompletableFuture result1 = 
> table.checkAndMutate(checkAndMutate1);
>  CompletableFuture result2 = 
> table.checkAndMutate(checkAndMutate2);
> System.out.println("first: " + result1.join().isSuccess()); // false 
>  System.out.println("second: " + result2.join().isSuccess()); // true as 
> expected
> ```
> As expected r1 wasn't written to the table. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (HBASE-25766) Introduce RegionSplitRestriction that restricts the pattern of the split point

2021-04-21 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25766?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki resolved HBASE-25766.
--
Hadoop Flags: Reviewed
  Resolution: Fixed

> Introduce RegionSplitRestriction that restricts the pattern of the split point
> --
>
> Key: HBASE-25766
> URL: https://issues.apache.org/jira/browse/HBASE-25766
> Project: HBase
>  Issue Type: Improvement
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.5.0, 2.4.3
>
>
> As discussed in HBASE-25706, we can introduce RegionSplitRestriction that 
> restricts the pattern of the split point.
> See the following comment for the details:
> https://issues.apache.org/jira/browse/HBASE-25706?focusedCommentId=17310190=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17310190
> CC: [~zhangduo] [~stack]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-25766) Introduce RegionSplitRestriction that restricts the pattern of the split point

2021-04-21 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-25766:
--

Pushed to master, branch-2 and branch-2.4. 

Thank you for reviewing and discussing this! [~zhangduo] [~stack]

> Introduce RegionSplitRestriction that restricts the pattern of the split point
> --
>
> Key: HBASE-25766
> URL: https://issues.apache.org/jira/browse/HBASE-25766
> Project: HBase
>  Issue Type: Improvement
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.5.0, 2.4.3
>
>
> As discussed in HBASE-25706, we can introduce RegionSplitRestriction that 
> restricts the pattern of the split point.
> See the following comment for the details:
> https://issues.apache.org/jira/browse/HBASE-25706?focusedCommentId=17310190=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17310190
> CC: [~zhangduo] [~stack]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25766) Introduce RegionSplitRestriction that restricts the pattern of the split point

2021-04-21 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25766?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25766:
-
Fix Version/s: 2.5.0

> Introduce RegionSplitRestriction that restricts the pattern of the split point
> --
>
> Key: HBASE-25766
> URL: https://issues.apache.org/jira/browse/HBASE-25766
> Project: HBase
>  Issue Type: Improvement
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.5.0, 2.4.3
>
>
> As discussed in HBASE-25706, we can introduce RegionSplitRestriction that 
> restricts the pattern of the split point.
> See the following comment for the details:
> https://issues.apache.org/jira/browse/HBASE-25706?focusedCommentId=17310190=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17310190
> CC: [~zhangduo] [~stack]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25766) Introduce RegionSplitRestriction that restricts the pattern of the split point

2021-04-21 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25766?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25766:
-
Release Note: 
After HBASE-25766, we can specify a split restriction, "KeyPrefix" or 
"DelimitedKeyPrefix", to a table with the 
"hbase.regionserver.region.split_restriction.type" property. The "KeyPrefix" 
split restriction groups rows by a prefix of the row-key. And the 
"DelimitedKeyPrefix" split restriction groups rows by a prefix of the row-key 
with a delimiter.

For example:
```
# Create a table with a "KeyPrefix" split restriction, where the prefix length 
is 2 bytes
hbase> create 'tbl1', 'fam', {CONFIGURATION => 
{'hbase.regionserver.region.split_restriction.type' => 'KeyPrefix', 
'hbase.regionserver.region.split_restriction.prefix_length' => '2'}}

# Create a table with a "DelimitedKeyPrefix" split restriction, where the 
delimiter is a comma (,)
hbase> create 'tbl2', 'fam', {CONFIGURATION => 
{'hbase.regionserver.region.split_restriction.type' => 'DelimitedKeyPrefix', 
'hbase.regionserver.region.split_restriction.delimiter' => ','}}
```

Instead of specifying a split restriction to a table directly, we can also set 
the properties in hbase-site.xml. In this case, the specified split restriction 
is applied for all the tables.

Note that the split restriction is also applied to a user-specified split point 
so that we don't allow users to break the restriction, which is different 
behavior from the existing KeyPrefixRegionSplitPolicy and 
DelimitedKeyPrefixRegionSplitPolicy.

  was:
After HBASE-25766, we can specify a split restriction, "KeyPrefix" or 
"DelimitedKeyPrefix", to a table with the 
"hbase.regionserver.region.split_restriction.type" property. The "KeyPrefix" 
split restriction groups rows by a prefix of the row-key. And the 
"DelimitedKeyPrefix" split restriction groups rows by a prefix of the row-key 
with a delimiter.

For example:
```
# Create a table with a "KeyPrefix" split restriction, where the prefix length 
is 2 bytes
hbase> create 'tbl1', 'fam', {CONFIGURATION => 
{'hbase.regionserver.region.split_restriction.type' => 'KeyPrefix', 
'hbase.regionserver.region.split_restriction.prefix_length' => '2'}}

# Create a table with a "DelimitedKeyPrefix" split restriction, where the 
delimiter is a comma (,)
hbase> create 'tbl2', 'fam', {CONFIGURATION => 
{'hbase.regionserver.region.split_restriction.type' => 'DelimitedKeyPrefix', 
'hbase.regionserver.region.split_restriction.delimiter' => ','}}
```

Instead of specifying a split restriction to a table directly, we can also set 
the properties in hbase-site.xml. In this case, the specified split restriction 
is applied for all the tables.

Note that after this change, the split restriction is also applied to a 
user-specified split point so that we don't allow users to break the 
restriction, which is a behavior change.


> Introduce RegionSplitRestriction that restricts the pattern of the split point
> --
>
> Key: HBASE-25766
> URL: https://issues.apache.org/jira/browse/HBASE-25766
> Project: HBase
>  Issue Type: Improvement
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.4.3
>
>
> As discussed in HBASE-25706, we can introduce RegionSplitRestriction that 
> restricts the pattern of the split point.
> See the following comment for the details:
> https://issues.apache.org/jira/browse/HBASE-25706?focusedCommentId=17310190=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17310190
> CC: [~zhangduo] [~stack]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25766) Introduce RegionSplitRestriction that restricts the pattern of the split point

2021-04-20 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25766?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25766:
-
Release Note: 
After HBASE-25766, we can specify a split restriction, "KeyPrefix" or 
"DelimitedKeyPrefix", to a table with the 
"hbase.regionserver.region.split_restriction.type" property. The "KeyPrefix" 
split restriction groups rows by a prefix of the row-key. And the 
"DelimitedKeyPrefix" split restriction groups rows by a prefix of the row-key 
with a delimiter.

For example:
```
# Create a table with a "KeyPrefix" split restriction, where the prefix length 
is 2 bytes
hbase> create 'tbl1', 'fam', {CONFIGURATION => 
{'hbase.regionserver.region.split_restriction.type' => 'KeyPrefix', 
'hbase.regionserver.region.split_restriction.prefix_length' => '2'}}

# Create a table with a "DelimitedKeyPrefix" split restriction, where the 
delimiter is a comma (,)
hbase> create 'tbl2', 'fam', {CONFIGURATION => 
{'hbase.regionserver.region.split_restriction.type' => 'DelimitedKeyPrefix', 
'hbase.regionserver.region.split_restriction.delimiter' => ','}}
```

Instead of specifying a split restriction to a table directly, we can also set 
the properties in hbase-site.xml. In this case, the specified split restriction 
is applied for all the tables.

Note that after this change, the split restriction is also applied to a 
user-specified split point so that we don't allow users to break the 
restriction, which is a behavior change.

  was:
After HBASE-25766, we can specify a split restriction, "KeyPrefix" or 
"DelimitedKeyPrefix", to a table with the 
"hbase.regionserver.region.split_restriction.type" property. The "KeyPrefix" 
split restriction groups rows by a prefix of the row-key. And the 
"DelimitedKeyPrefix" split restriction groups rows by a prefix of the row-key 
with a delimiter.

For example:
```
# Create a table with a "KeyPrefix" split restriction, where the prefix length 
is 2 bytes
hbase> create 'tbl1', 'fam', {CONFIGURATION => 
{'hbase.regionserver.region.split_restriction.type' => 'KeyPrefix', 
'hbase.regionserver.region.split_restriction.prefix_length' => '2'}}

# Create a table with a "DelimitedKeyPrefix" split restriction, where the 
delimiter is a comma (,)
hbase> create 'tbl2', 'fam', {CONFIGURATION => 
{'hbase.regionserver.region.split_restriction.type' => 'DelimitedKeyPrefix', 
'hbase.regionserver.region.split_restriction.delimiter' => ','}}
```

Instead of specifying a split restriction to a table directly, we can also set 
the properties in hbase-site.xml. In this case, the specified split restriction 
is applied for all the tables.



> Introduce RegionSplitRestriction that restricts the pattern of the split point
> --
>
> Key: HBASE-25766
> URL: https://issues.apache.org/jira/browse/HBASE-25766
> Project: HBase
>  Issue Type: Improvement
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.4.3
>
>
> As discussed in HBASE-25706, we can introduce RegionSplitRestriction that 
> restricts the pattern of the split point.
> See the following comment for the details:
> https://issues.apache.org/jira/browse/HBASE-25706?focusedCommentId=17310190=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17310190
> CC: [~zhangduo] [~stack]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25766) Introduce RegionSplitRestriction that restricts the pattern of the split point

2021-04-20 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25766?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25766:
-
Release Note: 
After HBASE-25766, we can specify a split restriction, "KeyPrefix" or 
"DelimitedKeyPrefix", to a table with the 
"hbase.regionserver.region.split_restriction.type" property. The "KeyPrefix" 
split restriction groups rows by a prefix of the row-key. And the 
"DelimitedKeyPrefix" split restriction groups rows by a prefix of the row-key 
with a delimiter.

For example:
```
# Create a table with a "KeyPrefix" split restriction, where the prefix length 
is 2 bytes
hbase> create 'tbl1', 'fam', {CONFIGURATION => 
{'hbase.regionserver.region.split_restriction.type' => 'KeyPrefix', 
'hbase.regionserver.region.split_restriction.prefix_length' => '2'}}

# Create a table with a "DelimitedKeyPrefix" split restriction, where the 
delimiter is a comma (,)
hbase> create 'tbl2', 'fam', {CONFIGURATION => 
{'hbase.regionserver.region.split_restriction.type' => 'DelimitedKeyPrefix', 
'hbase.regionserver.region.split_restriction.delimiter' => ','}}
```

Instead of specifying a split restriction to a table directly, we can also set 
the properties in hbase-site.xml. In this case, the specified split restriction 
is applied for all the tables.


  was:
After HBASE-25766, we can specify a split restriction, "KeyPrefix" or 
"DelimitedKeyPrefix", to a table with 
"hbase.regionserver.region.split_restriction.type" property. The "KeyPrefix" 
split restriction groups rows by a prefix of the row-key. And the 
"DelimitedKeyPrefix" split restriction groups rows by a prefix of the row-key 
with a delimiter.

For example:
```
# Create a table with a "KeyPrefix" split restriction, where the prefix length 
is 2 bytes
hbase> create 'tbl1', 'fam', {CONFIGURATION => 
{'hbase.regionserver.region.split_restriction.type' => 'KeyPrefix', 
'hbase.regionserver.region.split_restriction.prefix_length' => '2'}}

# Create a table with a "DelimitedKeyPrefix" split restriction, where the 
delimiter is a comma (,)
hbase> create 'tbl2', 'fam', {CONFIGURATION => 
{'hbase.regionserver.region.split_restriction.type' => 'DelimitedKeyPrefix', 
'hbase.regionserver.region.split_restriction.delimiter' => ','}}
```

Instead of specifying a split restriction to a table directly, we can also set 
the properties in hbase-site.xml. In this case, the specified split restriction 
is applied for all the tables.



> Introduce RegionSplitRestriction that restricts the pattern of the split point
> --
>
> Key: HBASE-25766
> URL: https://issues.apache.org/jira/browse/HBASE-25766
> Project: HBase
>  Issue Type: Improvement
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.4.3
>
>
> As discussed in HBASE-25706, we can introduce RegionSplitRestriction that 
> restricts the pattern of the split point.
> See the following comment for the details:
> https://issues.apache.org/jira/browse/HBASE-25706?focusedCommentId=17310190=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17310190
> CC: [~zhangduo] [~stack]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25766) Introduce RegionSplitRestriction that restricts the pattern of the split point

2021-04-20 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25766?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25766:
-
Description: 
As discussed in HBASE-25706, we can introduce RegionPointRestriction that 
restricts the pattern of the split point.

See the following comment for the details:
https://issues.apache.org/jira/browse/HBASE-25706?focusedCommentId=17310190=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17310190

CC: [~zhangduo] [~stack]

  was:
As discussed in HBASE-25706, we can introduce RegionSplitPointRestriction that 
restricts the pattern of the split point.

See the following comment for the details:
https://issues.apache.org/jira/browse/HBASE-25706?focusedCommentId=17310190=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17310190

CC: [~zhangduo] [~stack]


> Introduce RegionSplitRestriction that restricts the pattern of the split point
> --
>
> Key: HBASE-25766
> URL: https://issues.apache.org/jira/browse/HBASE-25766
> Project: HBase
>  Issue Type: Improvement
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.4.3
>
>
> As discussed in HBASE-25706, we can introduce RegionPointRestriction that 
> restricts the pattern of the split point.
> See the following comment for the details:
> https://issues.apache.org/jira/browse/HBASE-25706?focusedCommentId=17310190=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17310190
> CC: [~zhangduo] [~stack]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25766) Introduce RegionSplitRestriction that restricts the pattern of the split point

2021-04-20 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25766?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25766:
-
Release Note: 
After HBASE-25766, we can specify a split restriction, "KeyPrefix" or 
"DelimitedKeyPrefix", to a table with 
"hbase.regionserver.region.split_restriction.type" property. The "KeyPrefix" 
split restriction groups rows by a prefix of the row-key. And the 
"DelimitedKeyPrefix" split restriction groups rows by a prefix of the row-key 
with a delimiter.

For example:
```
# Create a table with a "KeyPrefix" split restriction, where the prefix length 
is 2 bytes
hbase> create 'tbl1', 'fam', {CONFIGURATION => 
{'hbase.regionserver.region.split_restriction.type' => 'KeyPrefix', 
'hbase.regionserver.region.split_restriction.prefix_length' => '2'}}

# Create a table with a "DelimitedKeyPrefix" split restriction, where the 
delimiter is a comma (,)
hbase> create 'tbl2', 'fam', {CONFIGURATION => 
{'hbase.regionserver.region.split_restriction.type' => 'DelimitedKeyPrefix', 
'hbase.regionserver.region.split_restriction.delimiter' => ','}}
```

Instead of specifying a split restriction to a table directly, we can also set 
the properties in hbase-site.xml. In this case, the specified split restriction 
is applied for all the tables.


  was:
After HBASE-25766, we can specify a split point restriction, "KeyPrefix" or 
"DelimitedKeyPrefix", to a table with 
"hbase.regionserver.region.split_point_restriction.type" property. The 
"KeyPrefix" split point restriction groups rows by a prefix of the row-key. And 
the "DelimitedKeyPrefix" split point restriction groups rows by a prefix of the 
row-key with a delimiter.

For example:
```
# Create a table with a "KeyPrefix" split point restriction, where the prefix 
length is 2 bytes
hbase> create 'tbl1', 'fam', {CONFIGURATION => 
{'hbase.regionserver.region.split_point_restriction.type' => 'KeyPrefix', 
'hbase.regionserver.region.split_point_restriction.prefix_length' => '2'}}

# Create a table with a "DelimitedKeyPrefix" split point restriction, where the 
delimiter is a comma (,)
hbase> create 'tbl2', 'fam', {CONFIGURATION => 
{'hbase.regionserver.region.split_point_restriction.type' => 
'DelimitedKeyPrefix', 
'hbase.regionserver.region.split_point_restriction.delimiter' => ','}}
```

Instead of specifying a split point restriction to a table directly, we can 
also set the properties in hbase-site.xml. In this case, the specified split 
point restriction is applied for all the tables.



> Introduce RegionSplitRestriction that restricts the pattern of the split point
> --
>
> Key: HBASE-25766
> URL: https://issues.apache.org/jira/browse/HBASE-25766
> Project: HBase
>  Issue Type: Improvement
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.4.3
>
>
> As discussed in HBASE-25706, we can introduce RegionSplitPointRestriction 
> that restricts the pattern of the split point.
> See the following comment for the details:
> https://issues.apache.org/jira/browse/HBASE-25706?focusedCommentId=17310190=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17310190
> CC: [~zhangduo] [~stack]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25766) Introduce RegionSplitRestriction that restricts the pattern of the split point

2021-04-20 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25766?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25766:
-
Description: 
As discussed in HBASE-25706, we can introduce RegionSplitRestriction that 
restricts the pattern of the split point.

See the following comment for the details:
https://issues.apache.org/jira/browse/HBASE-25706?focusedCommentId=17310190=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17310190

CC: [~zhangduo] [~stack]

  was:
As discussed in HBASE-25706, we can introduce RegionPointRestriction that 
restricts the pattern of the split point.

See the following comment for the details:
https://issues.apache.org/jira/browse/HBASE-25706?focusedCommentId=17310190=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17310190

CC: [~zhangduo] [~stack]


> Introduce RegionSplitRestriction that restricts the pattern of the split point
> --
>
> Key: HBASE-25766
> URL: https://issues.apache.org/jira/browse/HBASE-25766
> Project: HBase
>  Issue Type: Improvement
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.4.3
>
>
> As discussed in HBASE-25706, we can introduce RegionSplitRestriction that 
> restricts the pattern of the split point.
> See the following comment for the details:
> https://issues.apache.org/jira/browse/HBASE-25706?focusedCommentId=17310190=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17310190
> CC: [~zhangduo] [~stack]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25766) Introduce RegionSplitRestriction that restricts the pattern of the split point

2021-04-20 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25766?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25766:
-
Summary: Introduce RegionSplitRestriction that restricts the pattern of the 
split point  (was: Introduce RegionSplitPointRestriction that restricts the 
pattern of the split point)

> Introduce RegionSplitRestriction that restricts the pattern of the split point
> --
>
> Key: HBASE-25766
> URL: https://issues.apache.org/jira/browse/HBASE-25766
> Project: HBase
>  Issue Type: Improvement
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.4.3
>
>
> As discussed in HBASE-25706, we can introduce RegionSplitPointRestriction 
> that restricts the pattern of the split point.
> See the following comment for the details:
> https://issues.apache.org/jira/browse/HBASE-25706?focusedCommentId=17310190=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17310190
> CC: [~zhangduo] [~stack]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-25766) Introduce RegionSplitPointRestriction that restricts the pattern of the split point

2021-04-19 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-25766:
--

[~stack] Can you please take a look at the PR? Thanks.

> Introduce RegionSplitPointRestriction that restricts the pattern of the split 
> point
> ---
>
> Key: HBASE-25766
> URL: https://issues.apache.org/jira/browse/HBASE-25766
> Project: HBase
>  Issue Type: Improvement
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.4.3
>
>
> As discussed in HBASE-25706, we can introduce RegionSplitPointRestriction 
> that restricts the pattern of the split point.
> See the following comment for the details:
> https://issues.apache.org/jira/browse/HBASE-25706?focusedCommentId=17310190=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17310190
> CC: [~zhangduo] [~stack]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25766) Introduce RegionSplitPointRestriction that restricts the pattern of the split point

2021-04-11 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25766?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25766:
-
Release Note: 
After HBASE-25766, we can specify a split point restriction, "KeyPrefix" or 
"DelimitedKeyPrefix", to a table with 
"hbase.regionserver.region.split_point_restriction.type" property. The 
"KeyPrefix" split point restriction groups rows by a prefix of the row-key. And 
the "DelimitedKeyPrefix" split point restriction groups rows by a prefix of the 
row-key with a delimiter.

For example:
```
# Create a table with a "KeyPrefix" split point restriction, where the prefix 
length is 2 bytes
hbase> create 'tbl1', 'fam', {CONFIGURATION => 
{'hbase.regionserver.region.split_point_restriction.type' => 'KeyPrefix', 
'hbase.regionserver.region.split_point_restriction.prefix_length' => '2'}}

# Create a table with a "DelimitedKeyPrefix" split point restriction, where the 
delimiter is a comma (,)
hbase> create 'tbl2', 'fam', {CONFIGURATION => 
{'hbase.regionserver.region.split_point_restriction.type' => 
'DelimitedKeyPrefix', 
'hbase.regionserver.region.split_point_restriction.delimiter' => ','}}
```

Instead of specifying a split point restriction to a table directly, we can 
also set the properties in hbase-site.xml. In this case, the specified split 
point restriction is applied for all the tables.


  was:
After HBASE-25766, we can specify a split point restriction, "KeyPrefix" or 
"DelimitedKeyPrefix", to a table with 
"hbase.regionserver.region.split_point_restriction.type" property. The 
"KeyPrefix" split point restriction groups rows by a prefix of the row-key. And 
the "DelimitedKeyPrefix" split point restriction groups rows by a prefix of the 
row-key with a delimiter.

For example:
```
# Create a table with a "KeyPrefix" split point restriction, where the prefix 
length is 2 bytes
create 'tbl1', 'fam', {CONFIGURATION => 
{'hbase.regionserver.region.split_point_restriction.type' => 'KeyPrefix', 
'hbase.regionserver.region.split_point_restriction.prefix_length' => '2'}}

# Create a table with a "DelimitedKeyPrefix" split point restriction, where the 
delimiter is a comma (,)
create 'tbl2', 'fam', {CONFIGURATION => 
{'hbase.regionserver.region.split_point_restriction.type' => 
'DelimitedKeyPrefix', 
'hbase.regionserver.region.split_point_restriction.delimiter' => ','}}
```

Instead of specifying a split point restriction to a table directly, we can 
also set the properties in hbase-site.xml. In this case, the specified split 
point restriction is applied for all the tables.



> Introduce RegionSplitPointRestriction that restricts the pattern of the split 
> point
> ---
>
> Key: HBASE-25766
> URL: https://issues.apache.org/jira/browse/HBASE-25766
> Project: HBase
>  Issue Type: Improvement
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.4.3
>
>
> As discussed in HBASE-25706, we can introduce RegionSplitPointRestriction 
> that restricts the pattern of the split point.
> See the following comment for the details:
> https://issues.apache.org/jira/browse/HBASE-25706?focusedCommentId=17310190=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17310190
> CC: [~zhangduo] [~stack]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25766) Introduce RegionSplitPointRestriction that restricts the pattern of the split point

2021-04-11 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25766?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25766:
-
Release Note: 
After HBASE-25766, we can specify a split point restriction, "KeyPrefix" or 
"DelimitedKeyPrefix", to a table with 
"hbase.regionserver.region.split_point_restriction.type" property. The 
"KeyPrefix" split point restriction groups rows by a prefix of the row-key. And 
the "DelimitedKeyPrefix" split point restriction groups rows by a prefix of the 
row-key with a delimiter.

For example:
```
# Create a table with a "KeyPrefix" split point restriction, where the prefix 
length is 2 bytes
create 'tbl1', 'fam', {CONFIGURATION => 
{'hbase.regionserver.region.split_point_restriction.type' => 'KeyPrefix', 
'hbase.regionserver.region.split_point_restriction.prefix_length' => '2'}}

# Create a table with a "DelimitedKeyPrefix" split point restriction, where the 
delimiter is a comma (,)
create 'tbl2', 'fam', {CONFIGURATION => 
{'hbase.regionserver.region.split_point_restriction.type' => 
'DelimitedKeyPrefix', 
'hbase.regionserver.region.split_point_restriction.delimiter' => ','}}
```

Instead of specifying a split point restriction to a table directly, we can 
also set the properties in hbase-site.xml. In this case, the specified split 
point restriction is applied for all the tables.


> Introduce RegionSplitPointRestriction that restricts the pattern of the split 
> point
> ---
>
> Key: HBASE-25766
> URL: https://issues.apache.org/jira/browse/HBASE-25766
> Project: HBase
>  Issue Type: Improvement
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.4.3
>
>
> As discussed in HBASE-25706, we can introduce RegionSplitPointRestriction 
> that restricts the pattern of the split point.
> See the following comment for the details:
> https://issues.apache.org/jira/browse/HBASE-25706?focusedCommentId=17310190=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17310190
> CC: [~zhangduo] [~stack]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (HBASE-25706) Support specifying a base split policy class in KeyPrefixRegionSplitPolicy and DelimitedKeyPrefixRegionSplitPolicy

2021-04-11 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25706?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki resolved HBASE-25706.
--
Resolution: Won't Fix

Closing this Jira and opened a new Jira HBASE-25766 to introduce 
RegionSplitPointRestriction.

> Support specifying a base split policy class in KeyPrefixRegionSplitPolicy 
> and DelimitedKeyPrefixRegionSplitPolicy
> --
>
> Key: HBASE-25706
> URL: https://issues.apache.org/jira/browse/HBASE-25706
> Project: HBase
>  Issue Type: Improvement
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
>
> Basically, I think we can use KeyPrefixRegionSplitPolicy and 
> DelimitedKeyPrefixRegionSplitPolicy along with other split policies. In this 
> Jira, we will support specifying a base split policy class in 
> KeyPrefixRegionSplitPolicy and DelimitedKeyPrefixRegionSplitPolicy to use 
> them with different split policies.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (HBASE-25766) Introduce RegionSplitPointRestriction that restricts the pattern of the split point

2021-04-11 Thread Toshihiro Suzuki (Jira)
Toshihiro Suzuki created HBASE-25766:


 Summary: Introduce RegionSplitPointRestriction that restricts the 
pattern of the split point
 Key: HBASE-25766
 URL: https://issues.apache.org/jira/browse/HBASE-25766
 Project: HBase
  Issue Type: Improvement
Reporter: Toshihiro Suzuki
Assignee: Toshihiro Suzuki
 Fix For: 3.0.0-alpha-1, 2.4.3


As discussed in HBASE-25706, we can introduce RegionSplitPointRestriction that 
restricts the pattern of the split point.

See the following comment for the details:
https://issues.apache.org/jira/browse/HBASE-25706?focusedCommentId=17310190=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17310190

CC: [~zhangduo] [~stack]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-25703) Support conditional update in MultiRowMutationEndpoint

2021-03-30 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-25703:
--

Pushed to branch-2 and branch-2.4.

Thank you for reviewing this! [~stack]

> Support conditional update in MultiRowMutationEndpoint
> --
>
> Key: HBASE-25703
> URL: https://issues.apache.org/jira/browse/HBASE-25703
> Project: HBase
>  Issue Type: Improvement
>  Components: Coprocessors
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.5.0, 2.4.3
>
>
> In some use cases, I think it will be useful that we can perform conditional 
> update in MultiRowMutationEndpoint. In this Jira, we can add support 
> conditional update in MultiRowMutationEndpoint.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (HBASE-25703) Support conditional update in MultiRowMutationEndpoint

2021-03-30 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25703?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki resolved HBASE-25703.
--
Hadoop Flags: Reviewed
  Resolution: Fixed

> Support conditional update in MultiRowMutationEndpoint
> --
>
> Key: HBASE-25703
> URL: https://issues.apache.org/jira/browse/HBASE-25703
> Project: HBase
>  Issue Type: Improvement
>  Components: Coprocessors
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.5.0, 2.4.3
>
>
> In some use cases, I think it will be useful that we can perform conditional 
> update in MultiRowMutationEndpoint. In this Jira, we can add support 
> conditional update in MultiRowMutationEndpoint.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Comment Edited] (HBASE-25703) Support conditional update in MultiRowMutationEndpoint

2021-03-30 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki edited comment on HBASE-25703 at 3/30/21, 6:51 AM:


Pushed to master, and created another PR for branch-2.


was (Author: brfrn169):
Pushed to master, and created a PR for branch-2.

> Support conditional update in MultiRowMutationEndpoint
> --
>
> Key: HBASE-25703
> URL: https://issues.apache.org/jira/browse/HBASE-25703
> Project: HBase
>  Issue Type: Improvement
>  Components: Coprocessors
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.5.0, 2.4.3
>
>
> In some use cases, I think it will be useful that we can perform conditional 
> update in MultiRowMutationEndpoint. In this Jira, we can add support 
> conditional update in MultiRowMutationEndpoint.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-25703) Support conditional update in MultiRowMutationEndpoint

2021-03-30 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-25703:
--

Pushed to master, and created a PR for branch-2.

> Support conditional update in MultiRowMutationEndpoint
> --
>
> Key: HBASE-25703
> URL: https://issues.apache.org/jira/browse/HBASE-25703
> Project: HBase
>  Issue Type: Improvement
>  Components: Coprocessors
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.5.0, 2.4.3
>
>
> In some use cases, I think it will be useful that we can perform conditional 
> update in MultiRowMutationEndpoint. In this Jira, we can add support 
> conditional update in MultiRowMutationEndpoint.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-25706) Support specifying a base split policy class in KeyPrefixRegionSplitPolicy and DelimitedKeyPrefixRegionSplitPolicy

2021-03-28 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-25706:
--

[~zhangduo] Thank you for reviewing this!

Yes, it sounds like a better abstraction, and we should introduce the 
splitPointRestriction config rather than extend the existing 
KeyPrefixRegionSplitPolicy and DelimitedKeyPrefixRegionSplitPolicy.

I will deprecate them, but can we keep the changes to use them along with other 
split policies until we introduce the splitPointRestriction config? What do you 
think? I don't think the changes break the original behavior.

> Support specifying a base split policy class in KeyPrefixRegionSplitPolicy 
> and DelimitedKeyPrefixRegionSplitPolicy
> --
>
> Key: HBASE-25706
> URL: https://issues.apache.org/jira/browse/HBASE-25706
> Project: HBase
>  Issue Type: Improvement
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
>
> Basically, I think we can use KeyPrefixRegionSplitPolicy and 
> DelimitedKeyPrefixRegionSplitPolicy along with other split policies. In this 
> Jira, we will support specifying a base split policy class in 
> KeyPrefixRegionSplitPolicy and DelimitedKeyPrefixRegionSplitPolicy to use 
> them with different split policies.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25706) Support specifying a base split policy class in KeyPrefixRegionSplitPolicy and DelimitedKeyPrefixRegionSplitPolicy

2021-03-28 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25706?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25706:
-
Description: Basically, I think we can use KeyPrefixRegionSplitPolicy and 
DelimitedKeyPrefixRegionSplitPolicy along with other split policies. In this 
Jira, we will support specifying a base split policy class in 
KeyPrefixRegionSplitPolicy and DelimitedKeyPrefixRegionSplitPolicy to use them 
with different split policies.  (was: Basically, I think we can use 
KeyPrefixRegionSplitPolicy along with other split policies. In this Jira, we 
will support specifying a base split policy class in KeyPrefixRegionSplitPolicy 
to use it with different split policies.)

> Support specifying a base split policy class in KeyPrefixRegionSplitPolicy 
> and DelimitedKeyPrefixRegionSplitPolicy
> --
>
> Key: HBASE-25706
> URL: https://issues.apache.org/jira/browse/HBASE-25706
> Project: HBase
>  Issue Type: Improvement
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
>
> Basically, I think we can use KeyPrefixRegionSplitPolicy and 
> DelimitedKeyPrefixRegionSplitPolicy along with other split policies. In this 
> Jira, we will support specifying a base split policy class in 
> KeyPrefixRegionSplitPolicy and DelimitedKeyPrefixRegionSplitPolicy to use 
> them with different split policies.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25706) Support specifying a base split policy class in KeyPrefixRegionSplitPolicy and DelimitedKeyPrefixRegionSplitPolicy

2021-03-28 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25706?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25706:
-
Summary: Support specifying a base split policy class in 
KeyPrefixRegionSplitPolicy and DelimitedKeyPrefixRegionSplitPolicy  (was: 
Support specifying a base split policy class in KeyPrefixRegionSplitPolicy to 
make it more useful)

> Support specifying a base split policy class in KeyPrefixRegionSplitPolicy 
> and DelimitedKeyPrefixRegionSplitPolicy
> --
>
> Key: HBASE-25706
> URL: https://issues.apache.org/jira/browse/HBASE-25706
> Project: HBase
>  Issue Type: Improvement
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
>
> Basically, I think we can use KeyPrefixRegionSplitPolicy along with other 
> split policies. In this Jira, we will support specifying a base split policy 
> class in KeyPrefixRegionSplitPolicy to use it with different split policies.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (HBASE-25706) Support specifying a base split policy class in KeyPrefixRegionSplitPolicy to make it more useful

2021-03-28 Thread Toshihiro Suzuki (Jira)
Toshihiro Suzuki created HBASE-25706:


 Summary: Support specifying a base split policy class in 
KeyPrefixRegionSplitPolicy to make it more useful
 Key: HBASE-25706
 URL: https://issues.apache.org/jira/browse/HBASE-25706
 Project: HBase
  Issue Type: Improvement
Reporter: Toshihiro Suzuki
Assignee: Toshihiro Suzuki


Basically, I think we can use KeyPrefixRegionSplitPolicy along with other split 
policies. In this Jira, we will support specifying a base split policy class in 
KeyPrefixRegionSplitPolicy to use it with different split policies.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (HBASE-25702) Remove RowProcessor

2021-03-27 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25702?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki resolved HBASE-25702.
--
Hadoop Flags: Reviewed
  Resolution: Fixed

> Remove RowProcessor
> ---
>
> Key: HBASE-25702
> URL: https://issues.apache.org/jira/browse/HBASE-25702
> Project: HBase
>  Issue Type: Improvement
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1
>
>
> As RowProcessor is deprecated, we can remove it in this Jira.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-25702) Remove RowProcessor

2021-03-27 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-25702:
--

Pushed to master. Thank you for taking a look at this! [~zhangduo]

> Remove RowProcessor
> ---
>
> Key: HBASE-25702
> URL: https://issues.apache.org/jira/browse/HBASE-25702
> Project: HBase
>  Issue Type: Improvement
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1
>
>
> As RowProcessor is deprecated, we can remove it in this Jira.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (HBASE-25704) Support conditional update in MultiRowMutationEndpoint

2021-03-27 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25704?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki resolved HBASE-25704.
--
Resolution: Duplicate

> Support conditional update in MultiRowMutationEndpoint
> --
>
> Key: HBASE-25704
> URL: https://issues.apache.org/jira/browse/HBASE-25704
> Project: HBase
>  Issue Type: Improvement
>  Components: Coprocessors
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.5.0, 2.4.3
>
>
> In some use cases, I think it will be useful that we can perform conditional 
> update in MultiRowMutationEndpoint. In this Jira, we can add support 
> conditional update in MultiRowMutationEndpoint.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (HBASE-25703) Support conditional update in MultiRowMutationEndpoint

2021-03-27 Thread Toshihiro Suzuki (Jira)
Toshihiro Suzuki created HBASE-25703:


 Summary: Support conditional update in MultiRowMutationEndpoint
 Key: HBASE-25703
 URL: https://issues.apache.org/jira/browse/HBASE-25703
 Project: HBase
  Issue Type: Improvement
  Components: Coprocessors
Reporter: Toshihiro Suzuki
Assignee: Toshihiro Suzuki
 Fix For: 3.0.0-alpha-1, 2.5.0, 2.4.3


In some use cases, I think it will be useful that we can perform conditional 
update in MultiRowMutationEndpoint. In this Jira, we can add support 
conditional update in MultiRowMutationEndpoint.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (HBASE-25704) Support conditional update in MultiRowMutationEndpoint

2021-03-27 Thread Toshihiro Suzuki (Jira)
Toshihiro Suzuki created HBASE-25704:


 Summary: Support conditional update in MultiRowMutationEndpoint
 Key: HBASE-25704
 URL: https://issues.apache.org/jira/browse/HBASE-25704
 Project: HBase
  Issue Type: Improvement
  Components: Coprocessors
Reporter: Toshihiro Suzuki
Assignee: Toshihiro Suzuki
 Fix For: 3.0.0-alpha-1, 2.5.0, 2.4.3


In some use cases, I think it will be useful that we can perform conditional 
update in MultiRowMutationEndpoint. In this Jira, we can add support 
conditional update in MultiRowMutationEndpoint.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-25686) [hbtop] Add some javadoc

2021-03-27 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-25686:
--

Pushed to master, branch-2 and branch-1. Thank you for reviewing this! 
[~weichiu]

> [hbtop] Add some javadoc
> 
>
> Key: HBASE-25686
> URL: https://issues.apache.org/jira/browse/HBASE-25686
> Project: HBase
>  Issue Type: Improvement
>  Components: hbtop
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Minor
> Fix For: 3.0.0-alpha-1, 1.7.0, 2.5.0
>
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (HBASE-25686) [hbtop] Add some javadoc

2021-03-27 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25686?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki resolved HBASE-25686.
--
Hadoop Flags: Reviewed
  Resolution: Fixed

> [hbtop] Add some javadoc
> 
>
> Key: HBASE-25686
> URL: https://issues.apache.org/jira/browse/HBASE-25686
> Project: HBase
>  Issue Type: Improvement
>  Components: hbtop
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Minor
> Fix For: 3.0.0-alpha-1, 1.7.0, 2.5.0
>
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (HBASE-25702) Remove RowProcessor

2021-03-27 Thread Toshihiro Suzuki (Jira)
Toshihiro Suzuki created HBASE-25702:


 Summary: Remove RowProcessor
 Key: HBASE-25702
 URL: https://issues.apache.org/jira/browse/HBASE-25702
 Project: HBase
  Issue Type: Improvement
Reporter: Toshihiro Suzuki
Assignee: Toshihiro Suzuki
 Fix For: 3.0.0-alpha-1


As RowProcessor is deprecated, we can remove it in this Jira.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (HBASE-25686) [hbtop] Add some javadoc

2021-03-27 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25686?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki reassigned HBASE-25686:


Assignee: Toshihiro Suzuki

> [hbtop] Add some javadoc
> 
>
> Key: HBASE-25686
> URL: https://issues.apache.org/jira/browse/HBASE-25686
> Project: HBase
>  Issue Type: Improvement
>  Components: hbtop
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Minor
> Fix For: 3.0.0-alpha-1, 1.7.0, 2.5.0
>
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (HBASE-25678) Support nonce operations for Increment/Append in RowMutations and CheckAndMutate

2021-03-21 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25678?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki resolved HBASE-25678.
--
Hadoop Flags: Reviewed
  Resolution: Fixed

> Support nonce operations for Increment/Append in RowMutations and 
> CheckAndMutate
> 
>
> Key: HBASE-25678
> URL: https://issues.apache.org/jira/browse/HBASE-25678
> Project: HBase
>  Issue Type: Improvement
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.5.0, 2.4.3
>
>
> Currently, we support nonce operations for single Increment/Append operations 
> but don't support for Increment/Append in RowMutations and CheckAndMutate. We 
> should support it.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-25678) Support nonce operations for Increment/Append in RowMutations and CheckAndMutate

2021-03-21 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-25678:
--

Pushed to branch-2 and branch-2.4.

Thank you for reviewing this! [~stack]

> Support nonce operations for Increment/Append in RowMutations and 
> CheckAndMutate
> 
>
> Key: HBASE-25678
> URL: https://issues.apache.org/jira/browse/HBASE-25678
> Project: HBase
>  Issue Type: Improvement
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.5.0, 2.4.3
>
>
> Currently, we support nonce operations for single Increment/Append operations 
> but don't support for Increment/Append in RowMutations and CheckAndMutate. We 
> should support it.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25686) [hbtop] Add some javadoc

2021-03-20 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25686?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25686:
-
Fix Version/s: 1.7.0

> [hbtop] Add some javadoc
> 
>
> Key: HBASE-25686
> URL: https://issues.apache.org/jira/browse/HBASE-25686
> Project: HBase
>  Issue Type: Improvement
>  Components: hbtop
>Reporter: Toshihiro Suzuki
>Priority: Minor
> Fix For: 3.0.0-alpha-1, 1.7.0, 2.5.0
>
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25686) [hbtop] Add some javadoc

2021-03-20 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25686?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25686:
-
Fix Version/s: 2.5.0
   3.0.0-alpha-1

> [hbtop] Add some javadoc
> 
>
> Key: HBASE-25686
> URL: https://issues.apache.org/jira/browse/HBASE-25686
> Project: HBase
>  Issue Type: Improvement
>  Components: hbtop
>Reporter: Toshihiro Suzuki
>Priority: Minor
> Fix For: 3.0.0-alpha-1, 2.5.0
>
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25686) [hbtop] Add some javadoc

2021-03-20 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25686?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25686:
-
Priority: Minor  (was: Major)

> [hbtop] Add some javadoc
> 
>
> Key: HBASE-25686
> URL: https://issues.apache.org/jira/browse/HBASE-25686
> Project: HBase
>  Issue Type: Improvement
>  Components: hbtop
>Reporter: Toshihiro Suzuki
>Priority: Minor
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-25576) Should not use a byte array as a key of HashMap or an element of HashSet

2021-03-20 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-25576:
--

[~swaroopa] Thank you for your interest in this! 

I just modified the description and added one example there to make it clearer. 
If it's still unclear, please let me know.

> Should not use a byte array as a key of HashMap or an element of HashSet
> 
>
> Key: HBASE-25576
> URL: https://issues.apache.org/jira/browse/HBASE-25576
> Project: HBase
>  Issue Type: Bug
>Reporter: Toshihiro Suzuki
>Assignee: Swaroopa Kadam
>Priority: Major
>  Labels: beginner
>
> I sometimes face the code where we use a byte array as a key of HashMap 
> (ConcurrentHashMap) or an element of HashSet, which could cause very 
> confusing bugs.
> The following code is an example where we use a byte array as a key of 
> HashMap:
> https://github.com/apache/hbase/blob/326835e8372cc83092e0ec127650438ff153476a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.java#L94
> In Java, we can't use a byte array as a key of HashMap or an element of 
> HashSet directly. One solution for it is to use TreeMap 
> (ConcurrentSkipListMap) or TreeSet (ConcurrentSkipListSet) with 
> Bytes.BYTES_COMPARATOR instead of HashMap and HashSet as follows:
> {code}
> Map map1 = new TreeMap<>(Bytes.BYTES_COMPARATOR);
> Map map2 = new 
> ConcurrentSkipListMap<>(Bytes.BYTES_COMPARATOR);
> Set set1 = new TreeSet<>(Bytes.BYTES_COMPARATOR);
> Set set2 = new ConcurrentSkipListSet<>(Bytes.BYTES_COMPARATOR);
> {code}
> We should fix the existing ones in this Jira.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25576) Should not use a byte array as a key of HashMap or an element of HashSet

2021-03-20 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25576?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25576:
-
Summary: Should not use a byte array as a key of HashMap or an element of 
HashSet  (was: Should not use HashMap (ConcurrentHashMap) or HashSet when using 
byte[] as a key of Map or an element of Set)

> Should not use a byte array as a key of HashMap or an element of HashSet
> 
>
> Key: HBASE-25576
> URL: https://issues.apache.org/jira/browse/HBASE-25576
> Project: HBase
>  Issue Type: Bug
>Reporter: Toshihiro Suzuki
>Assignee: Swaroopa Kadam
>Priority: Major
>  Labels: beginner
>
> I sometimes face the code using HashMap (ConcurrentHashMap) or HashSet when 
> using byte[] as a key of Map or an element of Set in the HBase code, which 
> could cause very confusing bugs.
> We should use TreeMap (ConcurrentSkipListMap) or TreeSet 
> (ConcurrentSkipListSet) with Bytes.BYTES_COMPARATOR when using byte[] as a 
> key of Map or an element of Set as follows:
> {code}
> Map map1 = new TreeMap<>(Bytes.BYTES_COMPARATOR);
> Map map2 = new 
> ConcurrentSkipListMap<>(Bytes.BYTES_COMPARATOR);
> Set set1 = new TreeSet<>(Bytes.BYTES_COMPARATOR);
> Set set2 = new ConcurrentSkipListSet<>(Bytes.BYTES_COMPARATOR);
> {code}
> We should fix the existing ones in this Jira.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25576) Should not use a byte array as a key of HashMap or an element of HashSet

2021-03-20 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25576?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25576:
-
Description: 
I sometimes face the code where we use a byte array as a key of HashMap 
(ConcurrentHashMap) or an element of HashSet, which could cause very confusing 
bugs.

The following code is an example where we use a byte array as a key of HashMap:
https://github.com/apache/hbase/blob/326835e8372cc83092e0ec127650438ff153476a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.java#L94

In Java, we can't use a byte array as a key of HashMap or an element of HashSet 
directly. One solution for it is to use TreeMap (ConcurrentSkipListMap) or 
TreeSet (ConcurrentSkipListSet) with Bytes.BYTES_COMPARATOR instead of HashMap 
and HashSet as follows:

{code}
Map map1 = new TreeMap<>(Bytes.BYTES_COMPARATOR);
Map map2 = new ConcurrentSkipListMap<>(Bytes.BYTES_COMPARATOR);

Set set1 = new TreeSet<>(Bytes.BYTES_COMPARATOR);
Set set2 = new ConcurrentSkipListSet<>(Bytes.BYTES_COMPARATOR);
{code}

We should fix the existing ones in this Jira.


  was:
I sometimes face the code using HashMap (ConcurrentHashMap) or HashSet when 
using byte[] as a key of Map or an element of Set in the HBase code, which 
could cause very confusing bugs.

We should use TreeMap (ConcurrentSkipListMap) or TreeSet 
(ConcurrentSkipListSet) with Bytes.BYTES_COMPARATOR when using byte[] as a key 
of Map or an element of Set as follows:
{code}
Map map1 = new TreeMap<>(Bytes.BYTES_COMPARATOR);
Map map2 = new ConcurrentSkipListMap<>(Bytes.BYTES_COMPARATOR);
Set set1 = new TreeSet<>(Bytes.BYTES_COMPARATOR);
Set set2 = new ConcurrentSkipListSet<>(Bytes.BYTES_COMPARATOR);
{code}

We should fix the existing ones in this Jira.


> Should not use a byte array as a key of HashMap or an element of HashSet
> 
>
> Key: HBASE-25576
> URL: https://issues.apache.org/jira/browse/HBASE-25576
> Project: HBase
>  Issue Type: Bug
>Reporter: Toshihiro Suzuki
>Assignee: Swaroopa Kadam
>Priority: Major
>  Labels: beginner
>
> I sometimes face the code where we use a byte array as a key of HashMap 
> (ConcurrentHashMap) or an element of HashSet, which could cause very 
> confusing bugs.
> The following code is an example where we use a byte array as a key of 
> HashMap:
> https://github.com/apache/hbase/blob/326835e8372cc83092e0ec127650438ff153476a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.java#L94
> In Java, we can't use a byte array as a key of HashMap or an element of 
> HashSet directly. One solution for it is to use TreeMap 
> (ConcurrentSkipListMap) or TreeSet (ConcurrentSkipListSet) with 
> Bytes.BYTES_COMPARATOR instead of HashMap and HashSet as follows:
> {code}
> Map map1 = new TreeMap<>(Bytes.BYTES_COMPARATOR);
> Map map2 = new 
> ConcurrentSkipListMap<>(Bytes.BYTES_COMPARATOR);
> Set set1 = new TreeSet<>(Bytes.BYTES_COMPARATOR);
> Set set2 = new ConcurrentSkipListSet<>(Bytes.BYTES_COMPARATOR);
> {code}
> We should fix the existing ones in this Jira.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (HBASE-25686) [hbtop] Add some javadoc

2021-03-19 Thread Toshihiro Suzuki (Jira)
Toshihiro Suzuki created HBASE-25686:


 Summary: [hbtop] Add some javadoc
 Key: HBASE-25686
 URL: https://issues.apache.org/jira/browse/HBASE-25686
 Project: HBase
  Issue Type: Improvement
  Components: hbtop
Reporter: Toshihiro Suzuki






--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (HBASE-25258) Backport HBASE-24776 "[hbtop] Support Batch mode" to branch-1

2021-03-19 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25258?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki resolved HBASE-25258.
--
Fix Version/s: 1.7.0
 Hadoop Flags: Reviewed
   Resolution: Fixed

> Backport HBASE-24776 "[hbtop] Support Batch mode" to branch-1
> -
>
> Key: HBASE-25258
> URL: https://issues.apache.org/jira/browse/HBASE-25258
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 1.7.0
>
>
> Backport parent issue to branch-1.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-25258) Backport HBASE-24776 "[hbtop] Support Batch mode" to branch-1

2021-03-19 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-25258:
--

Pushed to branch-1. Thank you for reviewing this! [~stack]

> Backport HBASE-24776 "[hbtop] Support Batch mode" to branch-1
> -
>
> Key: HBASE-25258
> URL: https://issues.apache.org/jira/browse/HBASE-25258
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
>
> Backport parent issue to branch-1.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-25678) Support nonce operations for Increment/Append in RowMutations and CheckAndMutate

2021-03-19 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-25678:
--

Pushed to master. I will create a PR for branch-2.

> Support nonce operations for Increment/Append in RowMutations and 
> CheckAndMutate
> 
>
> Key: HBASE-25678
> URL: https://issues.apache.org/jira/browse/HBASE-25678
> Project: HBase
>  Issue Type: Improvement
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.5.0, 2.4.3
>
>
> Currently, we support nonce operations for single Increment/Append operations 
> but don't support for Increment/Append in RowMutations and CheckAndMutate. We 
> should support it.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25678) Support nonce operations for Increment/Append in RowMutations and CheckAndMutate

2021-03-19 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25678?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25678:
-
Fix Version/s: 2.5.0

> Support nonce operations for Increment/Append in RowMutations and 
> CheckAndMutate
> 
>
> Key: HBASE-25678
> URL: https://issues.apache.org/jira/browse/HBASE-25678
> Project: HBase
>  Issue Type: Improvement
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.5.0, 2.4.3
>
>
> Currently, we support nonce operations for single Increment/Append operations 
> but don't support for Increment/Append in RowMutations and CheckAndMutate. We 
> should support it.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (HBASE-25678) Support nonce operations for Increment/Append in RowMutations and CheckAndMutate

2021-03-18 Thread Toshihiro Suzuki (Jira)
Toshihiro Suzuki created HBASE-25678:


 Summary: Support nonce operations for Increment/Append in 
RowMutations and CheckAndMutate
 Key: HBASE-25678
 URL: https://issues.apache.org/jira/browse/HBASE-25678
 Project: HBase
  Issue Type: Improvement
Reporter: Toshihiro Suzuki
Assignee: Toshihiro Suzuki
 Fix For: 3.0.0-alpha-1, 2.4.3


Currently, we support nonce operations for single Increment/Append operations 
but don't support for Increment/Append in RowMutations and CheckAndMutate. We 
should support it.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (HBASE-25575) Should validate Puts in RowMutations

2021-02-21 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25575?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki resolved HBASE-25575.
--
Hadoop Flags: Reviewed
  Resolution: Fixed

> Should validate Puts in RowMutations
> 
>
> Key: HBASE-25575
> URL: https://issues.apache.org/jira/browse/HBASE-25575
> Project: HBase
>  Issue Type: Bug
>  Components: Client
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Minor
> Fix For: 3.0.0-alpha-1, 2.5.0, 2.4.2
>
>
> Currently, we don't validate the key value sizes of Puts in RowMutations. We 
> should do that.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-25575) Should validate Puts in RowMutations

2021-02-21 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-25575:
--

Pushed to master, branch-2 and branch-2.4.

[~zhangduo] [~vjasani] Thank you for reviewing this!

> Should validate Puts in RowMutations
> 
>
> Key: HBASE-25575
> URL: https://issues.apache.org/jira/browse/HBASE-25575
> Project: HBase
>  Issue Type: Bug
>  Components: Client
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Minor
> Fix For: 3.0.0-alpha-1, 2.5.0, 2.4.2
>
>
> Currently, we don't validate the key value sizes of Puts in RowMutations. We 
> should do that.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-25574) Revisit put/delete/increment/append related RegionObserver methods

2021-02-21 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-25574:
--

Pushed to master, branch-2 and branch-2.4.

[~zhangduo] Thank you for reviewing this!

> Revisit put/delete/increment/append related RegionObserver methods
> --
>
> Key: HBASE-25574
> URL: https://issues.apache.org/jira/browse/HBASE-25574
> Project: HBase
>  Issue Type: Improvement
>  Components: Coprocessors
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.5.0, 2.4.2
>
>
> After HBASE-24602, increment/append operations are performed in 
> HRegion.batchMutate(). Accordingly, we should make some changes for the 
> increment/append related RegionObserver methods.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (HBASE-25574) Revisit put/delete/increment/append related RegionObserver methods

2021-02-21 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25574?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki resolved HBASE-25574.
--
Hadoop Flags: Reviewed
  Resolution: Fixed

> Revisit put/delete/increment/append related RegionObserver methods
> --
>
> Key: HBASE-25574
> URL: https://issues.apache.org/jira/browse/HBASE-25574
> Project: HBase
>  Issue Type: Improvement
>  Components: Coprocessors
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.5.0, 2.4.2
>
>
> After HBASE-24602, increment/append operations are performed in 
> HRegion.batchMutate(). Accordingly, we should make some changes for the 
> increment/append related RegionObserver methods.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25575) Should validate Puts in RowMutations

2021-02-21 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25575?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25575:
-
Fix Version/s: 2.5.0

> Should validate Puts in RowMutations
> 
>
> Key: HBASE-25575
> URL: https://issues.apache.org/jira/browse/HBASE-25575
> Project: HBase
>  Issue Type: Bug
>  Components: Client
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Minor
> Fix For: 3.0.0-alpha-1, 2.5.0, 2.4.2
>
>
> Currently, we don't validate the key value sizes of Puts in RowMutations. We 
> should do that.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25574) Revisit put/delete/increment/append related RegionObserver methods

2021-02-21 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25574?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25574:
-
Fix Version/s: 2.5.0

> Revisit put/delete/increment/append related RegionObserver methods
> --
>
> Key: HBASE-25574
> URL: https://issues.apache.org/jira/browse/HBASE-25574
> Project: HBase
>  Issue Type: Improvement
>  Components: Coprocessors
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.5.0, 2.4.2
>
>
> After HBASE-24602, increment/append operations are performed in 
> HRegion.batchMutate(). Accordingly, we should make some changes for the 
> increment/append related RegionObserver methods.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25574) Revisit put/delete/increment/append related RegionObserver methods

2021-02-19 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25574?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25574:
-
Summary: Revisit put/delete/increment/append related RegionObserver methods 
 (was: Revisit increment/append related RegionObserver methods)

> Revisit put/delete/increment/append related RegionObserver methods
> --
>
> Key: HBASE-25574
> URL: https://issues.apache.org/jira/browse/HBASE-25574
> Project: HBase
>  Issue Type: Improvement
>  Components: Coprocessors
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.4.2
>
>
> After HBASE-24602, increment/append operations are performed in 
> HRegion.batchMutate(). Accordingly, we should make some changes for the 
> increment/append related RegionObserver methods.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25575) Should validate Puts in RowMutations

2021-02-16 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25575?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25575:
-
Description: Currently, we don't validate the key value sizes of Puts in 
RowMutations. We should do that.  (was: Currently, we don't validate Puts in 
RowMutations. We should do that.)

> Should validate Puts in RowMutations
> 
>
> Key: HBASE-25575
> URL: https://issues.apache.org/jira/browse/HBASE-25575
> Project: HBase
>  Issue Type: Bug
>  Components: Client
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Minor
> Fix For: 3.0.0-alpha-1, 2.4.2
>
>
> Currently, we don't validate the key value sizes of Puts in RowMutations. We 
> should do that.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (HBASE-25576) Should not use HashMap (ConcurrentHashMap) or HashSet when using byte[] as a key of Map or an element of Set

2021-02-13 Thread Toshihiro Suzuki (Jira)
Toshihiro Suzuki created HBASE-25576:


 Summary: Should not use HashMap (ConcurrentHashMap) or HashSet 
when using byte[] as a key of Map or an element of Set
 Key: HBASE-25576
 URL: https://issues.apache.org/jira/browse/HBASE-25576
 Project: HBase
  Issue Type: Bug
Reporter: Toshihiro Suzuki


I sometimes face the code using HashMap (ConcurrentHashMap) or HashSet when 
using byte[] as a key of Map or an element of Set in the HBase code, which 
could cause very confusing bugs.

We should use TreeMap (ConcurrentSkipListMap) or TreeSet 
(ConcurrentSkipListSet) with Bytes.BYTES_COMPARATOR when using byte[] as a key 
of Map or an element of Set as follows:
{code}
Map map1 = new TreeMap<>(Bytes.BYTES_COMPARATOR);
Map map2 = new ConcurrentSkipListMap<>(Bytes.BYTES_COMPARATOR);
Set set1 = new TreeSet<>(Bytes.BYTES_COMPARATOR);
Set set2 = new ConcurrentSkipListSet<>(Bytes.BYTES_COMPARATOR);
{code}

We should fix the existing ones in this Jira.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25575) Should validate Puts in RowMutations

2021-02-13 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25575?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25575:
-
Component/s: Client

> Should validate Puts in RowMutations
> 
>
> Key: HBASE-25575
> URL: https://issues.apache.org/jira/browse/HBASE-25575
> Project: HBase
>  Issue Type: Bug
>  Components: Client
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Minor
> Fix For: 3.0.0-alpha-1, 2.4.2
>
>
> Currently, we don't validate Puts in RowMutations. We should do that.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (HBASE-25575) Should validate Puts in RowMutations

2021-02-13 Thread Toshihiro Suzuki (Jira)
Toshihiro Suzuki created HBASE-25575:


 Summary: Should validate Puts in RowMutations
 Key: HBASE-25575
 URL: https://issues.apache.org/jira/browse/HBASE-25575
 Project: HBase
  Issue Type: Bug
Reporter: Toshihiro Suzuki
Assignee: Toshihiro Suzuki


Currently, we don't validate Puts in RowMutations. We should do that.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25575) Should validate Puts in RowMutations

2021-02-13 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25575?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25575:
-
Fix Version/s: 2.4.2
   3.0.0-alpha-1

> Should validate Puts in RowMutations
> 
>
> Key: HBASE-25575
> URL: https://issues.apache.org/jira/browse/HBASE-25575
> Project: HBase
>  Issue Type: Bug
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Minor
> Fix For: 3.0.0-alpha-1, 2.4.2
>
>
> Currently, we don't validate Puts in RowMutations. We should do that.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (HBASE-25574) Revisit increment/append related RegionObserver methods

2021-02-13 Thread Toshihiro Suzuki (Jira)
Toshihiro Suzuki created HBASE-25574:


 Summary: Revisit increment/append related RegionObserver methods
 Key: HBASE-25574
 URL: https://issues.apache.org/jira/browse/HBASE-25574
 Project: HBase
  Issue Type: Improvement
  Components: Coprocessors
Reporter: Toshihiro Suzuki
Assignee: Toshihiro Suzuki
 Fix For: 3.0.0-alpha-1, 2.4.2


After HBASE-24602, increment/append operations are performed in 
HRegion.batchMutate(). Accordingly, we should make some changes for the 
increment/append related RegionObserver methods.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-25242) Add Increment/Append support to RowMutations

2020-11-26 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25242?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25242:
-
Hadoop Flags: Incompatible change,Reviewed
Release Note: 
After HBASE-25242, we can add Increment/Append operations to RowMutations and 
perform those operations atomically in a single row.
HBASE-25242 includes an API change where the mutateRow() API returns a Result 
object to get the result of the Increment/Append operations.
  Resolution: Fixed
  Status: Resolved  (was: Patch Available)

> Add Increment/Append support to RowMutations
> 
>
> Key: HBASE-25242
> URL: https://issues.apache.org/jira/browse/HBASE-25242
> Project: HBase
>  Issue Type: New Feature
>  Components: Client, regionserver
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Critical
> Fix For: 3.0.0-alpha-1, 2.4.0
>
>
> Currently, RowMutations supports only Put and Delete. Supporting 
> Increment/Append in RowMutations would be helpful for some use cases.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-25242) Add Increment/Append support to RowMutations

2020-11-26 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-25242:
--

Pushed to branch-2, too.

Thank you for reviewing this! [~zhangduo] [~apurtell]

> Add Increment/Append support to RowMutations
> 
>
> Key: HBASE-25242
> URL: https://issues.apache.org/jira/browse/HBASE-25242
> Project: HBase
>  Issue Type: New Feature
>  Components: Client, regionserver
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Critical
> Fix For: 3.0.0-alpha-1, 2.4.0
>
>
> Currently, RowMutations supports only Put and Delete. Supporting 
> Increment/Append in RowMutations would be helpful for some use cases.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-25242) Add Increment/Append support to RowMutations

2020-11-25 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-25242:
--

Pushed to master. And I created a PR for branch-2. If its QA is okay, I will 
push to branch-2, too.

> Add Increment/Append support to RowMutations
> 
>
> Key: HBASE-25242
> URL: https://issues.apache.org/jira/browse/HBASE-25242
> Project: HBase
>  Issue Type: New Feature
>  Components: Client, regionserver
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Critical
> Fix For: 3.0.0-alpha-1, 2.4.0
>
>
> Currently, RowMutations supports only Put and Delete. Supporting 
> Increment/Append in RowMutations would be helpful for some use cases.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (HBASE-25258) Backport HBASE-24776 "[hbtop] Support Batch mode" to branch-1

2020-11-09 Thread Toshihiro Suzuki (Jira)
Toshihiro Suzuki created HBASE-25258:


 Summary: Backport HBASE-24776 "[hbtop] Support Batch mode" to 
branch-1
 Key: HBASE-25258
 URL: https://issues.apache.org/jira/browse/HBASE-25258
 Project: HBase
  Issue Type: Sub-task
Reporter: Toshihiro Suzuki
Assignee: Toshihiro Suzuki


Backport parent issue to branch-1.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (HBASE-25242) Add Increment/Append support to RowMutations

2020-11-03 Thread Toshihiro Suzuki (Jira)
Toshihiro Suzuki created HBASE-25242:


 Summary: Add Increment/Append support to RowMutations
 Key: HBASE-25242
 URL: https://issues.apache.org/jira/browse/HBASE-25242
 Project: HBase
  Issue Type: New Feature
Reporter: Toshihiro Suzuki
Assignee: Toshihiro Suzuki
 Fix For: 3.0.0-alpha-1, 2.4.0


Currently, RowMutations supports only Put and Delete. Supporting 
Increment/Append in RowMutations would be helpful for some use cases.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-24210) Add Increment, Append and CheckAndMutate support to RowMutations

2020-11-03 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-24210:
--

It looks like this change will make things too complicated and it has big side 
effects and incompatible changes. So I will give it up. Closing it as Won't 
Fix. 

> Add Increment, Append and CheckAndMutate support to RowMutations
> 
>
> Key: HBASE-24210
> URL: https://issues.apache.org/jira/browse/HBASE-24210
> Project: HBase
>  Issue Type: New Feature
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.4.0
>
>
> Currently, RowMutations supports only Put and Delete. Supporting Increment, 
> Append and CheckAndMutate in RowMutations would be helpful for some use cases.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-24996) Support CheckAndMutate in Region.batchMutate()

2020-11-03 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-24996:
--

It looks like this change will make things too complicated and it has big side 
effects and incompatible changes. So I will give it up. Closing it as Won't 
Fix. 

> Support CheckAndMutate in Region.batchMutate()
> --
>
> Key: HBASE-24996
> URL: https://issues.apache.org/jira/browse/HBASE-24996
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.4.0
>
>
> After HBASE-24602, Region.batchMutate() supports Put/Delete/Increment/Append 
> operations, but it doesn't support CheckAndMutate. If we support 
> CheckAndMutate Region.batchMutate(), we can perform 
> Put/Delete/Increment/Append/CheckAndMutate operations atomically, which is 
> very useful for some cases.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (HBASE-24210) Add Increment, Append and CheckAndMutate support to RowMutations

2020-11-03 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-24210?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki resolved HBASE-24210.
--
Resolution: Won't Fix

> Add Increment, Append and CheckAndMutate support to RowMutations
> 
>
> Key: HBASE-24210
> URL: https://issues.apache.org/jira/browse/HBASE-24210
> Project: HBase
>  Issue Type: New Feature
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.4.0
>
>
> Currently, RowMutations supports only Put and Delete. Supporting Increment, 
> Append and CheckAndMutate in RowMutations would be helpful for some use cases.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (HBASE-24996) Support CheckAndMutate in Region.batchMutate()

2020-11-03 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-24996?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki resolved HBASE-24996.
--
Resolution: Won't Fix

> Support CheckAndMutate in Region.batchMutate()
> --
>
> Key: HBASE-24996
> URL: https://issues.apache.org/jira/browse/HBASE-24996
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.4.0
>
>
> After HBASE-24602, Region.batchMutate() supports Put/Delete/Increment/Append 
> operations, but it doesn't support CheckAndMutate. If we support 
> CheckAndMutate Region.batchMutate(), we can perform 
> Put/Delete/Increment/Append/CheckAndMutate operations atomically, which is 
> very useful for some cases.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Comment Edited] (HBASE-25206) Data loss can happen if a cloned table loses original split region(delete table)

2020-10-24 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki edited comment on HBASE-25206 at 10/24/20, 11:19 PM:
--

{quote}
So even if snapshot cloned to new table or not, this case will cause data loss 
from snapshot.
{quote}
[~anoop.hbase] Yes, this will happen even if snapshot cloned to new table or 
not.


was (Author: brfrn169):
[~anoop.hbase] Yes, this will happen even if snapshot cloned to new table or 
not.

> Data loss can happen if a cloned table loses original split region(delete 
> table)
> 
>
> Key: HBASE-25206
> URL: https://issues.apache.org/jira/browse/HBASE-25206
> Project: HBase
>  Issue Type: Bug
>  Components: proc-v2, Region Assignment, snapshots
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.3.3, 2.4.0, 2.2.7
>
>
> Steps to reproduce are as follows:
> 1. Create a table and put some data into the table:
> {code:java}
> create 'test1','cf'
> put 'test1','r1','cf','v1'
> put 'test1','r2','cf','v2'
> put 'test1','r3','cf','v3'
> put 'test1','r4','cf','v4'
> put 'test1','r5','cf','v5'
> {code}
> 2. Take a snapshot for the table:
> {code:java}
> snapshot 'test1','snap_test'
> {code}
> 3. Clone the snapshot to another table
> {code:java}
> clone_snapshot 'snap_test','test2'
> {code}
> 4. Split the original table
> {code:java}
> split 'test1','r3'
> {code}
> 5. Drop the original table
> {code:java}
> disable 'test1'
> drop 'test1'
> {code}
> After that, we see the error like the following in RS log when opening the 
> regions of the cloned table:
> {code:java}
> 2020-10-20 13:32:18,415 WARN org.apache.hadoop.hbase.regionserver.HRegion: 
> Failed initialize of region= 
> test2,,1603200595702.bebdc4f740626206eeccad96b7643261., starting to roll back 
> memstore
> java.io.IOException: java.io.IOException: java.io.FileNotFoundException: 
> Unable to open link: org.apache.hadoop.hbase.io.HFileLink 
> locations=[hdfs:// HOST>:8020/hbase/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/.tmp/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/mobdir/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/archive/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89]
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.initializeStores(HRegion.java:1095)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.initializeRegionInternals(HRegion.java:943)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.initialize(HRegion.java:899)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7246)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7204)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7176)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7134)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7085)
> at 
> org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.openRegion(OpenRegionHandler.java:283)
> at 
> org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.process(OpenRegionHandler.java:108)
> at 
> org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:104)
> at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.IOException: java.io.FileNotFoundException: Unable to open 
> link: org.apache.hadoop.hbase.io.HFileLink locations=[hdfs:// HOST>:8020/hbase/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/.tmp/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/mobdir/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/archive/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89]
> at 
> org.apache.hadoop.hbase.regionserver.HStore.openStoreFiles(HStore.java:590)
> at 
> org.apache.hadoop.hbase.regionserver.HStore.loadStoreFiles(HStore.java:557)
> at org.apache.hadoop.hbase.regionserver.HStore.(HStore.java:303)
> at 
> 

[jira] [Commented] (HBASE-25206) Data loss can happen if a cloned table loses original split region(delete table)

2020-10-24 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-25206:
--

[~zhangduo] Thank you for reviewing and committing this!

> Data loss can happen if a cloned table loses original split region(delete 
> table)
> 
>
> Key: HBASE-25206
> URL: https://issues.apache.org/jira/browse/HBASE-25206
> Project: HBase
>  Issue Type: Bug
>  Components: proc-v2, Region Assignment, snapshots
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.3.3, 2.4.0, 2.2.7
>
>
> Steps to reproduce are as follows:
> 1. Create a table and put some data into the table:
> {code:java}
> create 'test1','cf'
> put 'test1','r1','cf','v1'
> put 'test1','r2','cf','v2'
> put 'test1','r3','cf','v3'
> put 'test1','r4','cf','v4'
> put 'test1','r5','cf','v5'
> {code}
> 2. Take a snapshot for the table:
> {code:java}
> snapshot 'test1','snap_test'
> {code}
> 3. Clone the snapshot to another table
> {code:java}
> clone_snapshot 'snap_test','test2'
> {code}
> 4. Split the original table
> {code:java}
> split 'test1','r3'
> {code}
> 5. Drop the original table
> {code:java}
> disable 'test1'
> drop 'test1'
> {code}
> After that, we see the error like the following in RS log when opening the 
> regions of the cloned table:
> {code:java}
> 2020-10-20 13:32:18,415 WARN org.apache.hadoop.hbase.regionserver.HRegion: 
> Failed initialize of region= 
> test2,,1603200595702.bebdc4f740626206eeccad96b7643261., starting to roll back 
> memstore
> java.io.IOException: java.io.IOException: java.io.FileNotFoundException: 
> Unable to open link: org.apache.hadoop.hbase.io.HFileLink 
> locations=[hdfs:// HOST>:8020/hbase/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/.tmp/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/mobdir/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/archive/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89]
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.initializeStores(HRegion.java:1095)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.initializeRegionInternals(HRegion.java:943)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.initialize(HRegion.java:899)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7246)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7204)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7176)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7134)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7085)
> at 
> org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.openRegion(OpenRegionHandler.java:283)
> at 
> org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.process(OpenRegionHandler.java:108)
> at 
> org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:104)
> at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.IOException: java.io.FileNotFoundException: Unable to open 
> link: org.apache.hadoop.hbase.io.HFileLink locations=[hdfs:// HOST>:8020/hbase/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/.tmp/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/mobdir/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/archive/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89]
> at 
> org.apache.hadoop.hbase.regionserver.HStore.openStoreFiles(HStore.java:590)
> at 
> org.apache.hadoop.hbase.regionserver.HStore.loadStoreFiles(HStore.java:557)
> at org.apache.hadoop.hbase.regionserver.HStore.(HStore.java:303)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.instantiateHStore(HRegion.java:5731)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$1.call(HRegion.java:1059)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$1.call(HRegion.java:1056)
> at 

[jira] [Comment Edited] (HBASE-25206) Data loss can happen if a cloned table loses original split region(delete table)

2020-10-24 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki edited comment on HBASE-25206 at 10/24/20, 11:18 PM:
--

[~anoop.hbase] Yes, this will happen even if snapshot cloned to new table or 
not.


was (Author: brfrn169):
[~anoop.hbase] Yes, This will happen even if snapshot cloned to new table or 
not.

> Data loss can happen if a cloned table loses original split region(delete 
> table)
> 
>
> Key: HBASE-25206
> URL: https://issues.apache.org/jira/browse/HBASE-25206
> Project: HBase
>  Issue Type: Bug
>  Components: proc-v2, Region Assignment, snapshots
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.3.3, 2.4.0, 2.2.7
>
>
> Steps to reproduce are as follows:
> 1. Create a table and put some data into the table:
> {code:java}
> create 'test1','cf'
> put 'test1','r1','cf','v1'
> put 'test1','r2','cf','v2'
> put 'test1','r3','cf','v3'
> put 'test1','r4','cf','v4'
> put 'test1','r5','cf','v5'
> {code}
> 2. Take a snapshot for the table:
> {code:java}
> snapshot 'test1','snap_test'
> {code}
> 3. Clone the snapshot to another table
> {code:java}
> clone_snapshot 'snap_test','test2'
> {code}
> 4. Split the original table
> {code:java}
> split 'test1','r3'
> {code}
> 5. Drop the original table
> {code:java}
> disable 'test1'
> drop 'test1'
> {code}
> After that, we see the error like the following in RS log when opening the 
> regions of the cloned table:
> {code:java}
> 2020-10-20 13:32:18,415 WARN org.apache.hadoop.hbase.regionserver.HRegion: 
> Failed initialize of region= 
> test2,,1603200595702.bebdc4f740626206eeccad96b7643261., starting to roll back 
> memstore
> java.io.IOException: java.io.IOException: java.io.FileNotFoundException: 
> Unable to open link: org.apache.hadoop.hbase.io.HFileLink 
> locations=[hdfs:// HOST>:8020/hbase/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/.tmp/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/mobdir/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/archive/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89]
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.initializeStores(HRegion.java:1095)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.initializeRegionInternals(HRegion.java:943)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.initialize(HRegion.java:899)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7246)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7204)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7176)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7134)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7085)
> at 
> org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.openRegion(OpenRegionHandler.java:283)
> at 
> org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.process(OpenRegionHandler.java:108)
> at 
> org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:104)
> at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.IOException: java.io.FileNotFoundException: Unable to open 
> link: org.apache.hadoop.hbase.io.HFileLink locations=[hdfs:// HOST>:8020/hbase/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/.tmp/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/mobdir/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/archive/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89]
> at 
> org.apache.hadoop.hbase.regionserver.HStore.openStoreFiles(HStore.java:590)
> at 
> org.apache.hadoop.hbase.regionserver.HStore.loadStoreFiles(HStore.java:557)
> at org.apache.hadoop.hbase.regionserver.HStore.(HStore.java:303)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.instantiateHStore(HRegion.java:5731)
> at 
> 

[jira] [Commented] (HBASE-25206) Data loss can happen if a cloned table loses original split region(delete table)

2020-10-24 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-25206:
--

[~anoop.hbase] Yes, This will happens even if snapshot cloned to new table or 
not.

> Data loss can happen if a cloned table loses original split region(delete 
> table)
> 
>
> Key: HBASE-25206
> URL: https://issues.apache.org/jira/browse/HBASE-25206
> Project: HBase
>  Issue Type: Bug
>  Components: proc-v2, Region Assignment, snapshots
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.3.3, 2.4.0, 2.2.7
>
>
> Steps to reproduce are as follows:
> 1. Create a table and put some data into the table:
> {code:java}
> create 'test1','cf'
> put 'test1','r1','cf','v1'
> put 'test1','r2','cf','v2'
> put 'test1','r3','cf','v3'
> put 'test1','r4','cf','v4'
> put 'test1','r5','cf','v5'
> {code}
> 2. Take a snapshot for the table:
> {code:java}
> snapshot 'test1','snap_test'
> {code}
> 3. Clone the snapshot to another table
> {code:java}
> clone_snapshot 'snap_test','test2'
> {code}
> 4. Split the original table
> {code:java}
> split 'test1','r3'
> {code}
> 5. Drop the original table
> {code:java}
> disable 'test1'
> drop 'test1'
> {code}
> After that, we see the error like the following in RS log when opening the 
> regions of the cloned table:
> {code:java}
> 2020-10-20 13:32:18,415 WARN org.apache.hadoop.hbase.regionserver.HRegion: 
> Failed initialize of region= 
> test2,,1603200595702.bebdc4f740626206eeccad96b7643261., starting to roll back 
> memstore
> java.io.IOException: java.io.IOException: java.io.FileNotFoundException: 
> Unable to open link: org.apache.hadoop.hbase.io.HFileLink 
> locations=[hdfs:// HOST>:8020/hbase/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/.tmp/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/mobdir/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/archive/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89]
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.initializeStores(HRegion.java:1095)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.initializeRegionInternals(HRegion.java:943)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.initialize(HRegion.java:899)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7246)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7204)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7176)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7134)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7085)
> at 
> org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.openRegion(OpenRegionHandler.java:283)
> at 
> org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.process(OpenRegionHandler.java:108)
> at 
> org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:104)
> at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.IOException: java.io.FileNotFoundException: Unable to open 
> link: org.apache.hadoop.hbase.io.HFileLink locations=[hdfs:// HOST>:8020/hbase/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/.tmp/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/mobdir/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/archive/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89]
> at 
> org.apache.hadoop.hbase.regionserver.HStore.openStoreFiles(HStore.java:590)
> at 
> org.apache.hadoop.hbase.regionserver.HStore.loadStoreFiles(HStore.java:557)
> at org.apache.hadoop.hbase.regionserver.HStore.(HStore.java:303)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.instantiateHStore(HRegion.java:5731)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$1.call(HRegion.java:1059)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$1.call(HRegion.java:1056)
> at 

[jira] [Comment Edited] (HBASE-25206) Data loss can happen if a cloned table loses original split region(delete table)

2020-10-24 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki edited comment on HBASE-25206 at 10/24/20, 11:18 PM:
--

[~anoop.hbase] Yes, This will happen even if snapshot cloned to new table or 
not.


was (Author: brfrn169):
[~anoop.hbase] Yes, This will happens even if snapshot cloned to new table or 
not.

> Data loss can happen if a cloned table loses original split region(delete 
> table)
> 
>
> Key: HBASE-25206
> URL: https://issues.apache.org/jira/browse/HBASE-25206
> Project: HBase
>  Issue Type: Bug
>  Components: proc-v2, Region Assignment, snapshots
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.3.3, 2.4.0, 2.2.7
>
>
> Steps to reproduce are as follows:
> 1. Create a table and put some data into the table:
> {code:java}
> create 'test1','cf'
> put 'test1','r1','cf','v1'
> put 'test1','r2','cf','v2'
> put 'test1','r3','cf','v3'
> put 'test1','r4','cf','v4'
> put 'test1','r5','cf','v5'
> {code}
> 2. Take a snapshot for the table:
> {code:java}
> snapshot 'test1','snap_test'
> {code}
> 3. Clone the snapshot to another table
> {code:java}
> clone_snapshot 'snap_test','test2'
> {code}
> 4. Split the original table
> {code:java}
> split 'test1','r3'
> {code}
> 5. Drop the original table
> {code:java}
> disable 'test1'
> drop 'test1'
> {code}
> After that, we see the error like the following in RS log when opening the 
> regions of the cloned table:
> {code:java}
> 2020-10-20 13:32:18,415 WARN org.apache.hadoop.hbase.regionserver.HRegion: 
> Failed initialize of region= 
> test2,,1603200595702.bebdc4f740626206eeccad96b7643261., starting to roll back 
> memstore
> java.io.IOException: java.io.IOException: java.io.FileNotFoundException: 
> Unable to open link: org.apache.hadoop.hbase.io.HFileLink 
> locations=[hdfs:// HOST>:8020/hbase/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/.tmp/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/mobdir/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/archive/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89]
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.initializeStores(HRegion.java:1095)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.initializeRegionInternals(HRegion.java:943)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.initialize(HRegion.java:899)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7246)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7204)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7176)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7134)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7085)
> at 
> org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.openRegion(OpenRegionHandler.java:283)
> at 
> org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.process(OpenRegionHandler.java:108)
> at 
> org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:104)
> at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.IOException: java.io.FileNotFoundException: Unable to open 
> link: org.apache.hadoop.hbase.io.HFileLink locations=[hdfs:// HOST>:8020/hbase/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/.tmp/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/mobdir/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/archive/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89]
> at 
> org.apache.hadoop.hbase.regionserver.HStore.openStoreFiles(HStore.java:590)
> at 
> org.apache.hadoop.hbase.regionserver.HStore.loadStoreFiles(HStore.java:557)
> at org.apache.hadoop.hbase.regionserver.HStore.(HStore.java:303)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.instantiateHStore(HRegion.java:5731)
> at 
> 

[jira] [Comment Edited] (HBASE-25206) Data loss can happen if a cloned table loses original split region(delete table)

2020-10-22 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki edited comment on HBASE-25206 at 10/23/20, 3:38 AM:
-

[~anoop.hbase] Sorry. I just noticed your comment.

This issue happens because when deleting a table, DeleteTableProcedure archives 
only online regions of the table (that don't include OFFLINE or SPLIT regions).

The timeline of this issue is as follows:

1. Create a table that has RegionA
{code:java}
Original table:
RegionA
{code}
2. Take a snapshot for the table
{code:java}
Original table:
RegionA

Snapshot:
Reference to RegionA
{code}
3. Clone the snapshot to another table
{code:java}
Original table:
RegionA

Cloned table:
Reference to RegionA

Snapshot:
Reference to RegionA
{code}
4. Split the original table. The state of RegionA becomes SPLIT, and RegionB 
and RegionC are the daughter regions of RegionA:
{code:java}
Original table:
RegionA <- SPLIT state
RegionB
RegionC

Cloned table:
Reference to RegionA

Snapshot:
Reference to RegionA
{code}
5. Drop the original table. However, only RegionB and RegionC are archived due 
to the bug. As a result, the cloned table gets data lost. Also the snapshot 
gets corrupted:
{code:java}
Cloned table:
Reference to RegionA

Snapshot:
Reference to RegionA

Archive:
RegionB
RegionC
{code}


was (Author: brfrn169):
[~anoop.hbase] Sorry. I just noticed your comment.

This issue happens because when deleting a table, DeleteTableProcedure archives 
only online regions of the table (that don't include OFFLINE or SPLITTING 
regions).

The timeline of this issue is as follows:

1. Create a table that has RegionA
{code:java}
Original table:
RegionA
{code}
2. Take a snapshot for the table
{code:java}
Original table:
RegionA

Snapshot:
Reference to RegionA
{code}
3. Clone the snapshot to another table
{code:java}
Original table:
RegionA

Cloned table:
Reference to RegionA

Snapshot:
Reference to RegionA
{code}
4. Split the original table. The state of RegionA becomes SPLIT, and RegionB 
and RegionC are the daughter regions of RegionA:
{code:java}
Original table:
RegionA <- SPLIT state
RegionB
RegionC

Cloned table:
Reference to RegionA

Snapshot:
Reference to RegionA
{code}
5. Drop the original table. However, only RegionB and RegionC are archived due 
to the bug. As a result, the cloned table gets data lost. Also the snapshot 
gets corrupted:
{code:java}
Cloned table:
Reference to RegionA

Snapshot:
Reference to RegionA

Archive:
RegionB
RegionC
{code}

> Data loss can happen if a cloned table loses original split region(delete 
> table)
> 
>
> Key: HBASE-25206
> URL: https://issues.apache.org/jira/browse/HBASE-25206
> Project: HBase
>  Issue Type: Bug
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
>
> Steps to reproduce are as follows:
> 1. Create a table and put some data into the table:
> {code:java}
> create 'test1','cf'
> put 'test1','r1','cf','v1'
> put 'test1','r2','cf','v2'
> put 'test1','r3','cf','v3'
> put 'test1','r4','cf','v4'
> put 'test1','r5','cf','v5'
> {code}
> 2. Take a snapshot for the table:
> {code:java}
> snapshot 'test1','snap_test'
> {code}
> 3. Clone the snapshot to another table
> {code:java}
> clone_snapshot 'snap_test','test2'
> {code}
> 4. Split the original table
> {code:java}
> split 'test1','r3'
> {code}
> 5. Drop the original table
> {code:java}
> disable 'test1'
> drop 'test1'
> {code}
> After that, we see the error like the following in RS log when opening the 
> regions of the cloned table:
> {code:java}
> 2020-10-20 13:32:18,415 WARN org.apache.hadoop.hbase.regionserver.HRegion: 
> Failed initialize of region= 
> test2,,1603200595702.bebdc4f740626206eeccad96b7643261., starting to roll back 
> memstore
> java.io.IOException: java.io.IOException: java.io.FileNotFoundException: 
> Unable to open link: org.apache.hadoop.hbase.io.HFileLink 
> locations=[hdfs:// HOST>:8020/hbase/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/.tmp/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/mobdir/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/archive/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89]
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.initializeStores(HRegion.java:1095)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.initializeRegionInternals(HRegion.java:943)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.initialize(HRegion.java:899)
> at 
> 

[jira] [Commented] (HBASE-25206) Data loss can happen if a cloned table loses original split region(delete table)

2020-10-22 Thread Toshihiro Suzuki (Jira)


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

Toshihiro Suzuki commented on HBASE-25206:
--

[~anoop.hbase] Sorry. I just noticed your comment.

This issue happens because when deleting a table, DeleteTableProcedure archives 
only online regions of the table (that don't include OFFLINE or SPLITTING 
regions).

The timeline of this issue is as follows:

1. Create a table that has RegionA
{code:java}
Original table:
RegionA
{code}
2. Take a snapshot for the table
{code:java}
Original table:
RegionA

Snapshot:
Reference to RegionA
{code}
3. Clone the snapshot to another table
{code:java}
Original table:
RegionA

Cloned table:
Reference to RegionA

Snapshot:
Reference to RegionA
{code}
4. Split the original table. The state of RegionA becomes SPLIT, and RegionB 
and RegionC are the daughter regions of RegionA:
{code:java}
Original table:
RegionA <- SPLIT state
RegionB
RegionC

Cloned table:
Reference to RegionA

Snapshot:
Reference to RegionA
{code}
5. Drop the original table. However, only RegionB and RegionC are archived due 
to the bug. As a result, the cloned table gets data lost. Also the snapshot 
gets corrupted:
{code:java}
Cloned table:
Reference to RegionA

Snapshot:
Reference to RegionA

Archive:
RegionB
RegionC
{code}

> Data loss can happen if a cloned table loses original split region(delete 
> table)
> 
>
> Key: HBASE-25206
> URL: https://issues.apache.org/jira/browse/HBASE-25206
> Project: HBase
>  Issue Type: Bug
>Reporter: Toshihiro Suzuki
>Assignee: Toshihiro Suzuki
>Priority: Major
>
> Steps to reproduce are as follows:
> 1. Create a table and put some data into the table:
> {code:java}
> create 'test1','cf'
> put 'test1','r1','cf','v1'
> put 'test1','r2','cf','v2'
> put 'test1','r3','cf','v3'
> put 'test1','r4','cf','v4'
> put 'test1','r5','cf','v5'
> {code}
> 2. Take a snapshot for the table:
> {code:java}
> snapshot 'test1','snap_test'
> {code}
> 3. Clone the snapshot to another table
> {code:java}
> clone_snapshot 'snap_test','test2'
> {code}
> 4. Split the original table
> {code:java}
> split 'test1','r3'
> {code}
> 5. Drop the original table
> {code:java}
> disable 'test1'
> drop 'test1'
> {code}
> After that, we see the error like the following in RS log when opening the 
> regions of the cloned table:
> {code:java}
> 2020-10-20 13:32:18,415 WARN org.apache.hadoop.hbase.regionserver.HRegion: 
> Failed initialize of region= 
> test2,,1603200595702.bebdc4f740626206eeccad96b7643261., starting to roll back 
> memstore
> java.io.IOException: java.io.IOException: java.io.FileNotFoundException: 
> Unable to open link: org.apache.hadoop.hbase.io.HFileLink 
> locations=[hdfs:// HOST>:8020/hbase/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/.tmp/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/mobdir/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
>  hdfs:// HOST>:8020/hbase/archive/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89]
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.initializeStores(HRegion.java:1095)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.initializeRegionInternals(HRegion.java:943)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.initialize(HRegion.java:899)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7246)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7204)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7176)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7134)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7085)
> at 
> org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.openRegion(OpenRegionHandler.java:283)
> at 
> org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.process(OpenRegionHandler.java:108)
> at 
> org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:104)
> at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.IOException: java.io.FileNotFoundException: Unable to open 
> link: org.apache.hadoop.hbase.io.HFileLink locations=[hdfs:// 

[jira] [Updated] (HBASE-25206) Data loss can happen if a cloned table loses original split region(delete table)

2020-10-22 Thread Toshihiro Suzuki (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25206?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Toshihiro Suzuki updated HBASE-25206:
-
Description: 
Steps to reproduce are as follows:

1. Create a table and put some data into the table:
{code:java}
create 'test1','cf'
put 'test1','r1','cf','v1'
put 'test1','r2','cf','v2'
put 'test1','r3','cf','v3'
put 'test1','r4','cf','v4'
put 'test1','r5','cf','v5'
{code}
2. Take a snapshot for the table:
{code:java}
snapshot 'test1','snap_test'
{code}
3. Clone the snapshot to another table
{code:java}
clone_snapshot 'snap_test','test2'
{code}
4. Split the original table
{code:java}
split 'test1','r3'
{code}
5. Drop the original table
{code:java}
disable 'test1'
drop 'test1'
{code}
After that, we see the error like the following in RS log when opening the 
regions of the cloned table:
{code:java}
2020-10-20 13:32:18,415 WARN org.apache.hadoop.hbase.regionserver.HRegion: 
Failed initialize of region= 
test2,,1603200595702.bebdc4f740626206eeccad96b7643261., starting to roll back 
memstore
java.io.IOException: java.io.IOException: java.io.FileNotFoundException: Unable 
to open link: org.apache.hadoop.hbase.io.HFileLink locations=[hdfs://:8020/hbase/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
 hdfs://:8020/hbase/.tmp/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
 hdfs://:8020/hbase/mobdir/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
 hdfs://:8020/hbase/archive/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89]
at 
org.apache.hadoop.hbase.regionserver.HRegion.initializeStores(HRegion.java:1095)
at 
org.apache.hadoop.hbase.regionserver.HRegion.initializeRegionInternals(HRegion.java:943)
at 
org.apache.hadoop.hbase.regionserver.HRegion.initialize(HRegion.java:899)
at 
org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7246)
at 
org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7204)
at 
org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7176)
at 
org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7134)
at 
org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7085)
at 
org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.openRegion(OpenRegionHandler.java:283)
at 
org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.process(OpenRegionHandler.java:108)
at 
org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:104)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: java.io.FileNotFoundException: Unable to open 
link: org.apache.hadoop.hbase.io.HFileLink locations=[hdfs://:8020/hbase/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
 hdfs://:8020/hbase/.tmp/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
 hdfs://:8020/hbase/mobdir/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
 hdfs://:8020/hbase/archive/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89]
at 
org.apache.hadoop.hbase.regionserver.HStore.openStoreFiles(HStore.java:590)
at 
org.apache.hadoop.hbase.regionserver.HStore.loadStoreFiles(HStore.java:557)
at org.apache.hadoop.hbase.regionserver.HStore.(HStore.java:303)
at 
org.apache.hadoop.hbase.regionserver.HRegion.instantiateHStore(HRegion.java:5731)
at 
org.apache.hadoop.hbase.regionserver.HRegion$1.call(HRegion.java:1059)
at 
org.apache.hadoop.hbase.regionserver.HRegion$1.call(HRegion.java:1056)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
... 3 more
Caused by: java.io.FileNotFoundException: Unable to open link: 
org.apache.hadoop.hbase.io.HFileLink locations=[hdfs://:8020/hbase/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
 hdfs://:8020/hbase/.tmp/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
 hdfs://:8020/hbase/mobdir/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89,
 hdfs://:8020/hbase/archive/data/default/test1/349b766b1b38e21f627ed4e441ae643c/cf/b6e39865710345c8998dec0bcc94cc89]
at 
org.apache.hadoop.hbase.io.FileLink$FileLinkInputStream.tryOpen(FileLink.java:322)
at 

  1   2   3   4   5   6   7   8   9   10   >