frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

OpenCiv3: Open-source, cross-platform reimagining of Civilization III

https://openciv3.org/
377•klaussilveira•4h ago•81 comments

The Waymo World Model

https://waymo.com/blog/2026/02/the-waymo-world-model-a-new-frontier-for-autonomous-driving-simula...
742•xnx•10h ago•456 comments

Monty: A minimal, secure Python interpreter written in Rust for use by AI

https://github.com/pydantic/monty
112•dmpetrov•5h ago•49 comments

Show HN: Look Ma, No Linux: Shell, App Installer, Vi, Cc on ESP32-S3 / BreezyBox

https://github.com/valdanylchuk/breezydemo
132•isitcontent•5h ago•13 comments

Show HN: I spent 4 years building a UI design tool with only the features I use

https://vecti.com
234•vecti•7h ago•112 comments

Dark Alley Mathematics

https://blog.szczepan.org/blog/three-points/
21•quibono•4d ago•0 comments

Microsoft open-sources LiteBox, a security-focused library OS

https://github.com/microsoft/litebox
302•aktau•11h ago•150 comments

Sheldon Brown's Bicycle Technical Info

https://www.sheldonbrown.com/
302•ostacke•10h ago•80 comments

Show HN: If you lose your memory, how to regain access to your computer?

https://eljojo.github.io/rememory/
156•eljojo•7h ago•117 comments

Hackers (1995) Animated Experience

https://hackers-1995.vercel.app/
375•todsacerdoti•12h ago•214 comments

A century of hair samples proves leaded gas ban worked

https://arstechnica.com/science/2026/02/a-century-of-hair-samples-proves-leaded-gas-ban-worked/
52•jnord•3d ago•3 comments

An Update on Heroku

https://www.heroku.com/blog/an-update-on-heroku/
301•lstoll•11h ago•227 comments

Show HN: R3forth, a ColorForth-inspired language with a tiny VM

https://github.com/phreda4/r3
42•phreda4•4h ago•7 comments

I spent 5 years in DevOps – Solutions engineering gave me what I was missing

https://infisical.com/blog/devops-to-solutions-engineering
100•vmatsiiako•9h ago•33 comments

How to effectively write quality code with AI

https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/
165•i5heu•7h ago•122 comments

Learning from context is harder than we thought

https://hy.tencent.com/research/100025?langVersion=en
136•limoce•3d ago•75 comments

FORTH? Really!?

https://rescrv.net/w/2026/02/06/associative
35•rescrv•12h ago•17 comments

Understanding Neural Network, Visually

https://visualrambling.space/neural-network/
223•surprisetalk•3d ago•29 comments

I now assume that all ads on Apple news are scams

https://kirkville.com/i-now-assume-that-all-ads-on-apple-news-are-scams/
951•cdrnsf•14h ago•411 comments

PC Floppy Copy Protection: Vault Prolok

https://martypc.blogspot.com/2024/09/pc-floppy-copy-protection-vault-prolok.html
7•kmm•4d ago•0 comments

Introducing the Developer Knowledge API and MCP Server

https://developers.googleblog.com/introducing-the-developer-knowledge-api-and-mcp-server/
7•gfortaine•2h ago•0 comments

I'm going to cure my girlfriend's brain tumor

https://andrewjrod.substack.com/p/im-going-to-cure-my-girlfriends-brain
28•ray__•1h ago•4 comments

The Oklahoma Architect Who Turned Kitsch into Art

https://www.bloomberg.com/news/features/2026-01-31/oklahoma-architect-bruce-goff-s-wild-home-desi...
17•MarlonPro•3d ago•2 comments

Show HN: Smooth CLI – Token-efficient browser for AI agents

https://docs.smooth.sh/cli/overview
76•antves•1d ago•56 comments

Claude Composer

https://www.josh.ing/blog/claude-composer
94•coloneltcb•2d ago•67 comments

Evaluating and mitigating the growing risk of LLM-discovered 0-days

https://red.anthropic.com/2026/zero-days/
31•lebovic•1d ago•11 comments

Show HN: Slack CLI for Agents

https://github.com/stablyai/agent-slack
36•nwparker•1d ago•7 comments

How virtual textures work

https://www.shlom.dev/articles/how-virtual-textures-really-work/
22•betamark•12h ago•22 comments

Masked namespace vulnerability in Temporal

https://depthfirst.com/post/the-masked-namespace-vulnerability-in-temporal-cve-2025-14986
31•bmit•6h ago•3 comments

Evolution of car door handles over the decades

https://newatlas.com/automotive/evolution-car-door-handle/
38•andsoitis•3d ago•61 comments
Open in hackernews

Bf-Tree: modern read-write-optimized concurrent larger-than-memory range index

https://github.com/microsoft/bf-tree
143•SchwKatze•1w ago

Comments

0xdeafbeef•1w ago
I've tested with wal enabled, got deadlock several times, so looks raw for now
heliumtera•1w ago
I think a fair comparison would be against a whitepaper? Clearly this is an exploratory venture and not production grade software.

You managed to clone the repo an run your test by yourself, whatever the outcome is this is a plus against the standard model for scientific research.

Also, a breath of fresh air among every other show HN thread using hundreds of adjectives to describe the "behavior" of a fully vibed system. I think this is a good model for presenting engineering projects.

SchwKatze•1w ago
> You managed to clone the repo an run your test by yourself, whatever the outcome is this is a plus against the standard model for scientific research.

That's so true, which is kinda funny since one of the cornerstone of scientific thinking is reproducibility.

IMHO they're using the best tool for this, nix.

algorithmsRcool•1w ago
I get excited every time I see a paper from Bradish. I've learned so much about high performance software from studying systems that he has worked on. (not to diminish his many co-authors and contributors)

Some of his other projects:

[0] https://github.com/microsoft/garnet [1] https://github.com/microsoft/FASTER [2] https://github.com/microsoft/Trill

reactordev•1w ago
You should check out Microsoft Orleans

https://github.com/dotnet/orleans

algorithmsRcool•1w ago
I am very familiar with it! My current project at work is taking an Orleans based payment processing system to production
reactordev•1w ago
Nice!!

I’ve only played with it at scale and haven’t had the balls to do production with it. We are still heavily reliant on our k8s stack but I want to go bare metal with Orleans.

the_arun•1w ago
Minor typo. Author's name is - Badrish.
tombert•1w ago
Interesting. I've been on/off working on something, though it's an append-only hash index thing (based on Erlang's Bitcask): https://git.sr.ht/~tombert/feocask

I haven't done any benchmarks on it yet so I have no idea how well it performs, but I have a very strict "no explicit lock" policy, so everything is handled with separate files with a reconciliation service that uses a vector clock to determine ordering.

NOTE: A lot of this is AI-assisted, treat what I have written as more of a whiteboard proof of concept. I'm in the process of rewriting it by hand to do some more aggressive optimizations.

koverstreet•1w ago
No multithreaded write benchmarks. That's a major omission, given that's where you'll see the biggest difference between b-trees and LSM trees.

The paper also talks about the overhead of the mapping table for node lookups, and says "Bf-Tree by default pins the inner nodes in memory and uses direct pointer addresses to reference them. This allows a simpler inner node implementation, efficient node access, and reduced con- tention on the mapping table".

But you don't have to pin nodes in memory to use direct pointer lookups. Reserve a field in your key/value pair for a direct in-memory pointer, and after chasing it check that you got the node you expect; only fall back to the mapping table (i.e. hash table of cached nodes) if the pointer is uninitialized or you don't get the node you expect.

"For write, conventional B-Tree performs the worst, as a single record update would incur a full page write, as evidenced by the highest disk IO per operation."

Only with a random distribution, but early on the paper talks about benchmarking with a Zip-f distribution. Err?

The benchmark does look like a purely random distribution, which is not terribly realistic for most use cases. The line about "a single record updating incurring a full page write" also ignores the effect of cache size vs. working set size, which is a rather important detail. I can't say I trust the benchmark numbers.

Prefix compression - nice to see this popping up.

"hybrid latching" - basically, they're doing what the Linux kernel calls seqlocks for interior nodes. This is smart, but given that their b-tree implementation doesn't use it, you shouldn't trust the b-tree benchmarks.

However, I found that approach problematic - it's basically software transactional memory, with all the complexity that implies, and it bleeds out into too much of the rest of your b-tree code. Using a different type of lock for interior nodes where read locks only use percpu counters gives the same performance (read locks touch no cachelines shared by other CPUs) for much lower complexity.

Not entirely state of the art, and I see a lot of focus on optimizations that likely wouldn't survive in a larger system, but it does look like a real improvement over LSM trees.

fuzzybear3965•1w ago
Sure, but on principle, looking at the paper, I'd expect it to outperform B-trees since write amplification is reduced, generally. You thinking about cases requiring ordering of writes to a given record (lock contention)?
koverstreet•1w ago
I think their claims of write amplification reduction are a bit overstated given more realistic workloads.

It is true that b-trees aren't ideal in that respect, and you will see some amount of write amplification, but not enough that it should be a major consideration, in my experience

You really have to take into account workingset size and cache size to make any judgements there; your b-tree writes should be given by journal/WAL reclaim, which will buffer up updates.

A purely random update workload will kill a conventional b-tree on write amplification - like I mentioned, that's the absolute worst case scenario for a b-tree. But it just doesn't happen in the real world.

For the data I can give you, that would be bcachefs's hybrid b-tree - large btree nodes (256k, typically) which are internally log structured; I would consider it a minor variation on a classical b-tree. The log structuring mean that we can incrementally write only the dirty keys in a node, at the cost of some compaction overhead (drastically less than a conventional LSM).

In actual real world usage, when I've looked at the numbers (not recently, so this may have changed) we're always able to do giant highly efficient b-tree writes - the journal and in-memory cache are batching things up as much as we want - which means write amplification is negligible.

fuzzybear3965•1w ago
Of course mileage may vary with different workloads, but are there any good benchmarks/suites to use for comparison in cases like these? They used YCSB but I don't know if those workloads ([1]) are relevant to modern/typical access patterns nor if they're applicable to SQL databases.

You thinking about running some benchmarks in a bcachefs branch (:pray:)?

I want to see this data structure prototyped in PostgreSQL.

[1]: https://github.com/brianfrankcooper/YCSB/tree/master/workloa...

koverstreet•1w ago
I've got microbenchmarks for the bcachefs btree here: https://evilpiepirate.org/git/bcachefs.git/tree/fs/bcachefs/...

They're ancient, I only have pure random and sequential benchmarks - no zipf distribution, which really should be included.

Feel free to play around with them if you want :) I could even find the driver code, if you want.

I've always been curious about PostgreSQL's core b-tree implementation. I ran into a PostgreSQL developer at a conference once, and exchanged a few words that as I recall were enough to get me intrigued, but never learned anything about it.

In a system as big, complex and well optimized as either bcachefs or postgres, the core index implementation is no longer the main consideration - there's layers and layers, and the stuff that's fun to optimize and write paper about eventually gets buried (and you start thinking a lot more about how to lay out your data structures and less about optimizing the data structures themselves).

But you know in something like that there's going to be some clever tricks, that few people know about or even remember anymore :)

SchwKatze•1w ago
I think a better candidate to prototype would be SQLite, at least to have a better sense of how would bf-tree behave on real world
namibj•1w ago
Also you can use dense B+-Trees for reads possibly with some bloom filters or the like if you expect/profile a high fraction of negative lookups, use LSM to eventually compact, and get both SSD/ZNS friendly write patterns as well as full freedom to only compact a layer once it's finer state is no longer relevant to any MVCC/multi-phase-commit schemes. Being able to e.g. run a compression algorithm until you just exceed the storage page size, take it's state from just before it exceeded, and begin the next bundle with the entry that made you exceed the page size.... It's quite helpful when storage space or IO bandwidth is somewhat scarce.

If you're worried about the last layer being a giant unmanageably large B+-Tree, just shard it similarly in key space to not need much free temporary working space on SSD to stream the freshly compacted data to while the inputs to the compaction still serve real time queries.

Retr0id•1w ago
If anyone else was wondering,

> The ‘f’ in Bf-Tree stands for “faster”

dacapoday•1w ago
Why not add an LSM memtable on top of the cow b+ tree? Use the skiplist as a write buffer and write to the b+ tree in batches when the skiplist is frozen.
0xdeafbeef•1w ago
Bftree solves one non-obvious pain point - caching when your data set is random (the key is a hash) and the data is smaller than the page size. LSM reads are based on block size; same with caching. So if your record is 8 bytes, you end up caching the remaining ~4 KB, and the hit rate will be pretty low.
yxhuvud•1w ago
Was the link changed? Right now it points to the github page, and it doesn't really say why anyone would care about it.
pgwhalen•1w ago
The top of the readme links to the accompanying paper, which explains very clearly why you would care: https://badrish.net/papers/bftree-vldb2024.pdf

I admit I’ll agree that that extra hop was a little confusing to me though. I guess people just like GitHub and don’t like PDFs.

SchwKatze•1w ago
That's on me, I thought it would receive the attention it deserves if people jump straight into the code (and see the "written in Rust btw").