I’ve always known intuitively that graph dbs were more performant than non graph dbs for certain algos like shortest path. It wasn’t until recently that I realized that some graph dbs are “native” and some are not native, it’s the native graph dbs that give the performance boost, and IFA is the defining feature of native graph dbs. It’s worth understanding the difference between native and non-native graph dbs; there are a lot of “graph databases” that are non-native and probably don’t even deserve the name. As far as I can tell, a clear definition of graph dbs doesn’t even exist outside the context of native graph dbs.
I still don’t understand it well enough to read what you just wrote and be able to determine whether that achieves IFA or not. Building an IFA graph db from scratch (with or without a KV store) is a big endeavor. HelixDB that I mentioned earlier is funded by y-Combinator and probably still not feature rich or stable enough to use for a nostr relay.
In the long term, I’d love to see multiple native graph db nostr relay implementations. Maybe one (or more) on neo4j, one using HelixDB, maybe one that’s built on top of a completely custom native graph db. In the short term, I’ll be overjoyed to see us go from 0 to 1 native graph db nostr relay asap. Neo4j is probably the best bet for doing it quickly without reinventing the wheel, given its long track record and wide user base. And the sooner we can get that first one going, the sooner we can motivate people to build out more!
Login to reply
Replies (1)
Indeed. That's why I made a driver. I'm not likely to beat neo4j with a hand rolled version any time soon.
I spent 2 days trying to implement the signature optimization libsecp256k1 uses, and failed. But I did at least implement 64bit limbs. Fastest pure go signature library,
has it, I just popped it and all general purpose nostr libraries. They are stable now, and optimized to the gills.
I love that stuff but I can't make progress on it without a lot less business to attend to. So for now, I'll just use the best in class when I can.
git.mleku.dev
nostr
a simple, highly optimized set of encoders for nostr events, filters, and associated helpers. includes AVX SIMD accelerated hex encoding, matching ...