Re: Implementation PrevaylerEight

Klaus Wuestefeld <[email protected]> Tue, 21 Oct 2014 18:14:04 -0200
Newsgroups gmane.comp.java.prevayler
Message-ID <CAMAooZHa6iLpV_AcySONCnzpUxPcT6f5XjvH9g5hn=NNQcQ5uA@mail.gmail.com>
--===============1947127382225235989==
Content-Type: multipart/alternative; boundary=001a11c3749e0e8be10505f4797b

--001a11c3749e0e8be10505f4797b
Content-Type: text/plain; charset=ISO-8859-1

Nice graph!

On Tue, Oct 21, 2014 at 5:25 PM, Marcel Oerlemans <[email protected]
> wrote:

> 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
>>
>>
>
>
> ------------------------------------------------------------------------------
> 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
>
>


-- 
Valeu, Klaus.

--001a11c3749e0e8be10505f4797b
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Nice graph!<br></div><div class=3D"gmail_extra"><br><div c=
lass=3D"gmail_quote">On Tue, Oct 21, 2014 at 5:25 PM, Marcel Oerlemans <spa=
n dir=3D"ltr">&lt;<a href=3D"mailto:[email protected]" target=3D"_b=
lank">[email protected]</a>&gt;</span> wrote:<br><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex"><div dir=3D"ltr">Hi Christian,<div><br></div><div>Those numbe=
rs are impressive!</div><div>I see you tested default Prevayler up to only =
8 threads. You might want to scale that up a bit?=A0</div><div><br></div><d=
iv>After I read your mail, I ran a prevayler scalability test, from 1 to 15=
00 threads, 20 seconds per round/</div><div>In my test setup Prevayler hand=
led 60 transactions/second @ 8 threads, but at 1489 threads, Prevayler coul=
d handle 5945 transactions / second. That&#39;s ~100 times as many. Results=
 in graph form can be found here:=A0<a href=3D"http://imgur.com/sRIaCVD" ta=
rget=3D"_blank">http://imgur.com/sRIaCVD</a></div><div><br></div><div>I wan=
ted to do a similar test with Prevayler8, but I see now I need two classes =
which I cant seem to find:=A0ByteBufferOutputStream and=A0ByteBufferInputSt=
ream. 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></d=
iv><div><br></div></div><div class=3D"gmail_extra"><br><div class=3D"gmail_=
quote">On Thu, Oct 16, 2014 at 12:13 PM, Christian Stein <span dir=3D"ltr">=
&lt;<a href=3D"mailto:[email protected]" target=3D"_blank">sormuras@gmail.=
com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"mar=
gin: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 th=
e scalability test use the=A0PrevaylerEight implementation. See [0] for the=
 outline of its source. A single-system-wide lock facade prevayler implemen=
tation is used for synchronization, at the moment.</div><div><br></div><div=
>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 threa=
ds)</li></ul></div><div><br></div><div>These microbenchmarks are, especiall=
y when the consistency checks kicks in, very garbage collection dependent. =
I had to set the=A0TransactionTestCheckConsistency to NO, because replaying=
 more the 1.000.000 transactions into the prevalent system would still be r=
unning... Ran the benchmark with=A0<span style=3D"color:rgb(0,0,0);font-fam=
ily:Consolas,Menlo,Monaco,&#39;Lucida Console&#39;,&#39;Liberation Mono&#39=
;,&#39;DejaVu Sans Mono&#39;,&#39;Bitstream Vera Sans Mono&#39;,&#39;Courie=
r New&#39;,monospace,serif;font-size:14px;line-height:17.8048000335693px;wh=
ite-space:pre-wrap;background-color:rgb(238,238,238)">-verbose:gc</span>=A0=
and saw after an hour that every 10 deserialized transactions a full GC.=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&#39;ll integrate Caliper[3] to show more details.=A0</div><div><br>=
</div><div>Cheers,</div><div>Christian</div><div><br></div><div>[0] Prevayl=
erEight.java <a href=3D"https://gist.github.com/sormuras/3fea6f6ade327b2a42=
49" target=3D"_blank">https://gist.github.com/sormuras/3fea6f6ade327b2a4249=
</a></div><div>[1] Result PrevaylerImpl=A0<a href=3D"https://gist.github.co=
m/sormuras/ef279705d5838a757964" target=3D"_blank">https://gist.github.com/=
sormuras/ef279705d5838a757964</a></div><div>[2] Result PrevaylerEight=A0<a =
href=3D"https://gist.github.com/sormuras/6f61c6af2066d5f8bf87" target=3D"_b=
lank">https://gist.github.com/sormuras/6f61c6af2066d5f8bf87</a></div><div>[=
3] Caliper <a href=3D"https://code.google.com/p/caliper/" 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>
<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><br clear=3D"all"><br>-- <br>Valeu, Klaus.
</div>

--001a11c3749e0e8be10505f4797b--


--===============1947127382225235989==
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
--===============1947127382225235989==
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

--===============1947127382225235989==--