Re: Implementation PrevaylerEight
Marcel Oerlemans <[email protected]> Tue, 21 Oct 2014 21:25:17 +0200
| Newsgroups | gmane.comp.java.prevayler |
|---|---|
| Message-ID | <CAKE0620q3BCJT9kLGkkBFA+os_DUF_H_4eED8wrSPaBKVqwmpQ@mail.gmail.com> |
--===============0199484466590249481== Content-Type: multipart/alternative; boundary=001a1140a8c691e5960505f3ca34 --001a1140a8c691e5960505f3ca34 Content-Type: text/plain; charset=UTF-8 Hi Christian, Those numbers are impressive! I see you tested default Prevayler up to only 8 threads. You might want to scale that up a bit? After I read your mail, I ran a prevayler scalability test, from 1 to 1500 threads, 20 seconds per round/ In my test setup Prevayler handled 60 transactions/second @ 8 threads, but at 1489 threads, Prevayler could handle 5945 transactions / second. That's ~100 times as many. Results in graph form can be found here: http://imgur.com/sRIaCVD I wanted to do a similar test with Prevayler8, but I see now I need two classes which I cant seem to find: ByteBufferOutputStream and ByteBufferInputStream. Can you help me with that? Best regards, Marcel Oerlemans On Thu, Oct 16, 2014 at 12:13 PM, Christian Stein <[email protected]> wrote: > 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/ > > > ------------------------------------------------------------------------------ > 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 > _______________________________________________ > To unsubscribe go to the end of this page: > http://lists.sourceforge.net/lists/listinfo/prevayler-discussion > _______________________________________________ > "Databases in Memoriam" -- http://www.prevayler.org > > --001a1140a8c691e5960505f3ca34 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr">Hi Christian,<div><br></div><div>Those numbers are impress= ive!</div><div>I see you tested default Prevayler up to only 8 threads. You= might want to scale that up a bit?=C2=A0</div><div><br></div><div>After I = read your mail, I ran a prevayler scalability test, from 1 to 1500 threads,= 20 seconds per round/</div><div>In my test setup Prevayler handled 60 tran= sactions/second @ 8 threads, but at 1489 threads, Prevayler could handle 59= 45 transactions / second. That's ~100 times as many. Results in graph f= orm can be found here:=C2=A0<a href=3D"http://imgur.com/sRIaCVD" target=3D"= _blank">http://imgur.com/sRIaCVD</a></div><div><br></div><div>I wanted to d= o a similar test with Prevayler8, but I see now I need two classes which I = cant seem to find:=C2=A0ByteBufferOutputStream and=C2=A0ByteBufferInputStre= am. Can you help me with that?<br></div><div><br></div><div>Best regards,</= div><div>Marcel Oerlemans</div><div><br></div><div><br></div><div><br></div= ><div><br></div></div><div class=3D"gmail_extra"><br><div class=3D"gmail_qu= ote">On Thu, Oct 16, 2014 at 12:13 PM, Christian Stein <span dir=3D"ltr">&l= t;<a href=3D"mailto:[email protected]" target=3D"_blank">[email protected]= m</a>></span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margi= n:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">= Hi folks,<div><br></div><div>I recently found some spare time and made the = scalability test use the=C2=A0PrevaylerEight implementation. See [0] for th= e outline of its source. A single-system-wide lock facade prevayler impleme= ntation is used for synchronization, at the moment.</div><div><br></div><di= v>The initial results are promising in terms of performance and consistency= :</div><div><ul><li>Default Prevayler: 1511,00 operations/second (8 threads= )</li><li>PrevaylerEight implementation: 89189,50 operations/second (2 thre= ads)</li></ul></div><div><br></div><div>These microbenchmarks are, especial= ly when the consistency checks kicks in, very garbage collection dependent.= I had to set the=C2=A0TransactionTestCheckConsistency to NO, because repla= ying more the 1.000.000 transactions into the prevalent system would still = be running... Ran the benchmark with=C2=A0<span style=3D"color:rgb(0,0,0);f= ont-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation M= ono','DejaVu Sans Mono','Bitstream Vera Sans Mono','= ;Courier New',monospace,serif;font-size:14px;line-height:17.80480003356= 93px;white-space:pre-wrap;background-color:rgb(238,238,238)">-verbose:gc</s= pan>=C2=A0and saw after an hour that every 10 deserialized transactions a f= ull GC.=C2=A0</div><div><br></div><div>So, I had to lower the round duratio= n from 20 to 2 seconds. This change makes the results even more dependent o= n the gc, jit, et al. But, now some results are shown. See console output a= t [0] and [1]. Query runs and JDBC runs are switched off.</div><div><br></d= iv><div>Next time, I'll integrate Caliper[3] to show more details.=C2= =A0</div><div><br></div><div>Cheers,</div><div>Christian</div><div><br></di= v><div>[0] PrevaylerEight.java <a href=3D"https://gist.github.com/sormuras/= 3fea6f6ade327b2a4249" target=3D"_blank">https://gist.github.com/sormuras/3f= ea6f6ade327b2a4249</a></div><div>[1] Result PrevaylerImpl=C2=A0<a href=3D"h= ttps://gist.github.com/sormuras/ef279705d5838a757964" target=3D"_blank">htt= ps://gist.github.com/sormuras/ef279705d5838a757964</a></div><div>[2] Result= PrevaylerEight=C2=A0<a href=3D"https://gist.github.com/sormuras/6f61c6af20= 66d5f8bf87" target=3D"_blank">https://gist.github.com/sormuras/6f61c6af2066= d5f8bf87</a></div><div>[3] Caliper <a href=3D"https://code.google.com/p/cal= iper/" target=3D"_blank">https://code.google.com/p/caliper/</a></div></div> <br>-----------------------------------------------------------------------= -------<br> Comprehensive Server Monitoring with Site24x7.<br> Monitor 10 servers for $9/Month.<br> Get alerted through email, SMS, voice calls or mobile push notifications.<b= r> Take corrective actions from your mobile device.<br> <a href=3D"http://p.sf.net/sfu/Zoho" target=3D"_blank">http://p.sf.net/sfu/= Zoho</a><br>_______________________________________________<br> To unsubscribe go to the end of this page: <a href=3D"http://lists.sourcefo= rge.net/lists/listinfo/prevayler-discussion" target=3D"_blank">http://lists= .sourceforge.net/lists/listinfo/prevayler-discussion</a><br> _______________________________________________<br> "Databases in Memoriam" -- <a href=3D"http://www.prevayler.org" t= arget=3D"_blank">http://www.prevayler.org</a><br> <br></blockquote></div><br></div> --001a1140a8c691e5960505f3ca34-- --===============0199484466590249481== 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 --===============0199484466590249481== 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 --===============0199484466590249481==--