HN user

losfair

1,859 karma

https://su3.io

Posts108
Comments61
View on HN
su3.io 1mo ago

Caddy compatibility for zeroserve: 3x throughput and 70% lower latency

losfair
212pts62
su3.io 1mo ago

Zeroserve: A zero-config web server you can script with eBPF

losfair
272pts64
su3.io 2mo ago

SQLite is the best home for AI agents

losfair
5pts0
nvd.nist.gov 2mo ago

CVE-2025-54518

losfair
1pts0
www.amd.com 2mo ago

CPU OP Cache Corruption

losfair
2pts0
su3.io 2mo ago

SQLite is the best home for AI agents

losfair
2pts0
fireclaw.ai 5mo ago

Show HN: FireClaw – sandboxed OpenClaw microVM in a single binary

losfair
1pts0
bottlefire.dev 10mo ago

Show HN: Bottlefire – Build single-executable microVMs from Docker images

losfair
161pts24
github.com 11mo ago

Show HN: Bsdloader – Minimal (~123KB), reproducible x86_64 FreeBSD UEFI loader

losfair
3pts0
github.com 1y ago

Show HN: Server Side Code Integrity – remote attestation for servers

losfair
2pts0
labs.withsecure.com 1y ago

Forging Swift MT Payment Messages for fun and research (2020)

losfair
1pts0
github.com 1y ago

Show HN: Server Side Code Integrity

losfair
3pts0
su3.io 1y ago

Witnessing Sigstore's transparency log from the Ethereum blockchain

losfair
1pts0
su3.io 1y ago

Witnessing Sigstore's transparency log from the Ethereum blockchain

losfair
3pts0
github.com 2y ago

Ultrablue: User-Friendly Lightweight TPM Remote Attestation over Bluetooth

losfair
1pts0
github.com 2y ago

GitHub App installation "act on your behalf" warning

losfair
2pts0
vitalik.eth.limo 2y ago

Ask Security Questions

losfair
2pts0
github.com 2y ago

ZK-blind: JWT verification with zero knowledge proofs

losfair
2pts0
arxiv.org 2y ago

Silent data corruptions at scale (2021)

losfair
84pts39
pron.github.io 2y ago

TLA+ in Practice and Theory, Part 2: The + in TLA+

losfair
1pts1
github.com 3y ago

Linux Kernel module running WASM filters with wasm3

losfair
3pts0
decentralizedthoughts.github.io 3y ago

Raft does not Guarantee Liveness in the face of Network Faults (2020)

losfair
2pts0
stroppy.io 3y ago

Stroppy report: FoundationDB

losfair
2pts0
status.flyio.net 3y ago

Fly.io Status – Blocked Apps V1 Deployments

losfair
3pts0
github.com 3y ago

Dashflare – An unofficial Cloudflare dashboard built on top of Cloudflare API

losfair
2pts0
basicappleguy.com 3y ago

Big Starry Sur

losfair
1pts0
twitter.com 3y ago

Microsoft Edge injects ads into the Google Chrome download page

losfair
4pts0
github.com 3y ago

Falsehoods Programmers Believe About Phone Numbers

losfair
2pts0
abyssdomain.expert 3y ago

PuTTY on my Win98 VM crashes OpenSSH

losfair
1pts1
blog.frankdejonge.nl 3y ago

Reliable event dispatching using a transactional outbox

losfair
31pts11

Firstly, can there be an easier way to stop a microVM mid execution in this single executable bottlefire format and then rerun that and it would start mid execution. (something akin to how criu does it?)

Not yet - Firecracker supports snapshotting so this should be doable though!

if something like microvm could be run in normal cloud infrastructure?

Some cloud providers - like GCP and DigitalOcean - do support nested virtualization, and they work pretty well with Firecracker. Using VM migration to run stable workloads on spot instances sounds very interesting :)

Distributed consensus + fsync() determines the lower bound on commit latency. We have to wait for the data to be durable on a quorum of transaction logs before returning success for a transaction. That's usually 5-10ms, even within a single region.

(I work on Deno KV)

A read-modify-write retry loop causes a high number of commit conflicts, e.g. for atomic increments on integers. Getting higher than 1/RTT per-key throughput requires the "backend" to understand the semantics of the operations - apply a function to the current value, instead of just checking whether timestamp(value) < timestamp(txn.start) and aborting commit if not.

Deno KV 3 years ago

Engineer working on Deno KV here :)

Is the data stored in all regions at all times?

Data is always replicated to three of our "big" regions currently. Extending the list of storage regions and providing more flexible data distribution configuration is one of the next things we want to do.

what about pricing?

During the closed beta it's free with a 1 GiB per project limit.

Deno KV 3 years ago

Engineer working on Deno KV here. Building on FDB is mostly a pleasant experience since it solves the hard part of the problem for us (concurrency control and persisting mutations).

We sometimes run into its limitations - the way we are using FDB is a bit beyond what it was originally designed for. But when it works, it works great.

TrueTime is an efficient primitive to ensure external consistency across multiple consensus groups, not within one group. The current DO infrastructure does not give the TrueTime guarantees for free: you cannot do transactions across two or more durable objects, and the max throughput within a transaction domain is limited to what a single V8 isolate can handle sequentially.

The one feature I miss the most on Cloudflare Workers/Durable Object is TrueTime.

Durable Objects are fundamentally replicated state machines with a nice JavaScript API. You can build an automatically sharded (yet correct) Kafka API implementation, or even an entire Spanner-style distributed database on Workers, given the right primitives (DO + TrueTime).

This project looks really exciting!

I'm working on mvsqlite [1], a distributed SQLite based on FoundationDB. When doing the VFS integration I have always wanted to patch SQLite itself, but didn't because of uncertainty around correctness of the patched version...

A few features on my wishlist:

1. Asynchronous I/O. mvsqlite is currently doing its own prefetch prediction that is not very accurate. I assume higher layers in SQLite have more information that can help with better prediction.

2. Custom page allocator. SQLite internally uses a linked list to manage database pages - this causes contention on any two transactions that both allocate or free pages.

3. Random ROWID, without the `max(int64)` row trick. Sequentially increasing ROWIDs is a primary source of contention, and causes significant INSERT slowdown in my benchmark [2].

[1] https://github.com/losfair/mvsqlite

[2] https://univalence.me/posts/mvsqlite-bench-20220930

The idea that mvSQLite is based on (decoupled storage and compute) has been implemented for the other two most popular SQL databases. MySQL and PostgreSQL have Aurora and AlloyDB, and PostgreSQL additionally has Neon. This is something missing from the SQLite ecosystem (before mvSQLite).

And SQLite has a unique advantage when implemented on top of decoupled storage and compute. Decoupled MySQL and PostgreSQL can't really linearly scale from zero in a serverless use case: you need to spin up a compute instance when you want to do queries. This isn't necessary with mvSQLite, because the embedded SQLite library can just connect directly to the multi-tenant storage engine (mvstore).

Hi mrkurt!

Litestream/LiteFS are amazing projects. The FUSE-based approach is interesting (I'm implementing something similar in mvSQLite, thanks for the idea!)

Graceful failure

mvSQLite is designed to continue to operate under degraded network (there is a fault-injection test specifically for checking this property: https://github.com/losfair/mvsqlite/blob/1dd1a80d2ff7263b07a...). Network errors and service unavailability are handled with idempotent retries and not exposed to the application.

Good for caching

mvSQLite caches pages read and written, and does differential cache invalidation (only remotely modified pages are invalidated in the local page cache). The local cache is just a regular KV store with invalidation strategies, and can be moved onto the disk. So it essentially becomes a consistent local database snapshot.

Hi otoolep, thanks for the corrections! Actually I've just made a few changes to the wiki page before this comment :)

rqlite's readme seems to indicate that it uses Consul only for service discovery, and runs Raft internally?

I think the most important difference here is rqlite runs its "data plane" on a single consensus group/state machine while mvsqlite relies on FDB's distributed transaction system (well at the bottom there's a Paxos but it is only used for metadata coordination). Both approaches have advantages and disadvantages though.

I'm working on the benchmarks. There shouldn't be surprising results with read scalability, as it is basically guaranteed by FoundationDB. For writes it is indeed more complicated and a benchmark would help here.

I love the use case of querying SQLite from a CDN with range requests

Author here. Actually I have a similar idea with mvSQLite. Provide a client-side-queryable API, but read-write instead of read-only. Security can be implemented with a "provenance"-style mechanism: the client proves they reached a page following a valid/allowed path, by presenting the path (along with necessary signatures) to the server. That way we can have "serverless" read-write transactions with table-level security.