Skip to content

HBASE-28599 ADD clone columnFamily and Qualifier logic in Increment m…#5926

Closed
fjvbn2003 wants to merge 7 commits intoapache:masterfrom
fjvbn2003:master
Closed

HBASE-28599 ADD clone columnFamily and Qualifier logic in Increment m…#5926
fjvbn2003 wants to merge 7 commits intoapache:masterfrom
fjvbn2003:master

Conversation

@fjvbn2003
Copy link
Contributor

@fjvbn2003 fjvbn2003 commented May 19, 2024

Issue Link: https://issues.apache.org/jira/browse/HBASE-28599 (reported by @Robiee17)

Below is written by @Robiee17

Issue:
`RowTooBigException` is thrown when a duplicate increment RPC call is attempted.
If the Row size gets bigger, I it should not affect the increment operation.

Expected Behavior:
1. The initial RPC increment call should time out for some reason.
2. The duplicate RPC call should be converted to a GET request and fetch the result that I am trying to increment.
3. The result should contain only the qualifier that I am attempting to increment.

Actual Behavior:
1. The initial RPC increment call timed out, which is expected.
2. The duplicate RPC call is converted to a GET request but fails to clone the qualifier into the GET request.
3. Hence, the GET request attempts to retrieve all qualifiers for the given row and columnfamily, resulting in a `RowTooBigException`.

Steps to Reproduce:
1. Ensure a row with a total value size exceeding `hbase.table.max.rowsize` (default = 1073741824) exists.
2. Nonce property should be enabled `hbase.client.nonces.enabled` which is actually defaulted to true.
3. Attempt to increment a qualifier against the same row.
4. In my case, I am using a postIncrement co-processor which may cause a delay (longer than the RPC timeout property).
5. A duplicate increment call should be triggered, which tries to get the value rather than increment it.
6. The GET request actually tries to retrieve all the qualifiers for the row, resulting in a `RowTooBigException`

Test Result

When I print out this get object, there are no Column Family and Column Qualifier information in the second retry.

{"targetReplicaId":-1,"totalColumns":0,"families":{},"priority":-1,"consistency":"STRONG","maxVersions":1,"storeOffset":0,"checkExistenceOnly":false,"storeLimit":-1,"cacheBlocks":true,"row":"row1","timeRange":["0","9223372036854775807"]}

Because logic does not run this while loop,The GET request actually tries to retrieve all the qualifiers for the row, resulting in a RowTooBigException

After applying this change, I found that Column Family and Column Information is synced well and There is no RowTooBigException occurs when Incrementing that row.

{"targetReplicaId":-1,"totalColumns":1,"families":{"cf":["counter"]},"priority":-1,"consistency":"STRONG","maxVersions":1,"storeOffset":0,"checkExistenceOnly":false,"storeLimit":-1,"cacheBlocks":true,"row":"row1","timeRange":["0","9223372036854775807"]}

Sugestion

To resolve this issue I deleted exclamation mark in while loop.
Please review it and let me know if �this have any problems. Thank you.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 45s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+1 💚 mvninstall 3m 5s master passed
+1 💚 compile 2m 37s master passed
+1 💚 checkstyle 0m 36s master passed
+1 💚 spotless 0m 42s branch has no errors when running spotless:check.
+1 💚 spotbugs 1m 26s master passed
_ Patch Compile Tests _
+1 💚 mvninstall 2m 38s the patch passed
+1 💚 compile 2m 40s the patch passed
+1 💚 javac 2m 40s the patch passed
+1 💚 checkstyle 0m 34s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 hadoopcheck 4m 59s Patch does not cause any errors with Hadoop 3.3.6.
+1 💚 spotless 0m 38s patch has no errors when running spotless:check.
+1 💚 spotbugs 1m 30s the patch passed
_ Other Tests _
+1 💚 asflicense 0m 10s The patch does not generate ASF License warnings.
28m 40s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5926/1/artifact/yetus-general-check/output/Dockerfile
GITHUB PR #5926
Optional Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
uname Linux dad4ec8223a6 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 6b3f5ae
Default Java Eclipse Adoptium-11.0.17+8
Max. process+thread count 78 (vs. ulimit of 30000)
modules C: hbase-server U: hbase-server
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5926/1/console
versions git=2.34.1 maven=3.8.6 spotbugs=4.7.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@fjvbn2003 fjvbn2003 closed this May 19, 2024
@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 1s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+1 💚 mvninstall 2m 58s master passed
+1 💚 compile 0m 54s master passed
+1 💚 shadedjars 5m 15s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 29s master passed
_ Patch Compile Tests _
+1 💚 mvninstall 2m 48s the patch passed
+1 💚 compile 0m 55s the patch passed
+1 💚 javac 0m 55s the patch passed
+1 💚 shadedjars 5m 13s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 27s the patch passed
_ Other Tests _
-1 ❌ unit 221m 25s hbase-server in the patch failed.
246m 8s
Subsystem Report/Notes
Docker ClientAPI=1.45 ServerAPI=1.45 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5926/1/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
GITHUB PR #5926
Optional Tests javac javadoc unit shadedjars compile
uname Linux 69bd5a42a271 5.4.0-174-generic #193-Ubuntu SMP Thu Mar 7 14:29:28 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 6b3f5ae
Default Java Eclipse Adoptium-17.0.10+7
unit https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5926/1/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-hbase-server.txt
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5926/1/testReport/
Max. process+thread count 5051 (vs. ulimit of 30000)
modules C: hbase-server U: hbase-server
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5926/1/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 2m 17s Docker mode activated.
-0 ⚠️ yetus 0m 2s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+1 💚 mvninstall 2m 41s master passed
+1 💚 compile 0m 39s master passed
+1 💚 shadedjars 5m 30s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 24s master passed
_ Patch Compile Tests _
+1 💚 mvninstall 2m 21s the patch passed
+1 💚 compile 0m 38s the patch passed
+1 💚 javac 0m 38s the patch passed
+1 💚 shadedjars 5m 24s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 20s the patch passed
_ Other Tests _
+1 💚 unit 224m 7s hbase-server in the patch passed.
248m 44s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5926/1/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR #5926
Optional Tests javac javadoc unit shadedjars compile
uname Linux dbfd24d11cf7 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 6b3f5ae
Default Java Temurin-1.8.0_352-b08
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5926/1/testReport/
Max. process+thread count 5390 (vs. ulimit of 30000)
modules C: hbase-server U: hbase-server
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5926/1/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 12s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+1 💚 mvninstall 4m 32s master passed
+1 💚 compile 1m 15s master passed
+1 💚 shadedjars 7m 40s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 55s master passed
_ Patch Compile Tests _
+1 💚 mvninstall 4m 35s the patch passed
+1 💚 compile 1m 13s the patch passed
+1 💚 javac 1m 13s the patch passed
+1 💚 shadedjars 6m 0s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 26s the patch passed
_ Other Tests _
+1 💚 unit 227m 22s hbase-server in the patch passed.
258m 52s
Subsystem Report/Notes
Docker ClientAPI=1.45 ServerAPI=1.45 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5926/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR #5926
Optional Tests javac javadoc unit shadedjars compile
uname Linux 5ed4b31600a6 5.4.0-182-generic #202-Ubuntu SMP Fri Apr 26 12:29:36 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 6b3f5ae
Default Java Eclipse Adoptium-11.0.17+8
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5926/1/testReport/
Max. process+thread count 5450 (vs. ulimit of 30000)
modules C: hbase-server U: hbase-server
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5926/1/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants