[ https://issues.apache.org/jira/browse/HDFS-15202?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17054059#comment-17054059 ]
Hadoop QA commented on HDFS-15202: ---------------------------------- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 29s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} dupname {color} | {color:green} 0m 0s{color} | {color:green} No case conflicting files found. {color} | | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s{color} | {color:green} The patch appears to include 3 new or modified test files. {color} | || || || || {color:brown} trunk Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 1m 8s{color} | {color:blue} Maven dependency ordering for branch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 21m 3s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 3m 31s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 59s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 2m 3s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 18m 22s{color} | {color:green} branch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 10s{color} | {color:green} trunk passed {color} | | {color:blue}0{color} | {color:blue} spotbugs {color} | {color:blue} 2m 58s{color} | {color:blue} Used deprecated FindBugs config; considering switching to SpotBugs. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 5m 16s{color} | {color:green} trunk passed {color} | | {color:orange}-0{color} | {color:orange} patch {color} | {color:orange} 3m 14s{color} | {color:orange} Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary. {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 20s{color} | {color:blue} Maven dependency ordering for patch {color} | | {color:red}-1{color} | {color:red} mvninstall {color} | {color:red} 0m 38s{color} | {color:red} hadoop-hdfs-client in the patch failed. {color} | | {color:red}-1{color} | {color:red} mvninstall {color} | {color:red} 0m 58s{color} | {color:red} hadoop-hdfs in the patch failed. {color} | | {color:red}-1{color} | {color:red} compile {color} | {color:red} 0m 39s{color} | {color:red} hadoop-hdfs-project in the patch failed. {color} | | {color:red}-1{color} | {color:red} javac {color} | {color:red} 0m 39s{color} | {color:red} hadoop-hdfs-project in the patch failed. {color} | | {color:orange}-0{color} | {color:orange} checkstyle {color} | {color:orange} 0m 54s{color} | {color:orange} hadoop-hdfs-project: The patch generated 6 new + 272 unchanged - 0 fixed = 278 total (was 272) {color} | | {color:red}-1{color} | {color:red} mvnsite {color} | {color:red} 0m 39s{color} | {color:red} hadoop-hdfs-client in the patch failed. {color} | | {color:red}-1{color} | {color:red} mvnsite {color} | {color:red} 1m 1s{color} | {color:red} hadoop-hdfs in the patch failed. {color} | | {color:red}-1{color} | {color:red} whitespace {color} | {color:red} 0m 0s{color} | {color:red} The patch has 4 line(s) that end in whitespace. Use git apply --whitespace=fix <<patch_file>>. Refer https://git-scm.com/docs/git-apply {color} | | {color:red}-1{color} | {color:red} shadedclient {color} | {color:red} 3m 2s{color} | {color:red} patch has errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 1s{color} | {color:green} the patch passed {color} | | {color:red}-1{color} | {color:red} findbugs {color} | {color:red} 0m 39s{color} | {color:red} hadoop-hdfs-client in the patch failed. {color} | | {color:red}-1{color} | {color:red} findbugs {color} | {color:red} 0m 59s{color} | {color:red} hadoop-hdfs in the patch failed. {color} | || || || || {color:brown} Other Tests {color} || | {color:red}-1{color} | {color:red} unit {color} | {color:red} 0m 41s{color} | {color:red} hadoop-hdfs-client in the patch failed. {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 1m 0s{color} | {color:red} hadoop-hdfs in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 24s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 66m 58s{color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | Docker | Client=19.03.7 Server=19.03.7 base: https://builds.apache.org/job/hadoop-multibranch/job/PR-1884/1/artifact/out/Dockerfile | | GITHUB PR | https://github.com/apache/hadoop/pull/1884 | | JIRA Issue | HDFS-15202 | | Optional Tests | dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle | | uname | Linux fa94bfc3aaaf 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | personality/hadoop.sh | | git revision | trunk / 3859fa7 | | Default Java | 1.8.0_242 | | mvninstall | https://builds.apache.org/job/hadoop-multibranch/job/PR-1884/1/artifact/out/patch-mvninstall-hadoop-hdfs-project_hadoop-hdfs-client.txt | | mvninstall | https://builds.apache.org/job/hadoop-multibranch/job/PR-1884/1/artifact/out/patch-mvninstall-hadoop-hdfs-project_hadoop-hdfs.txt | | compile | https://builds.apache.org/job/hadoop-multibranch/job/PR-1884/1/artifact/out/patch-compile-hadoop-hdfs-project.txt | | javac | https://builds.apache.org/job/hadoop-multibranch/job/PR-1884/1/artifact/out/patch-compile-hadoop-hdfs-project.txt | | checkstyle | https://builds.apache.org/job/hadoop-multibranch/job/PR-1884/1/artifact/out/diff-checkstyle-hadoop-hdfs-project.txt | | mvnsite | https://builds.apache.org/job/hadoop-multibranch/job/PR-1884/1/artifact/out/patch-mvnsite-hadoop-hdfs-project_hadoop-hdfs-client.txt | | mvnsite | https://builds.apache.org/job/hadoop-multibranch/job/PR-1884/1/artifact/out/patch-mvnsite-hadoop-hdfs-project_hadoop-hdfs.txt | | whitespace | https://builds.apache.org/job/hadoop-multibranch/job/PR-1884/1/artifact/out/whitespace-eol.txt | | findbugs | https://builds.apache.org/job/hadoop-multibranch/job/PR-1884/1/artifact/out/patch-findbugs-hadoop-hdfs-project_hadoop-hdfs-client.txt | | findbugs | https://builds.apache.org/job/hadoop-multibranch/job/PR-1884/1/artifact/out/patch-findbugs-hadoop-hdfs-project_hadoop-hdfs.txt | | unit | https://builds.apache.org/job/hadoop-multibranch/job/PR-1884/1/artifact/out/patch-unit-hadoop-hdfs-project_hadoop-hdfs-client.txt | | unit | https://builds.apache.org/job/hadoop-multibranch/job/PR-1884/1/artifact/out/patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt | | Test Results | https://builds.apache.org/job/hadoop-multibranch/job/PR-1884/1/testReport/ | | Max. process+thread count | 309 (vs. ulimit of 5500) | | modules | C: hadoop-hdfs-project/hadoop-hdfs-client hadoop-hdfs-project/hadoop-hdfs U: hadoop-hdfs-project | | Console output | https://builds.apache.org/job/hadoop-multibranch/job/PR-1884/1/console | | versions | git=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1 | | Powered by | Apache Yetus 0.11.1 https://yetus.apache.org | This message was automatically generated. > HDFS-client: boost ShortCircuit Cache > ------------------------------------- > > Key: HDFS-15202 > URL: https://issues.apache.org/jira/browse/HDFS-15202 > Project: Hadoop HDFS > Issue Type: Improvement > Components: dfsclient > Environment: 4 nodes E5-2698 v4 @ 2.20GHz, 700 Gb Mem. > 8 RegionServers (2 by host) > 8 tables by 64 regions by 1.88 Gb data in each = 900 Gb total > Random read in 800 threads via YCSB and a little bit updates (10% of reads) > Reporter: Danil Lipovoy > Assignee: Danil Lipovoy > Priority: Minor > Attachments: cpu_SSC.png, cpu_SSC2.png, hdfs_cpu.png, hdfs_reads.png, > locks.png, requests_SSC.png > > > ТотI want to propose how to improve reading performance HDFS-client. The > idea: create few instances ShortCircuit caches instead of one. > The key points: > 1. Create array of caches (set by > clientShortCircuitNum=*dfs.client.short.circuit.num*, see in the pull > requests below): > {code:java} > private ClientContext(String name, DfsClientConf conf, Configuration config) { > ... > shortCircuitCache = new ShortCircuitCache[this.clientShortCircuitNum]; > for (int i = 0; i < this.clientShortCircuitNum; i++) { > this.shortCircuitCache[i] = ShortCircuitCache.fromConf(scConf); > } > {code} > 2 Then divide blocks by caches: > {code:java} > public ShortCircuitCache getShortCircuitCache(long idx) { > return shortCircuitCache[(int) (idx % clientShortCircuitNum)]; > } > {code} > 3. And how to call it: > {code:java} > ShortCircuitCache cache = > clientContext.getShortCircuitCache(block.getBlockId()); > {code} > The last number of offset evenly distributed from 0 to 9 - that's why all > caches will full approximately the same. > It is good for performance. Below the attachment, it is load test reading > HDFS via HBase where clientShortCircuitNum = 1 vs 3. We can see that > performance grows ~30%, CPU usage about +15%. > Hope it is interesting for someone. > Ready to explain some unobvious things. -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org