mrjn
Before Egres, I was the founder of Dgraph -- author of Dgraph and Badger. ex-Google, ex-Uber. So, been working on databases for a while now. The idea for Egres all started with a question: "“What would Postgres look like if it were to be designed today?” After years of pondering and a year of work, the result is Egres.
For Egres, I built a new storage engine called zdb, which is pioneering LSM forest concept -- a tree of LSM trees. zdb can run on local disk or object storage, has native roaring bitmaps integration, can do instant zero-copy branches for database or table.
All of this runs on a custom co-routine system I built called zfiber, so all queries execute on that. Egres meters CPU ticks, disk IOPS and memory used per query, per tenant, so it can run thousands of tenants on the same server without noisy neighbor problem.
This release is single node and the query ability is limited to equality (no joins) queries only. Raft replication is already baked in, future releases would allow multi-node clusters.
Egres is open source under Apache 2.0, the GitHub repo is here: https://github.com/manishrjain/egres.
Would love to know your thoughts, and which features to prioritize getting into next release.
Before Egres, I was the founder of Dgraph -- author of Dgraph and Badger. ex-Google, ex-Uber. So, been working on databases for a while now. The idea for Egres all started with a question: "“What would Postgres look like if it were to be designed today?” After years of pondering and a year of work, the result is Egres.
For Egres, I wrote a new storage engine called zdb, which is pioneering LSM forest concept -- a tree of LSM trees. zdb can run on local disk or object storage, has native roaring bitmaps integration, can do instant zero-copy branches for database or table.
All of this runs on a custom co-routine system I wrote called zfiber, so all queries execute on that. Egres meters CPU ticks, disk IOPS and memory used per query, per tenant, so it can run thousands of tenants on the same server without noisy neighbor problem.
This release is single node, but Raft replication is already baked in. Future releases would allow multi-node clusters.
Install: curl -fsSL https://egresql.io/install.sh | sh. Repo: https://github.com/manishrjain/egres.
Would love to know your thoughts, and which features to prioritize getting into next release.
Show HN: Egres: A Postgres-compatible database for heavy, multi-tenant workloads
Show HN: Zroar – Serialized Roaring Bitmaps in Zig
https://github.com/manishrjain/zroar
zroar is a ground-up implementation of Roaring Bitmaps data structure in Zig. zroar stores both the keys and (array, bitmap) containers in a single flat byte buffer, making the in-memory representation equal to the on-disk or over-the-network representation, eliminating the serialization/deserialization step entirely.The design was originally aimed at systems which keep their posting lists on...
Show HN: Brisk – Buy vs. Rent/Sell vs. Keep calculator tracking opportunity cost
Most buy vs rent calculators compare your mortgage payment to rent, factor in appreciation, and call it a day. But they ignore what happens to your downpayment if you don't buy—that $200K+ could go into index funds instead. S&P 500 has averaged ~14.5% over the last 15 years vs ~4% for housing. That difference compounds significantly.And almost no calculators address the sell vs keep...
https://blog.discourse.org/2018/06/understanding-discourse-t...
It's a SaaS. Over the next few months, we'll be going through the SOC2 compliance process.
Will update the footer, thanks for catching.
We'd surely look into Teams integration at some point. Though, I'm not sure how many takers would be there for Teams/Struct integration. My perception is that Teams users tend to be medium-to-large businesses who are tied to Microsoft Office, and would be very hard to sell to. I might be wrong.
Though, you do have to abide by Metcalfe's law. Most modern work happens in teams and therefore, you have to pay the price of O(N^2) communication, where N = size of the team.
I don't see communication decreasing overall. We just have to use the right tools to be more effective at it.
Hope to get that .com domain someday :-).
I'll get the FE dev to look at the too many redirects issue. Seems strange. Does it open fine on your Edge browser: https://app.struct.ai?
Struct's feed system is naturally designed to surface latest, unread conversations. So even if when I've been away for days, I just come back and go thread by thread, like cleaning an inbox. It's a lot smoother system, and you miss nothing.
We don't have an exporter yet, but can surely put one together which provides a SQL / CSV formatted output (or whatever works best for users). We would never charge for exports.
So, we're starting off from that point. Let's take real-time chat platforms, and reimagine how we can make them more efficient. More useful. Less noisy. That's the idea for Struct.
The list of people we email is different from the list of people we chat with. In a team, that means, team comms happen on chat platform. And external comms happen on emails. Within a team using a chat platform, it's unlikely that people would chat, and then say, hold on, let me send you an email. If that happens, that's very rare.
What's a lot more likely is you jump from a chat conversation into a video call. Hence, the need for a nice integration with video service (like Slack has huddle).
So, for a certain set of people (your team or community), you're going to use the chat platform. And therefore, the chat platform should be built to enable conversations with good retrieval and focus -- so it can be used for complex conversations. Struct hits that pretty well.
Or, you can jump in here and we can have a discussion: https://chat.struct.ai/join/DXVTmseDdBkeA6mG
Could also be the model that they were using. I've tried a few and found GPT4 to be most accurate. GPT4-Turbo is still a question mark.
So, you know, every forum, including email, has threads and feed. But, forums are asynchronous, not designed around real-time chat. The challenge when applying concept of threads and feeds to a chat platform is that you need to make it real-time. And that's the hard thing that Struct is tackling -- with the real-time feed design that we have.
I disagree a bit about, "if it's chat, it doesn't need summary". I've been part of enough conversations which go on and on, to know that's not true. Even with the small team we run, we have threads which have like 100s of chat messages, going back and forth. Having summaries really help.
Or, at the very least, you'd appreciate the titles, so your feed would make more sense.
You can structure your threads using tags, and create feed around those tags. That'd be the equivalent of "folders". (Reminds me of when Gmail came out and people had to learn to map their labels on SMTP folders)
The difference in a Struct thread, v/s say a Discourse thread would be this. Struct emphasizes short form, real-time, back and forth communication. Discourse emphasizes long form, well-thought through, one-off posts. Former is chat, latter is forum.
This is long topic, but something I think about a lot. Designing Struct is hard exactly because of this balance between structure, knowledge and being real-time.
I like OpenAI. GPT4 works really well. Some others we tried were cheaper, but the quality wasn't as good.