readyset
genSQL
readyset | genSQL | |
---|---|---|
24 | 3 | |
3,882 | 1 | |
1.7% | - | |
9.8 | 3.0 | |
6 days ago | about 2 months ago | |
Rust | Python | |
GNU General Public License v3.0 or later | Mozilla Public License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
readyset
-
Ask HN: How Can I Make My Front End React to Database Changes in Real-Time?
- Some platforms like Supabase Realtime [3] and Firebase offer subscription models to database changes, but these solutions fall short when dealing with complex queries involving joins or group-bys.
My vision is that the modern frontend to behave like a series of materialized views that dynamically update as the underlying data changes. Current state management libraries handle state trees well but don't seamlessly integrate with relational or graph-like database structures.
The only thing I can think of is to implement it by myself, which sounds like a big PITA.
Anything goes, Brainstorm with me. Is it causing you headaches as well? Are you familiar with an efficient solution? how are you all tackling it?
[1] https://readyset.io/
-
FLaNK Stack 26 February 2024
Postgresql + MySQL Cache https://github.com/readysettech/readyset
-
Readyset: A MySQL and Postgres wire-compatible caching layer
I just wanted to give a high five for having Jepsen tests for this: https://github.com/readysettech/readyset/tree/stable-240117/...
-
Fine-grained caching strategies of dynamic queries
This example is a great use case for partial incremental view maintenance systems like ReadySet: you automatically get something like the “prepopulating the cache” section (toward the end of the blog) while only caching the data the application is using, and avoiding the need to manually implement any sort of invalidation logic.
(Disclaimer: I used to work for them, but don’t anymore. It’s all available for free on GitHub though for anyone interested: https://github.com/readysettech/readyset)
-
Squeeze the hell out of the system you have
There are systems that will do that for you like https://readyset.io/.
-
Production grade databases in Rust
ReadySet
-
Dozer: A scalable Real-Time Data APIs backend written in Rust
readyset.io is the company that jonhoo was associated with for work on noria
-
I'm building Memories, a FOSS alternative to Google Photos with a focus on UX and performance
Might be interesting to try out https://readyset.io for this use case.
- Materialized View: SQL Queries on Steroids
-
Tips on scaling a monolithic Rust web server?
On the caching topic, I found the ReadySet(né Noria) approach to be extremely interesting.
genSQL
-
Squeeze the hell out of the system you have
If you’re limited in RAM and can’t upsize, then yes, this does appear to be a good trade off. You can always refactor later and normalize if necessary.
BTW, although it wouldn’t have helped for your specific benchmark schema creation of TYPES, I’ll plug my genSQL tool [0] for generating random data. It’s primarily designed around MySQL, but it can produce CSVs easily, which every DB can load.
Turns out a lot of random() calls in most languages is slow af, so mine avoids that by (mostly) batching them in a C library. Should be able to create a million somethings in under 10 seconds on modern hardware in Python 3.11.
[0]: https://github.com/stephanGarland/genSQL
-
Any Linux admins willing to try Pygrep?
Oh yes, absolutely. I ran into a similar problem with a project I'm working on, and I had a conditional that would only import numpy if it already existed. Then again, mine wasn't something you'd call all the time, so the slowdown was worth it. Ultimately, I wound up using a C library to allocate the array (and to shuffle the ints), but it's worth noting that this is an array of uint32_t, and I'm not performing any regexes on them.
What are some alternatives?
materialize - The data warehouse for operational workloads.
citus - Distributed PostgreSQL as an extension
noria - Fast web applications through dynamic, partially-stateful dataflow
ack3 - ack is a grep-like search tool optimized for source code.
singleflight - Rust port of Go's singleflight package
pygrep - python string and regex search
chiselstrike - ChiselStrike abstracts common backends components like databases and message queues, and let you drive them from a convenient TypeScript business logic layer
googleapis - Public interface definitions of Google APIs.
reactfire - Hooks, Context Providers, and Components that make it easy to interact with Firebase.
NextCloudPi - 📦 Build code for NextcloudPi: Raspberry Pi, Odroid, Rock64, curl installer...
pgrx - Build Postgres Extensions with Rust!
dark - Darklang main repo, including language, backend, and infra