<div dir="ltr"><div dir="ltr"><div dir="ltr">Unfortunately it isn't OSS, but there are two papers about it's architecture (one about the buffer pool, and one about using coroutines with io_uring):<div><br></div><div>- <a href="https://db.in.tum.de/~freitag/papers/p29-neumann-cidr20.pdf">p29-neumann-cidr20.pdf (tum.de)</a></div><div>- <a href="https://db.in.tum.de/~fent/papers/coroutines.pdf">https://db.in.tum.de/~fent/papers/coroutines.pdf</a></div><div><div><br></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Nov 8, 2022 at 11:16 AM Johannes Lichtenberger <<a href="mailto:lichtenberger.johannes@gmail.com">lichtenberger.johannes@gmail.com</a>> 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="ltr"><a class="gmail_plusreply" id="m_-1501255302510017753plusReplyChip-0" href="mailto:ray.gavin97@gmail.com" target="_blank">@Gavin Ray</a>, is the source code of UmbraDB somewhere available? Of course, it should possible to pad the pages to a certain predefined length if required (currently, the page fragments are word-aligned, but maybe I should also introduce a bunch of predefined buffer-classes -- should also have some advantage in regards to io_uring, for instance) :-)<div><br></div><div><a class="gmail_plusreply" id="m_-1501255302510017753plusReplyChip-1" href="mailto:maurizio.cimadamore@oracle.com" target="_blank">@Maurizio Cimadamore</a>, can you give a small example? I've never used the Linker API but will have a look into it. I'm updating the project to every new Java version, so currently using Java 19.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Am Di., 8. Nov. 2022 um 16:22 Uhr schrieb Maurizio Cimadamore <<a href="mailto:maurizio.cimadamore@oracle.com" target="_blank">maurizio.cimadamore@oracle.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
On 08/11/2022 15:12, Gavin Ray wrote:<br>
> I'm not sure how the JVM GC works, but I think that MemorySegment <br>
> allocation probably calls "malloc" somewhere down the line<br>
<br>
That's correct.<br>
<br>
Also, if you combine memory segments with the Linker API, you might <br>
"re-alloc" memory as required. E.g. keep a reference to a "current" <br>
segment, of a given size, which can be re-allocated when more size is <br>
required.<br>
<br>
Maurizio<br>
<br>
</blockquote></div>
</blockquote></div>