I‘m amazed about the advertised performance and overall architecture, but a little afraid that they written roughly 20% of their stack in assembly. Is this maintainable?
We are planning on supporting more architectures, most notably ARM SVE2 (hopefully within months) and potentially RISC-V as well.
Golang actually makes it easy to integrate multiple architectures in a single code base, so we’ll take advantage of that.
The low level primitives (about 250 right now) are all tested very extensively individually as separate building blocks. There is a simple “calling convention” (all based on registers, both Z for data and K for control).
Effectively we are stichting them together as the result of parsing the SQL statement and this then become the “bytecode” program that executes the query.
We will have a blog out shortly describing this in more detail.
(disclaimer: Sneller founder here).
I don’t see any architecture docs or anything on the blog, I would be interested to know how it actually works.
Sneller founder here: We will have a blog out shortly describing in detail how the bytecode engine works