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&#39;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>&gt;</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,&#39;Lucida Console&#39;,&#39;Liberation M=
ono&#39;,&#39;DejaVu Sans Mono&#39;,&#39;Bitstream Vera Sans Mono&#39;,&#39=
;Courier New&#39;,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&#39;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>
&quot;Databases in Memoriam&quot; -- <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==--