Implementation PrevaylerEight
Christian Stein <[email protected]> Thu, 16 Oct 2014 12:13:12 +0200
| Newsgroups | gmane.comp.java.prevayler |
|---|---|
| Message-ID | <CAJi8+g5+ZqebpUCY4Rd+fG=7uGcC+gL_DxnSfAVF_TVq9QdUsQ@mail.gmail.com> |
--===============5075471002783550281== Content-Type: multipart/alternative; boundary=001a113435dcf6b3250505877ecd --001a113435dcf6b3250505877ecd Content-Type: text/plain; charset=UTF-8 Hi folks, I recently found some spare time and made the scalability test use the PrevaylerEight implementation. See [0] for the outline of its source. A single-system-wide lock facade prevayler implementation is used for synchronization, at the moment. The initial results are promising in terms of performance and consistency: - Default Prevayler: 1511,00 operations/second (8 threads) - PrevaylerEight implementation: 89189,50 operations/second (2 threads) These microbenchmarks are, especially when the consistency checks kicks in, very garbage collection dependent. I had to set the TransactionTestCheckConsistency to NO, because replaying more the 1.000.000 transactions into the prevalent system would still be running... Ran the benchmark with -verbose:gc and saw after an hour that every 10 deserialized transactions a full GC. So, I had to lower the round duration from 20 to 2 seconds. This change makes the results even more dependent on the gc, jit, et al. But, now some results are shown. See console output at [0] and [1]. Query runs and JDBC runs are switched off. Next time, I'll integrate Caliper[3] to show more details. Cheers, Christian [0] PrevaylerEight.java https://gist.github.com/sormuras/3fea6f6ade327b2a4249 [1] Result PrevaylerImpl https://gist.github.com/sormuras/ef279705d5838a757964 [2] Result PrevaylerEight https://gist.github.com/sormuras/6f61c6af2066d5f8bf87 [3] Caliper https://code.google.com/p/caliper/ --001a113435dcf6b3250505877ecd Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr">Hi folks,<div><br></div><div>I recently found some spare t= ime and made the scalability test use the=C2=A0PrevaylerEight implementatio= n. See [0] for the outline of its source. A single-system-wide lock facade = prevayler implementation is used for synchronization, at the moment.</div><= div><br></div><div>The initial results are promising in terms of performanc= e and consistency:</div><div><ul><li>Default Prevayler: 1511,00 operations/= second (8 threads)</li><li>PrevaylerEight implementation: 89189,50 operatio= ns/second (2 threads)</li></ul></div><div><br></div><div>These microbenchma= rks are, especially when the consistency checks kicks in, very garbage coll= ection dependent. I had to set the=C2=A0TransactionTestCheckConsistency to = NO, because replaying more the 1.000.000 transactions into the prevalent sy= stem would still be running... Ran the benchmark with=C2=A0<span style=3D"c= olor:rgb(0,0,0);font-family:Consolas,Menlo,Monaco,'Lucida Console',= 'Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sa= ns Mono','Courier New',monospace,serif;font-size:14px;line-heig= ht:17.8048000335693px;white-space:pre-wrap;background-color:rgb(238,238,238= )">-verbose:gc</span>=C2=A0and saw after an hour that every 10 deserialized= transactions a full GC.=C2=A0</div><div><br></div><div>So, I had to lower = the round duration from 20 to 2 seconds. This change makes the results even= more dependent on the gc, jit, et al. But, now some results are shown. See= console output at [0] and [1]. Query runs and JDBC runs are switched off.<= /div><div><br></div><div>Next time, I'll integrate Caliper[3] to show m= ore details.=C2=A0</div><div><br></div><div>Cheers,</div><div>Christian</di= v><div><br></div><div>[0] PrevaylerEight.java <a href=3D"https://gist.githu= b.com/sormuras/3fea6f6ade327b2a4249">https://gist.github.com/sormuras/3fea6= f6ade327b2a4249</a></div><div>[1] Result PrevaylerImpl=C2=A0<a href=3D"http= s://gist.github.com/sormuras/ef279705d5838a757964">https://gist.github.com/= sormuras/ef279705d5838a757964</a></div><div>[2] Result PrevaylerEight=C2=A0= <a href=3D"https://gist.github.com/sormuras/6f61c6af2066d5f8bf87">https://g= ist.github.com/sormuras/6f61c6af2066d5f8bf87</a></div><div>[3] Caliper <a h= ref=3D"https://code.google.com/p/caliper/">https://code.google.com/p/calipe= r/</a></div></div> --001a113435dcf6b3250505877ecd-- --===============5075471002783550281== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------------ Comprehensive Server Monitoring with Site24x7. Monitor 10 servers for $9/Month. Get alerted through email, SMS, voice calls or mobile push notifications. Take corrective actions from your mobile device. http://p.sf.net/sfu/Zoho --===============5075471002783550281== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ To unsubscribe go to the end of this page: http://lists.sourceforge.net/lists/listinfo/prevayler-discussion _______________________________________________ "Databases in Memoriam" -- http://www.prevayler.org --===============5075471002783550281==--