Note that this is not just running a lib like HNSWlib or FAISS on top of database persistence. It's deeply integrated with database internals, which is also why in runs nicely with low-memory devices. The entire binary is like 3 MB, so leaves lots of resources to actual vector data and LLMs.
Interesting. Would you mind to go into details about dropping RAFT? It would make a great tech blog post imho, but maybe you could share some high level insights on that?
Related to that: have you considered extensions to the RAFT standard e.g. pipelining?
You probably don't do a lot of queries? Badger is a K/V store and has no knowledge about the value. Thus querying sucks and if you want indexing, you are on your own. Relations? Anyway, for simple caching that's probably fine.
I only see Java source code here. Is ObjectBox Java the same database code as ObjectBox Go?
EDIT: I see the 'objectbox-go' repo has a separate set of perf tests, but only for ObjectBox Go -- not either of the unnamed "NoSQL" competitors, nor for SQLite.
The initial question was about Realm, thus the link to Java. The core of ObjectBox is the same on every platform (C/C++ for maximum speed). We haven't finished the other benchmarks yet. Sorry for teasing with those. We'll be done with those soon and they will be open source.
Definitely not free and definitely no support for go. I was actually wondering how objectbox compares to versant but I quickly answered myself: objectbox is designed for low-end loads and iot stuff while versant is more geared towards big databases (ie millions of objects) and concurrent, networked access.
Anyone willing to correct me or add to this is welcome (and please do).
Note that this is not just running a lib like HNSWlib or FAISS on top of database persistence. It's deeply integrated with database internals, which is also why in runs nicely with low-memory devices. The entire binary is like 3 MB, so leaves lots of resources to actual vector data and LLMs.
AMA...