Loading...
Loading...
Typhon, a .NET embedded ACID database engine, applies game-engine Entity-Component-System (ECS) data layouts to persistent storage to meet game-server needs for both throughput and transactional safety. The article argues ECS and relational databases converged on similar structural solutions—archetypes as tables, components as columns, entities as rows—and that game engines’ practices (cache-locality, zero-copy access, and treating entities as IDs) improve latency and CPU utilization. Typhon imp
A veteran systems engineer is building Typhon, an embedded ACID database engine in C# aimed at 1–2 microsecond transaction commits by applying low-level, performance-focused .NET features. The post confronts common objections—GC pauses, unpredictable memory layout, JIT warmup, and runtime overhead—and argues that modern C# offers precise tools (unsafe pointers, pinned memory, ref structs, constrained generics) to achieve C-like control and zero-allocation hot paths. Typhon uses pinned page caches, ref struct entity accessors, and monomorphized generics to get deterministic memory and CPU behavior, targeting game servers and real-time simulations with entity-component-system data models. The piece reframes C# as viable for systems programming, with implications for high-performance server, gaming, and simulation stacks.
A developer explains why they are building a new database engine in C#, arguing the language and .NET can handle low-level, high-performance systems work despite JIT warmup and runtime complexity. The discussion highlights trade-offs like AOT compilation to avoid JIT cold-starts, examples of existing C# databases (VeloxDB, RavenDB), and comparisons to Go’s developer experience and concurrency primitives. Commenters note C#’s interoperability with C libraries, ergonomics, and packaging friction via NuGet, while others question runtime overhead and distribution. The piece matters because it challenges assumptions about languages fit for systems software and signals renewed interest in C# for backend infrastructure and database engines.
Lead: A game-engine veteran is building Typhon, an embedded ACID database engine in C# that targets 1–2 microsecond transaction commits by leveraging modern .NET capabilities. The post confronts common objections—GC pauses, lack of memory layout control, JIT warmup, and runtime overheads—and argues that recent C#/.NET features (unsafe code, pinned memory, ref structs, constrained generics, and other low-level tooling) let developers achieve C-like performance and deterministic behavior. Typhon uses pinned page caches, ref-struct entity accessors, zero-copy access, MVCC snapshot isolation, and cache-line-aware storage to deliver transactional safety with sub-microsecond latency. Why it matters: the project challenges assumptions about managed languages for systems programming and could influence real-time, game, and simulation database design within the .NET ecosystem.
Typhon is an experimental embedded ACID database engine written in .NET that applies Entity-Component-System (ECS) lessons from game engines to transactional data stores. The project maps ECS concepts to database analogs—archetypes to tables, components to columns, entities to rows—and prioritizes cache-locality, zero-copy access, and component-centric storage to hit sub-microsecond latencies with MVCC snapshot isolation and configurable durability. By storing blittable structs in pinned pages and making entities pure IDs, Typhon aims to eliminate deserialization, reduce GC pressure, and meet hard real-time frame budgets while preserving transactional safety. This convergence matters for game servers, real-time simulations, and any low-latency systems that need both high throughput and strong consistency guarantees.
Typhon, a .NET embedded ACID database engine, applies game-engine Entity-Component-System (ECS) data layouts to persistent storage to meet game-server needs for both throughput and transactional safety. The article argues ECS and relational databases converged on similar structural solutions—archetypes as tables, components as columns, entities as rows—and that game engines’ practices (cache-locality, zero-copy access, and treating entities as IDs) improve latency and CPU utilization. Typhon implements blittable unmanaged structs, cache-line-aware storage, MVCC snapshot isolation, and configurable durability to deliver sub-microsecond access in managed code without GC churn. This synthesis matters for real-time simulations, multiplayer servers, and any latency-sensitive systems that also require correctness and persistence.