From 93a166ea8a394ebda42e49fda10f9910936e5c35 Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@71dcc7fd-b1f2-4e5d-bb8e-274146e81173> Date: Mon, 11 Mar 2024 19:41:13 +0000 Subject: [PATCH] checkDataIntegrity - borg mount optimizations; git-svn-id: svn://home0/checkDataIntegrity@3518 71dcc7fd-b1f2-4e5d-bb8e-274146e81173 --- bin/checkDataIntegrity/Args.class | Bin 1654 -> 1774 bytes bin/checkDataIntegrity/BufferPool.class | Bin 864 -> 864 bytes bin/checkDataIntegrity/Main$1.class | Bin 3210 -> 3280 bytes bin/checkDataIntegrity/Main.class | Bin 3633 -> 3911 bytes checkDataIntegrity.jar | Bin 19231 -> 19385 bytes src/checkDataIntegrity/Args.java | 2 +- src/checkDataIntegrity/BufferPool.java | 2 +- src/checkDataIntegrity/Main.java | 73 ++++++++++++------------ 8 files changed, 40 insertions(+), 37 deletions(-) diff --git a/bin/checkDataIntegrity/Args.class b/bin/checkDataIntegrity/Args.class index 5a2fc18e528e937ec6c30d94cc658fad3164c5d0..bb6709ddd0e24859178e8705785b5ff1a19838e4 100644 GIT binary patch literal 1774 zcmaJ?TTc@~6#fQ!XBDU|H@S%*?Q$u2*CNVAq)EL*2oL%+Z6|c0?AF~W35h?+2T5#9 zc<=}Kql{;E7ue9t!^}B5Gw1frcV_?oyZ8fO1G`c5FbtQgqI|r~B`=s#9NLCF%Wc?) zP81=Afg^s(b2V-r=01zEWmg!&buOzb49Vj4-k!7#^Dyskt};Yr)fT+sFt7qc$T>FZ z3~_0kh@x>~NQTIoVH$FsLC>`MXLzi61^L*t|*?0sIU3000&=CuQE8|vF%49TiNHH;QJ zU_=!Uyce=+RX%Z>p9m>zI-bg8TPtvLB`jjn^3Y1s9n5LCj|U7(nT`?Kx{6h~Q&m_f zCs_^i&>6Cywkc`$Rs zJhhHR&O5!!%}Px;vqj4~Zq)OEEPZMQR(!+#v%1(8PT4l<(z1glTQ%-D!3E#P*H$ON z==tDP`QY?N@F)hN$&A}Ic{Q)*{pQH4w#Z*KML&^{MvBG|jS(7S3|hf7h3%#!s3*4= z=B|P3fa&CR;XQii3(vPRY#GQRQ=>i>LyoGFS(LBiKH4DZlMRa zN&8Mxou1ZzqhDWWBB?Jnk*-qO)6g>mkaT^jyQ&N^LP!h8QTDqDpEUFqQT~rVc?UR#?5|hME?Fkb9)Q2K9 zs>DM-pdVHBj%~mq%frlE-7eLV}l`GzS=twwqe#ae{+)|a8Q)HsrVO42g!}FwB&Pq=POu`GJduRr{>l zdYcPw)A8wipX*f#EEu+%Qk9CNFxY-|J?r z#ht~nWi`7UEuhk`!hpvI9-emiK6k3N(Giv%gzU9+#|b+87~lGX1lhIVQ~AkBMz9gX zbB3JTAex*vHQ5K+Wd|e~QZ%M$WN2g=l#*$3+m*qo<=!wXT_tP8y`$J+m>+$V3c*Vf z8D95dgBoL;o>aYwvUA*(`o>+UYiNzpn1F&Y+#st(YnaxY`WrXZl^#;+Y7bND zTn`yF6Y3#*M!RE}p*cbvk|9U)mWRR}%+eR(T~@iDb9u*HOEODUIoYv`n_PDW+`ZiRv9L&{zB>}8U5TcHY1inkf~9S7#0SwWPXfbNeqN!heJ~IH@FbC zOycETqUt&B0oSEbMY+tB6YBm8X+h8uaGfa#%A?@lCr?Z=EirZF9O@`k2x~6sI*PQW q3IEi6*k^cwm(Z|{SL9ES|25uXmmYqPzH{_=URilX<&~6MQ2zmSP)WrA diff --git a/bin/checkDataIntegrity/BufferPool.class b/bin/checkDataIntegrity/BufferPool.class index 444dc5c8ab75b286d761233796550c1b992cdd61..2b15b544bfdc0816519f0c8ef7cc9dd548be10c0 100644 GIT binary patch delta 13 VcmaFB_JD1}IVMJd$>*6S0strD1ycY3 delta 13 VcmaFB_JD1}IVMJj$>*6S0stt}1%m(p diff --git a/bin/checkDataIntegrity/Main$1.class b/bin/checkDataIntegrity/Main$1.class index fa4361bce0a6ec7f61df5c9ba00226d179c8bad2..839309c86902091063e751af4b468ef068269dbb 100644 GIT binary patch delta 109 zcmeB@ydb%unuDV}F(;dmAx2~31ChxUjFOW#F!D}(AU}B;M<=7*WCc!FMyJW=xWp&h zb8}5@=bW$T&LG3!$)LjE#h}jM&7i^H!=S?u02B#i@MQ>M2xSPF?9SE37zxx9$ruOH Kx!IoEn-KuZ(H$TF delta 109 zcmca0*(JH5nnNl#F*A>mK};jsCo8cmQ9ma!FI_*lq$o2lee!LNE=I}8X`HT%vXk?; z6(^tNoUf?FAj6;ngsKec3~CG-KvIW6o52%E`ZDM;gfi$)?&WG@Gy$p?pRCR8#AvxW Ik2{GG0F~VvKmY&$ diff --git a/bin/checkDataIntegrity/Main.class b/bin/checkDataIntegrity/Main.class index 99724f1c19ae86a122df0f3bc0523baf705bd31c..edd00b20cb16ef0011ecb5a11775fd723b7e847d 100644 GIT binary patch delta 1706 zcmZ8h`F9gl6#iajl1Zk6Eu{+-yUBd z#hoKORNRo_0`9bG8e2d`(R2L8_Gk1I6ckg{~{O(_?)ZcDR zT?NpNU&hs_%jbu#Aiz-0v##{%xDjS(^YcHX5U-Ty z%8EgD*d z+GoXWGnL9DZJ}MQVU5tr2NG6X?9!%T9oF-|!rN1Xv&W|D#56pDM|q*LI5dcT3WgZwI$k42 zJQD6CHW4$W!Nh(BZ_-GmP0}%x@^)!np(v^!QBhQjK^HpyyRU$sQ+$RRkx~yOGI6_@Dt}xUpXXP+6|EV(sNp5C zvyZZxLy7plw2E@PqTy91Xz++_rrng0elm*T!tr8AIL?cFwVeuHpH;}tZ5@Y)%%p84 zsK0)^so{)(>rNVWv{Av^3`PIPT7Y+PR>6C`S}K>`$2s0Ab+Ge1D^(SY;X_f&j~GUI zyC*=Sw`b7>e4^muzgxzsdHbyqGrWmJTEnOKjBk_sc*wJkH~WH~34EjAYrfwX@E*gr z3}^gZ{G?jXFZ=Ad<6h+HQ1m7e!>ekT7gM}lEv>jrse7ZTL?#kVW^6LlY_$f%X)mtw zq*}>-KCZ)mrA}H`N{$f5S`F0fzYQg2rq^4ofBx>TU>z@@Nd@&`fJ3 ztyRH1)&_HE&!NM2`YaUr0%R$V`^PC(f=aRp8p%RpUIZWJlCA_gO3^}1X~P0+pgG!v zg>)z?(T!>hq6P&Nq0j7(E^N)xryG08yp5Wz(_!3>2dQx_bQ3&;9@?mvJmx{V0abzj zCVCWebn93Ezurs40`r6yf&(%nsY7`n%i zijb3tbY&-SfJzW+xJ1#jS=GUV#kh+ugCd%b5(J2oPJ9}OLlE~MMADB&EX7KM9ad#C z2m~w2)kqadI-~>v39N_!(;adf@HK)h0B56lEYNd!%*?~?ngR3p6pjJ}pFYX-3^ia1 z&p8@``hsXi?TqPVG6_|z1Sgy|h1X_9iq=ixq@%ghwJN7#%cytFSeV6fqOyYiE3t#B zAHk|wWTH+tK&}Hg1y0xn886rk>`>_3tK#k@9z~>;$$HvJohB&;tZo|B{gYVKO(fos zuHdaa-kHW&e@G8DOyYw)KJFVA{dZ9wP^l%7YbkphYGKS8lsacR$cQ=z4|CqcbhyZS zAwI_!6f5IP(!1~#L@O)kJ4c8n9r>LjryY3(-;-Tj4rBBzrG+1G4L{SoUZ;0KW9%Q8 C%w6yR delta 1449 zcmYjRTUQ%Z6#hEO@Wr)!@dvn;%SYe*0d`gQ47lp7bXu$?e&{ z+{xSmZ~#BZurL(x9m2Nc{R0-I0=raLQN@#%4x0xxGOD-C{DMVt)WXYPjcR(Jj{hzd z2r}w9Q}W7o<3SmF7@RZOam^bJM!eI(IiGis991;pA>OETiF+A}j6}J8S}?q`-i{{h zGm^D1oY}?yW>x%GWkTAIb{TEF-c~3az{9-PHg?dC3UsRIg2Z6gPG~{BD-_ii40X4P zgNE7`4C}sFEFRSj?V~ClGqmDNBp9}Xp-)9W2KaTMNjjwBaSZW4g_isg6{B!52!0=h z72~jqaU9{zVv=9AwYFpp>Dtt6pB5d~Cg*%Ma`3ANAV>j}iXpGptd@!$j8Xa_J?7Iw z`xMMFbn;4T9oMY+QV0aH{AL!XFI#o%Af;RB;h+@qeW5LayQx zhUnUW#Hg87(K2-6M88o?|`{u25BYh&A zuwcmv0ZTk7m-9btwbJLfF5?THYp)V6;s$TGujE`)@D+nR9Er>}moWva{4aZ6@fyRn z;Xo`B_XnbJoeX7t!AbADf^WIYQNq@Fi^DB`&*0*14i`V?C}$$S;TW>B5-8M1Ai)*2 zE|Fcfj>`TGl#Z`sN3-Zj!7coVx-=R#&@^5odTOfI(VRx>SWOBYv>u_=Q=LX{bqa$i z4BIZPKo+k-6w(+=(!B!gv^OG)_IoK)Hf+ctT`t_nCw(E>P=q6B#Zl}}V3NdXn!6cv z;1oLHps+og0PzGSNFvhlBsnv>U<6O$Y3f=ddZ1CPK+)}(!ZGTmk9_kX+=g9-=Z^8p z3S?BsC~c=9K_1zti{!IRyM@l(?pt!=GP2e%?VL$rj;(IMGwv1|++u^<+K@)fEgAbd zp6y-3^VFJCo>hw5EU?x@+6{@u?H)ptjb19TkI3$)cR7GE4B`ROxp4^fG+;(u`I~vS z>T*+K5-*yC8PEl=Y{E%XxrOtmEu4Wgirgu@QI zvcXCDrs)GR8LCh&R?L;b$N!5=7!+pkiK)8Fp37|1C{&E$J{(33{S7n{XCp+2pUAjd zOu!@r`aF(T8IB%d$M{cGH;CLw7G-{3oPFeajj SPUA}%!`zqG} diff --git a/checkDataIntegrity.jar b/checkDataIntegrity.jar index 36619df17a10a427b25a420c879ac37ffff8e641..a425292bb62351219089655d2f8826023819b823 100644 GIT binary patch delta 5227 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 NWVoArobsQ${{S~Tb7BAh delta 5122 zcmY+IbySp3)W>0wUXTvySh_nEBo-E=yJ2Zq8U%?2lx`M@C8QKkk=~`HODX9VkVcSF zN_mlU-uLzQJb!%doOACvcjnBUnfq&YtIUNcsBi$8YOD}*GljvHv%VdFtRg~t6sF7fYEBZM33P9a$eSMP*7PJ-=NaX4A zr0_jh6d>wFrvQ*}mV!oAQN4wMxZX2eMY($ITzeH@rxpx14!*0D_P}thh-ob4txStV zYGmAHwe0$ww3DNg)AiNppdg0Z>?A3arczuP21i`Ax?kDNG+dXgAzSu##%OSUowEo^ zG_}Faui0Ib&7ES=jVmVhG;i}>!7e^H9A)6={$2^t(1%u(&dDNqG+R!7}+VLSlUrRh%cW4 zvM!YTwI{FjR_pAM;;H@g-Ca|fx;oLPnG*qSYe}Gl%=Bc!FDY;94y4+*T3RVH1~uSN z{1iVq`)oNUp9R!@OsepySao85kCD8Cjnu)&V(tC>P+ef_iciZj#j-)K_s@mO*bhy> z#fPqOPgbWa-fhTwpu1HO!B+SBvzEtig5Fk3Vd3*}93`@p;gptg6tQm=`bl770cp*; z>uc*(X%lNknu zNywX*nqPKfB4|FOO|#Q-=7_@Anxz*M`||c|X7je0-5eW;Ra17vqJ`(lDU?(P#@p!& zy$ILCzpSkWY4s*?KT$oK9-yPNn20BU`xWno2~)Ka0#SG!UV9mXh< z49;tf^}?&NvFmc5Aa=JlK zKL8yKTs-GEi?pu*42%FA42*xOaU<0gq0Yu$_erq}K={8Unt59{>TDu#bA1Xh#h(X8 z(UxGv*2rRK5?e)Ma$jMZH6PuXeLw^y`Eai-%F@iyX}ZAb7rE|UDCMcX7+sNU)++(QO`^ynlmZfkGPb4|T}FyB8&qkzVBLqNP}m9t~6*Vo@;A9$V;b zD$Vm-vVq%9doGNax0>>RfRt4Q{w)ndT!OgWR2}JfQTq2A^4!l`;eG@Y^HJBiT7=f+ zEYU4{0(Mg`_SlUjbK7a72h>v6bx9^9_{7}Y%96P3=I3EhQFmCw!fa%vu$Wy{64gG` zd4Fn^-(~gWNY6I&(|gf9QheA>hkq+AnBaGd2(7MfWaElC@9Wx!u}GMT>BDnf7InG^ z3!Ci9Y6HXm(vnRaxbbIch`O-3o}BRhi>@gEsz`#V=-v8f$C+|RqA;f zQ3R?67T`g%;g6@g#2B9Cw>YgAN6#wfEAb3>fapATSWDu^z7#VXWRNwwuM;d60RWaA zBd6rHT9DOuE}$lT8uz|nzdb)P%Yx*+V$*qf>Tbi&W?q>)L8jS6)Y3Tb%FEpS&Mk<)kB`T6+7OSsiSPR5)WzxUfbZWSwz*QCM+ zA${CN&r~%GJDeDvrOiZ%BReP1{tQ{|X)6I)`pt64b3U9Rv$@0(!Lsse%q!0p^TG-D zU{ofJ|9q|l!H)+2g+3yZ7GvY3pYYxAXLa{s^!+TbQ1^9aVqN1rV#t?`4L7DK%ggL& zmSD4Qp>Xg^_TiMtC$PD#Yro2MI#!f=F{%Dfp2D% zcU%;CgFM;XD2OPq{d%sb$Elc1dXmq_Rrcf2U^rC`=O1#Ju)--Ezb`FucHsg0WoXzw zF@0g1qQtm{)o2<+k@XTz@T|RxXv+ABGd845afheMSf^e*yu?vH5~`+iZvuP{Jbq;l zcJ{*!>%@=7-HyA7MS)s1yOTk!0f&En&1(Jp@CTGA$6n0HcDC(Q>f$;|w*1WjofG`) zBm6mKP^{Xz&K8z?SR#61*|O`(9?bof1*y3PymDS(`d}R7EJ~GT{FXyLrHvz>gREryh$h$%}kenJQ=jU&=JPd&vB2TC(WA;4Ghv z`#6>6N(s?Xh!17KiD3a21<|OaL~O|015f-1-=^6&_+BX{>*pmW_FlokQq?cMKtddU z(5W@455XAl(9@5llA|v1nBGTudCB83RmLkkKJPJkwI(VWmMjRIW?1Z=dGI`hb_l*g zlOlVA@%JS5264ndurV;=ff%>rf6v_8rwPIuLIAHcx_V02OZlfSy{)#^g?`Hx@MLX_ zeV~>c6!C_IfTJ@Y)?!fjjF7zW{YFiFW<75JSY4C5O7HU9c;=g(go$G=Pqi=8MzF8A zVXJw6p3oEjO8zFL>P9xwx#ip!yfu;^{PAi@_T)y8>Jg?FfQiEjWy5NV8-@zY+62+0~urD1?0J2y{ zG4hgIrmsmIxF4@NhRk&Ezq6ssIeE#KGn>o+psS-CMI=9H&=7%ACnREYN;wzm+f*$Z z=mrR<`R6w~cIkNxj&NvgbAOj<;tD7hk0%aE!Cc}05$G-y3N=TppsZ#ZBiaB9SmE#- zueQk3XiGFrFJsT_j6lTlERqD5-y*?7WJ;V-Me--@HohZ&u5b+#e#B<&>tkH5vziZm zVsuiCGAd@R#OU=aoCD_eT~L1jxoChcNAzGuT=#i|0z#H8HBlT1WY;gDmATYfyMB~{GC=%o>7w#8>olriL*-1`eD)w^btyZEyeVp`)j)^p$V zL4iNa@+U31lGKxyPZ{@nNp%~(6SLbWO)@l&_M`~0k_RGy}~|H-uh)}|3f%n5t&?@8m43d@m8Bln|HYi^#+AETObpMY@tfI#*j;*VlK z5;k!96+oA~1--vYK_m4uXi`5=Yd; z=$EbO%AZ|c@&6v~S!sa3u8;=(cHI6bG(Y}=@cXGplY*`0%<~dLHZJ?OIi%<{2hdag z+R1mp}Ha3iemw$3#w(|9}*2nN>13;d-GI(Yqzny`r65>O{wyy*aB7w znwBk&KQcBn_1`V!2P{2)P2YiNkVqbR=@5RIgE1|J+^&o7CC#0O_eN8-(stq+u$O%6 z7}p~01jU=7Z_HeVT=?4_gCvl@79j%GAGpZ;9rr6J*g~WVBxJ0sRaH4( zw3j+9M0OO=#V>Z;+zSY4<4ODYhOgQ~?UIM>f^rv1JxS--r|{?>8z4VTqZ$~# zEGKof+gW|Mxv0jh=-kr8bW`|3^zK^8>OoMC64SZ@WlW}*y^ncgu=OY)*~ojQr#(p1fgc@TRa_%J_7abp&Y``Kk^jIlY1!u9t~yOGF;rl`Ts$-CcBT7IK{HC5c+a zT#Sm@aeP%=Mcdr%G#+WlM<2NUlDMAW(mG#O?o1>!g$jYNV!*K^CmQaQN`N@e+h9k zRup)y(|Q5dp|om^>c`I0w(iu%%jRqrv?TKU7;tJeG{HRtj*ryT52t;5#G0ywaUD-wpZ_aIs44SJ95K?A#>75g^u=3|Kp`k+Iv=;+)+nCa%}I;gO*ZO_|~w) zE#7FGUCM)ON#T=ZW^DubO%141V>3Hl7g4M6k1E&jb!2|`v#m!B_8?!`(~EUwH2z}b zRZU6(FoxS2`Yj+?q=pP)<@6l?lG&=)?M#Q2~Veuv`E}*@n5Wr+O6OcEN+qL`A-&` z>77LJb#jDk+Uzw069#=b)Gv+<4lZKtSaY317%8PR1HIk?3IE%wL zuEcKlT*bP4OrNC~leqoq@w?d*=A;C2!28IpRzguAja4X!@NR;7Wx!meNo>cA(l23E7zkT;H{p*KupY7I>67fk9$fu+6|FgSo!A<^sDE>DH zgX1m;#s)+%LV(PFo&PPS|E7|~d*^Hop<-T7bT#>RsoDOMN}~uuSVI_V=60fk5IO+1 z_+8x9ZQSkhn|RMgE*#yae@KXd@!z;A`8&tA5Hbqv+j7Rhpt}8Oa4|5Bl>UzX2X@^^ AzW@LL diff --git a/src/checkDataIntegrity/Args.java b/src/checkDataIntegrity/Args.java index 2ca1246..50ef9ef 100644 --- a/src/checkDataIntegrity/Args.java +++ b/src/checkDataIntegrity/Args.java @@ -1,6 +1,6 @@ package checkDataIntegrity; -record Args(String path0, String path1, int skip, int timeLimit) { +record Args(String path0, String path1, int threads, int skip, int timeLimit) { } diff --git a/src/checkDataIntegrity/BufferPool.java b/src/checkDataIntegrity/BufferPool.java index c9bf12e..5b5a3ae 100644 --- a/src/checkDataIntegrity/BufferPool.java +++ b/src/checkDataIntegrity/BufferPool.java @@ -9,7 +9,7 @@ class BufferPool { static byte[] get() { byte[] buf = queue.poll(); if (buf == null) { - buf = new byte[16384]; + buf = new byte[4096]; } return buf; } diff --git a/src/checkDataIntegrity/Main.java b/src/checkDataIntegrity/Main.java index 2aec56a..f1e31c3 100644 --- a/src/checkDataIntegrity/Main.java +++ b/src/checkDataIntegrity/Main.java @@ -18,9 +18,46 @@ public class Main { } final ProgramState state = new ProgramState(System.currentTimeMillis(), new AtomicLong(), new AtomicLong(), new AtomicLong()); + final WorkerPool workerPool = new WorkerPool(parsedArgs, state, parsedArgs.threads()); - final WorkerPool workerPool = new WorkerPool(parsedArgs, state, 32); + walk(parsedArgs, state, workerPool); + workerPool.awaitEmpty(); + workerPool.interrupt(); + workerPool.join(); + + printStats(state); + + System.exit(state.countErr().get() > 0 ? 1 : 0); + } + + private static Args parseArgs(final String[] args) { + if (args.length < 4) { + System.err.println("Usage: checkDataIntegrity.java "); + return null; + } + + final Args result = new Args( + args[0], + args[1], + Integer.parseInt(args[2]), + Integer.parseInt(args[3]), + Integer.parseInt(args[4])); + System.out.println(result); + return result; + } + + private static void printStats(final ProgramState state) { + final Duration duration = Duration.ofMillis(System.currentTimeMillis() - state.start()); + System.out.println("Took: " + duration.toString()); + System.out.println("Files checked: " + state.count().get()); + if (duration.toSeconds() > 0) { + System.out.println("Throughput: " + (state.bytes().get() / duration.toSeconds() / 1024 / 1024) + " Mib/s"); + } + System.out.println("Errors: " + state.countErr().get()); + } + + private static void walk(final Args parsedArgs, final ProgramState state, final WorkerPool workerPool) throws IOException { final AtomicLong walkTreeCounter = new AtomicLong(); Files.walkFileTree(Path.of(parsedArgs.path0()), new FileVisitor<>() { @@ -57,39 +94,5 @@ public class Main { return FileVisitResult.CONTINUE; } }); - - workerPool.awaitEmpty(); - workerPool.interrupt(); - workerPool.join(); - - printStats(state); - - System.exit(state.countErr().get() > 0 ? 1 : 0); } - - private static Args parseArgs(final String[] args) { - if (args.length < 4) { - System.err.println("Usage: checkDataIntegrity.java "); - return null; - } - - final Args result = new Args( - args[0], - args[1], - Integer.parseInt(args[2]), - Integer.parseInt(args[3])); - System.out.println(result); - return result; - } - - private static void printStats(final ProgramState state) { - final Duration duration = Duration.ofMillis(System.currentTimeMillis() - state.start()); - System.out.println("Took: " + duration.toString()); - System.out.println("Files checked: " + state.count().get()); - if (duration.toSeconds() > 0) { - System.out.println("Throughput: " + (state.bytes().get() / duration.toSeconds() / 1024 / 1024) + " Mib/s"); - } - System.out.println("Errors: " + state.countErr().get()); - } - }