[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cassandra-dev
Subject:    Re: Agrona vs fastutil and fastutil-concurrent-wrapper
From:       Aleksey Yeshchenko <aleksey () apple ! com>
Date:       2023-05-26 11:24:58
Message-ID: D6E7BC17-1C9F-4414-B275-A73FA4099285 () apple ! com
[Download RAW message or body]

This ^

It's an absolutely beautifully written library by Martin Thompson, my go-to for years \
if I'm ever asked for an example of a Java codebase to study. I have read it \
essentially entirely, and more than once, and it makes me feel a little happier but \
also inadequate every time I do.

It doesn't have concurrent primitive collections though. We can use fastutils for \
that over stock CHM and boxing and friends if we deem it to be trustworthy enough.

P.S. FWIW we also have a long-keyed NBHM via jctools dependency - \
NonBlockingHashMapLong, if that's all we need.

> On 25 May 2023, at 21:05, Benedict <benedict@apache.org> wrote:
> 
> Nope, my awareness of Agrona predates Branimir's proposal, as does others. Aleksey \
> intended to propose its inclusion beforehand also. 
> If all we're getting is lock striping, do we really need a separate library?
> 
> > On 25 May 2023, at 19:33, Jonathan Ellis <jbellis@gmail.com> wrote:
> > 
> > 
> > Let's not fall prey to status quo bias, nobody performed an exhaustive analysis \
> > of agrona in November.  If Branimir had proposed fastutils at the time that's \
> > what we'd be using today. 
> > 
> > 
> > On Thu, May 25, 2023 at 10:50 AM Benedict <benedict@apache.org \
> > <mailto:benedict@apache.org>> wrote:
> > > Given they provide no data or explanation, and that benchmarking is hard, I'm \
> > > not inclined to give much weight to their analysis. 
> > > Agrona was favoured in large part due to the perceived quality of the library. \
> > > I'm not inclined to swap it out without proper evidence the fastutils is both \
> > > materially faster in a manner care about and of similar quality. 
> > > > On 25 May 2023, at 16:43, Jonathan Ellis <jbellis@gmail.com \
> > > > <mailto:jbellis@gmail.com>> wrote: 
> > > > 
> > > > Try it out and see, the only data point I have is that the company who has \
> > > > spent more effort here than anyone else I could find likes fastutil better. 
> > > > On Thu, May 25, 2023 at 10:33 AM Dinesh Joshi <djoshi@apache.org \
> > > > <mailto:djoshi@apache.org>> wrote:
> > > > > > On May 25, 2023, at 6:14 AM, Jonathan Ellis <jbellis@gmail.com \
> > > > > > <mailto:jbellis@gmail.com>> wrote: 
> > > > > > Any objections to adding the concurrent wrapper and switching out agrona \
> > > > > > for fastutil?
> > > > > 
> > > > > How does fastutil compare to agrona in terms of memory profile and runtime \
> > > > > performance? How invasive would it be to switch?
> > > > 
> > > > 
> > > > -- 
> > > > Jonathan Ellis
> > > > co-founder, http://www.datastax.com <http://www.datastax.com/>
> > > > @spyced
> > 
> > 
> > -- 
> > Jonathan Ellis
> > co-founder, http://www.datastax.com <http://www.datastax.com/>
> > @spyced


[Attachment #3 (unknown)]

<html><head><meta http-equiv="content-type" content="text/html; \
charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: \
space; line-break: after-white-space;">This ^<div><br></div><div>It's an absolutely \
beautifully written library by Martin Thompson, my go-to for years if I'm ever asked \
for an example of a Java codebase to study. I have read it essentially entirely, and \
more than once, and it makes me feel a little happier but also inadequate every time \
I do.</div><div><br></div><div>It doesn't have concurrent primitive collections \
though. We can use fastutils for that over stock CHM and boxing and friends if we \
deem it to be trustworthy enough.</div><div><br></div><div>P.S. FWIW we also have a \
long-keyed NBHM via jctools dependency -&nbsp;NonBlockingHashMapLong, if that's all \
we need.</div><div><div><br><blockquote type="cite"><div>On 25 May 2023, at 21:05, \
Benedict &lt;benedict@apache.org&gt; wrote:</div><br \
class="Apple-interchange-newline"><div><meta http-equiv="content-type" \
content="text/html; charset=utf-8"><div dir="auto"><div dir="ltr"></div><div \
dir="ltr">Nope, my awareness of Agrona predates Branimir's proposal, as does others. \
Aleksey intended to propose its inclusion beforehand also.</div><div \
dir="ltr"><br></div><div dir="ltr">If all we're getting is lock striping, do we \
really need a separate library?</div><div dir="ltr"><br><div \
dir="ltr"></div><blockquote type="cite">On 25 May 2023, at 19:33, Jonathan Ellis \
&lt;jbellis@gmail.com&gt; wrote:<br><br></blockquote></div><blockquote \
type="cite"><div dir="ltr"><div dir="ltr"><div>Let's not fall prey to status quo \
bias, nobody performed an exhaustive analysis of agrona in November.&nbsp; If \
Branimir had proposed fastutils at the time that's what we'd be using \
today.</div><div><br><br></div></div><br><div class="gmail_quote"><div dir="ltr" \
class="gmail_attr">On Thu, May 25, 2023 at 10:50 AM Benedict &lt;<a \
href="mailto:benedict@apache.org" target="_blank">benedict@apache.org</a>&gt; \
wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div \
dir="ltr"></div><div dir="ltr">Given they provide no data or explanation, and that \
benchmarking is hard, I'm not inclined to give much weight to their \
analysis.</div><div dir="ltr"><br></div><div dir="ltr">Agrona was favoured in large \
part due to the perceived quality of the library. I'm not inclined to swap it out \
without proper evidence the fastutils is both materially faster in a manner care \
about and of similar quality.</div><div dir="ltr"><br><div \
dir="ltr"></div><blockquote type="cite">On 25 May 2023, at 16:43, Jonathan Ellis \
&lt;<a href="mailto:jbellis@gmail.com" target="_blank">jbellis@gmail.com</a>&gt; \
wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><div \
dir="ltr">Try it out and see, the only data point I have is that the company who has \
spent more effort here than anyone else I could find likes fastutil \
better.<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On \
Thu, May 25, 2023 at 10:33 AM Dinesh Joshi &lt;<a href="mailto:djoshi@apache.org" \
target="_blank">djoshi@apache.org</a>&gt; wrote:<br></div><blockquote \
class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex">&gt; On May 25, 2023, at 6:14 AM, Jonathan Ellis \
&lt;<a href="mailto:jbellis@gmail.com" target="_blank">jbellis@gmail.com</a>&gt; \
wrote:<br> &gt; <br>
&gt; Any objections to adding the concurrent wrapper and switching out agrona for \
fastutil?<br> <br>
How does fastutil compare to agrona in terms of memory profile and runtime \
performance? How invasive would it be to switch?</blockquote></div><br \
clear="all"><br><span>-- </span><br><div dir="ltr"><div dir="ltr"><div>Jonathan \
Ellis<br>co-founder, <a href="http://www.datastax.com/" \
target="_blank">http://www.datastax.com</a><br>@spyced<br></div></div></div> \
</div></blockquote></div></blockquote></div><br clear="all"><br><span>-- \
</span><br><div dir="ltr"><div dir="ltr"><div>Jonathan Ellis<br>co-founder, <a \
href="http://www.datastax.com/" \
target="_blank">http://www.datastax.com</a><br>@spyced<br></div></div></div> \
</div></blockquote></div></div></blockquote></div><br></div></body></html>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic