-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
I got my database into a release candidate: ld - a protocol buffers database
I have later started mapping the OGC WFS api at MikkelHJuul/ogc-grpc, I want to open source the WFS gRPC mappings including open api specification for the proxy server. And use this as a backing database. Having two very well-defined API boundaries for the gRPC service between the two makes for focused developer experience. I may throw in my extension library for fun. Write some demo app for it all.
I was using protoc-gen-star to define queries and structures. If you want to generate protobuf from protobuf, you'll need this fork with a decent amount of boilerplate on your end. I found it useful for things like generating protobuf to represent diffs.
Roaring bitmaps + btrees are a rock solid indexing approach. Alternatively, bleve has a lot out of the box but that's introducing a new datastore, basically.
There are a lot of modern approaches like the BW-Tree which is well documented by a Microsoft research paper. Also something like sled-db, which essentially utilizes IO_DIRECT to read straight into a buffer, skipping the page cache, and therefore the db creates it's own page cache where the live pages are actually deserialized representations of the data. There's a lot of other cool stuff, like latch free tree structure for indexing, and scattering pages across sequentially accessed logs, where the only lock required is one to ensure write order into a queue. There's a lot of neat approaches to developing performant datastorage systems for modern hardware, and LSM-Tree type storage engines like level or rocks db only scratch the surface of potential.
Nice! I've been considering learning Rust by taking a stab at something similar with it. I probably would have already if there was a fully ported s2 crate.
It's the way to go, so far as I can tell. Uber's h3 is an interesting take, but I don't think it stands up performance wise and I can imagine the complexity is a bit intense. Very cool for visuals though.
There's a Java port and bindings for Python. The go port has been a work in progress for a while and the claimed to be at about 40% done. There's a rust port but it is based off of the go port and thus not complete either.