Umbra: Databases as compiled C shared objects
DatabaseComments
The zero-copy performance sounds great on paper, but I wonder how much of that is lost when you actually have to sanitize and format raw data into a C-compatible structure before compiling.
It is essentially a fancy wrapper for hard-coding constants into a header file. The performance gain is just the removal of a filesystem syscall.
If the data is cleaned during the compilation phase, it might actually be more efficient. The overhead would shift from the runtime to the build pipeline, which is usually a preferred trade-off.
This feels different if you think about the local-first trend... like SyncKit... what if this is meant for shipping pre-baked datasets inside a client app instead of a central server?
Regarding the use of shaders for queries, are they leveraging specific GPU compute primitives for the parallel scans, or is this primarily to utilize the memory bandwidth of the graphics card?
The recompilation is a fair concern, but for things like static geography data or fixed product catalogs, this could be a huge win since those files almost never change.
It is not even a database at that point. It is just a binary asset pipeline. Why are we still calling this a database when it is basically a specialized DLL?