tl;dr - we spent a lot of time steadying the ship. Dgraph has been through three major leadership changes and, frankly, operations were in very rough shape. Now things are much better and a major release is coming this quarter!
We spent a significant amount of effort toward getting Dgraph’s business and product fundamentals right. This included reducing burn/inefficiencies, securing new (unannounced) funding, improving underlying infra cost/reliability, and selecting the right team of engineers to dedicate full-time to Dgraph’s OS projects and commercial products. We also added a handful of large customers, which goes a long way in ensuring a bright future for Dgraph as a whole.
The fundamental promise of any database is reliability. As a result of the team’s effort, Dgraph Cloud is more stable than ever. We modernized most of the underlying infra and ensured that all GA releases of Dgraph will be available on Dgraph Cloud the same day.
This was no small effort and it means that we fell short of what I hoped we’d accomplish in Q1 in terms of enhancing Dgraph. But we’ve stabilized the ship and we’re nearly through our “back to basics” push. We’re now at a point we can start introducing new enhancements.
Here’s what the Community can expect from Dgraph in Q2:
-
Vector Support. Alpha release is this Friday; GA is expected in May as part of v24.
-
Maintenance update(s) for performance and usability improvements starting with v24 (notably an upgrade from Golang 1.19 to 1.22).
-
Embrace external contributions (PRs).
Thank you to the community for your continued support. Those who have messaged me here or via email/Linkedin/etc. the direct feedback is appreciated and helpful for keeping me focused on what’s most important to this community.
If you’d like to give feedback on these plans, please read the expanded details below that I pulled together with the team:
Vector Support
The biggest and most impactful change in v24 will be the inclusion of vector support. The Alpha will be released this Friday (April 5, 2024). We believe the future of technology will be “AI-augmented” and we want Dgraph to be a meaningful part of that future.
Dgraph will support vector-based similarity searches, which surface inferred links and recommendations. To do this, Dgraph will support a new vfloat type, dot-product and related math operators, import/export and RDF representations of float arrays, and a tunable HNSW (hierarchical, navigable, small-world) index option for vfloat fields. As you would expect in Dgraph, the GraphQL APIs that are auto-generated from a minimal GraphQL schema will include similarity search functions, based on both externally computed embeddings, and the UIDs of existing entities. This unlocks a number of graph+vector use cases with RAG-based LLM queries.
This Friday’s Alpha will come with a blog post and we look forward to early adopter feedback in GitHub. Assuming all goes well in the Alpha, the GA release will occur in May as part of Dgraph v24 (to be followed closely by Hypermode’s first public releases).
Maintenance update(s)
Dgraph v24 will have numerous performance and performance tuning improvements. The largest of these is an update to how caching is performed in Badger. It will vastly reduce cache invalidations to prevent expensive re-computation of internal data structures (reducing value conversion to posting lists, for those familiar with Dgraph internals). This eliminates CPU and memory management bottlenecks that can occur with some usage profiles.
Related to performance, v24 will be compiled using Golang v1.22, which includes better garbage collection and more complete monitoring, particularly around how mutex delays are monitored.
Various smaller improvements and fixes are also coming with v24, including code optimizations for simple ID-based get operations in GraphQL, the ability to update or alter ID fields, and other items that will be detailed at release time in the release notes.
We’re on track to put out a release candidate for v24 in the next 2-4 weeks.
Embrace external contributions.
Our release cadence going forward will be to put out a maintenance release with new fixes and improvements at least once per quarter.
Going forward we’re going to embrace our external contributors. To start, we’ll review all existing PRs for inclusion. We have a large backlog, so most of Q2 will be about catching up. We’ll work with you to identify the top-priority PRs and merge them after the v24 GA release in May. We’ll review and merge (as appropriate) at least quarterly.
Thank you to everyone who has made changes and contributions. If you have particular PRs you would like to see in Dgraph, please let us know, plus any context about that PR that will be helpful.