Advertisement · 728 × 90

Posts by Pekka Enberg

Preview
Latency - Pekka Enberg Practical techniques for delivering low latency software.

@penberg.org's book on Latency with @manning.com is incredibly detailed! Covering latency in all its forms, and real practical approaches to reduce or minimize its impact. Brought me back to writing about event loops for Reactive Java with @cescoffier.bsky.social

shortener.manning.com/X1ME

1 month ago 6 2 1 0

Thank you for the kind words, Ken!

1 month ago 2 0 0 0

Many of the the lessons learned at @scylladb.com!

6 months ago 9 0 0 0
Preview
Learn WebAssembly Take your programming skills to the next level with this comprehensive, code-first, and hands-on WebAssembly course - the ultimate gateway to mastering the fundamentals of this revolutionary technolog...

🚀 Thrilled to announce my interactive #WebAssembly course!

Learn WebAssembly from the ground up with:

🔍 Custom-built debugger & VM
📊 Live stack & memory insights
💻 Hands-on exercises
🛠️ Build real projects

Level up with WebAssembly! ✨

👉 learn-wasm.dev

1 year ago 138 35 13 13
Preview
Turso is hiring a Senior Platform Engineer Join Turso as a Senior Platform Engineer and help scale our distributed database infrastructure.

We at @tur.so are hiring for a Platform Engineer position.

If you battled Kubernetes and lived to tell the story, and is a decent coder in Go (and maybe Rust), this position is for you.

Location agnostic, but must be in the US timezone.

turso.tech/careers/seni...

1 year ago 15 7 1 1
Preview
Introducing Limbo: A complete rewrite of SQLite in Rust we forked SQLite with the libSQL project. What would it be like if we just rewrote it?

Today we have decided to make @penberg.org 's experimental project, an official Turso project, following its great success.

What if instead of just forking SQLite, we were to completely rewrite it - in Rust?

That's our moonshot - codename Limbo

turso.tech/blog/introdu...

1 year ago 143 29 10 8

What material or papers should I read to understand alternatives to Rust's borrow checking with lifetimes for memory-safety? I hear some people mention linear types, for example. What should I read to understand how they provide memory-safety?

1 year ago 11 1 3 0

Last time i looked at RocksDB, it was not really able to take full advantage of io_uring because of it’s synchronous I/O interfaces

1 year ago 2 0 0 0
Advertisement

You are crazy, Jack! Looking forward to seeing the results! 🤩

1 year ago 2 0 0 0

Nice, signed up for the beta! 🚀

1 year ago 1 0 0 0

I am using Buffer to cross-post between here and X, but seems like threads are not either supported by Buffer or Bluesky so some posts are limited to X 🤔

1 year ago 3 0 2 0
Preview
Turso Quickstart (Swift) - Turso Get started with Turso and Swift using the libSQL client in a few simple steps.

Technical preview now: docs.turso.tech/sdk/swift/qu...

1 year ago 1 0 0 0

Is there a way to test Github actions locally? It sucks so much to play whac-a-mole with the YAML config to fix one problem at a time...

1 year ago 5 0 3 0

With recent batch of improvements from Pere, I can now write to a SQLite file (it's WAL actually) with Limbo and read with SQLite itself. Nice!

1 year ago 4 0 0 0

Rust folks! In Limbo, I am implementing the SQLite C API with Rust. Right now I have the whole of SQLite API in a single file (https://buff.ly/3URtylE ) and like to split it up. But I seem to be unable to convince cbindgen to pick up symbols from other files. What am I doing wrong?

1 year ago 4 0 0 0

Yes! Thanks @dominiktornow.bsky.social!

1 year ago 2 0 1 0
Advertisement

I believe you are thinking of:

⬅️ Why Threads Are A Bad Idea, John Ousterhout, 1995

➡️ Why Events Are A Bad Idea. Rob von Behren, Jeremy Condit and Eric Brewer, 2003

1 year ago 13 2 3 0

How should I package Limbo for JavaScript? I now have a ”limbo-wasm” package that bundles the core database compiles to Wasm and does I/O with Node filesystem API. But this wont work in the browser. Another package or make ”limbo-wasm” detect runtime? 🤔

1 year ago 3 0 0 0

My memory tells me there are two papers. First one that talks about how event-based concurrency is better than thread-based concurrency and a second one that makes tries to make the opposite claim. But I can't find them anymore! Did my mind hallucinate them?

1 year ago 4 0 2 0
FF meetup #4 - Deterministic simulation testing
FF meetup #4 - Deterministic simulation testing YouTube video by Future Frontend

The fourth #FutureFrontend meetup focused on deterministic simulation testing and @penberg.org went into great detail in this new approach to find bugs you couldn't even imagine.

You can find the recording (1.5h) online at www.youtube.com/watch?v=29Vz....

1 year ago 2 2 0 0

Nothing beyond this popped up. Thanks for sharing!

1 year ago 1 0 1 0
Disaggregated Storage - a brief introduction


I worked on building disaggregated storage on top of SQLite. All the recent database offerings are built on top of storage disaggregation: Amazon Aurora (the most famous one), Neon, Snowflake, TiDB, etc. This post is my attempt at explaining disaggregated storage in the context of database systems.


We can break down a database system into two main components: the frontend and backend. The frontend is responsible for handling connections, parsing requests, and query analysis. The backend serves as the storage layer which fetches data from the disk. While the frontend is CPU-heavy, the backend is I/O-heavy.


Popular databases like PostgreSQL, SQLite, and MySQL all have a similar frontend and backend architecture. The data on disk is stored in a B-Tree (or similar structure). 


continued at: https://avi.im/blag/2024/disaggregated-storage

Disaggregated Storage - a brief introduction I worked on building disaggregated storage on top of SQLite. All the recent database offerings are built on top of storage disaggregation: Amazon Aurora (the most famous one), Neon, Snowflake, TiDB, etc. This post is my attempt at explaining disaggregated storage in the context of database systems. We can break down a database system into two main components: the frontend and backend. The frontend is responsible for handling connections, parsing requests, and query analysis. The backend serves as the storage layer which fetches data from the disk. While the frontend is CPU-heavy, the backend is I/O-heavy. Popular databases like PostgreSQL, SQLite, and MySQL all have a similar frontend and backend architecture. The data on disk is stored in a B-Tree (or similar structure). continued at: https://avi.im/blag/2024/disaggregated-storage

Published a new blog post on explaining the basics of disaggregated storage systems.

The architecture is relatively new considering the rich history of databases, but pivotal enough to be adopted by many databases like Aurora, Neon, Snowflake, etc.

https://avi.im/blag/2024/disaggregated-storage

1 year ago 39 9 3 2

The wgpu crate for Rust looks promising for cross-platform graphics programming! What are the best resources to learn more about WebGPU?

1 year ago 6 0 3 0
Advertisement

Hah, setting up @penberg.org handle on this thing was really easy!

1 year ago 2 0 0 0

I watched @penberg.bsky.social 's talk "Patterns of Low Latency" at P99 conf.


This talk is dense with practical insights and to the point. I was wondering why watch a talk on latency, but his background as a Linux Kernel contributor, on OSv and ScyllaDB made worth it.


Here are my notes

1 year ago 8 2 1 0

I am too lazy to set it up 🙈

1 year ago 0 0 0 0

I am about to start doing slides for my next week’s presentation on deterministic simulation testing (DST). What kind of things folks want to know about?

1 year ago 2 0 3 0
Preview
Berlin Systems Group · Luma A Meetup for all low level systems enthusiasts in Berlin. If you’re interested in how Databases, Distributed Systems and Compilers work, this Meetup is the…

Hey BlueSky, I run the Berlin Systems Group.

The 5th edition of the meetup will happen on November 14th - this time we are finally diversifying. Only 1 database talk and the other is going to be a deep dive into LLVM passes!

Register here:

lu.ma/nq4bzyjb

#databases #compilers #berlin #meetup

1 year ago 6 4 0 1

I had convinved myself that disaggregated storage is the way to go for OLTP, but now i am starting to convince myself that ”diskless” (object storage as the primary storage) is where disaggregated storage converges to (on cloud anyway). All we need is little bit cheaper writes on AWS S3 and others…

1 year ago 3 1 1 0