Hydra 2022
who it's for
database engineers, distributed systems engineers, concurrency researchers, systems programmers, runtime engineers, developer tool engineers, performance engineers
topics
ScyllaDB LSM compaction; hybrid tier-level layout; RAM-aware compaction controller; composable task scheduler; parallel-for grain fusion; distributed IDE synchronization; Tarantool Raft fixes; scaling Raft; HTAP workload challenges; vectorized push-based query execution; lock-free stack and queue algorithms; parallel relaxed data structures
| title | author | length |
|---|---|---|
| Opening | Vitaly Aksenov, Ivan Prisyazhniy | 15m |
Conference logistics and what to watch tonight: the program adds three database‑internals talks (an LSM compaction talk claiming state‑of‑the‑art RAM‑aware… | ||
| Building state-of-art LSM-tree compaction in ScyllaDB | Raphael Carvalho | 01h 02m |
ScyllaDB implements incremental compaction by breaking SSTables into 160 MB fragments, letting compaction release input fragments as output fragments finish so… | ||
| Fusing Efficient Parallel For Loops with a Composable Task Scheduler | Anton Malakhov | 01h 05m |
This work fuses parallel-for loops with a composable task scheduler inside an Intel OpenCL runtime, implementing a mailbox distributor and an adaptive grain… | ||
| Making a desktop IDE distributed and collaborative | Alexander Kirsanov | 01h 03m |
Transforms the IntelliJ platform so a full desktop IDE runs as a backend serving multiple clients (used for Code With Me and Remote Development/Gateway)… | ||
| Hydra's Heads – Dmitriy Ivanov | Dmitriy Ivanov | 43m |
A lab prototype generates unit tests for C, C++ and Java using symbolic execution combined with constraint solving via SMT solvers, plus ideas from… | ||
| Hydra's Heads – Vladimir Ozerov | Vladimir Ozerov | 41m |
Company builds custom query engines and optimizers for distributed databases, reusing components like Apache Calcite and Flink but adapting rules, operators… | ||
| Exploring Traffic Jams in Your Data Flows | Pavel Emelyanov | 01h 00m |
Shows that producer-dispatcher-consumer model plus an intermittently waking dispatcher creates phantom jams: a Seastar/Scylla simulator with virtual time… | ||
| Java PathFinder: going to Mars without bugs and deadlocks | Alexander Filatov | 55m |
Java PathFinder runs model checking on Java bytecode and exhaustively explores thread interleavings to produce deadlock and data-race counterexamples with full… | ||
| Solving Raft's practical problems in Tarantool. What, how and why | Sergey Petrenko, Boris Stepanenko | 59m |
Tarantool adds Raft but changes three practical pieces: nodes voluntarily resign when quorum of live connections is lost so an isolated old leader stops… | ||
| Self-stabilizing Population Protocols | Janna Burman | 01h 08m |
Shows a way to count anonymous agents with only one bit each by giving a single initialized base station three counters (n0 n1 n) and flipping encountered… | ||
| Pragmatic Code Generation for Efficient Execution | Satyam Shekhar | 48m |
NetSpring builds a push-based, vectorized interface that generates small, per-operator C++ fragments compiled with LLVM rather than one fused query binary… | ||
| Intro to Concurrent Programming 1/3: Classic Stack and Queue Algorithms | Nikita Koval | 01h 00m |
Covers lock-free implementations of a linked-list stack and the Michael-Scott queue, using CAS-based push/pop loops, the universal-copy-on-write construction… | ||
| Hydra's Heads – Anton Podkopaev | Anton Podkopaev | 47m |
Claims machine-checked correctness proofs of compilation and memory models, using Coq to turn 30-page paper proofs into a program-checked development and… | ||
| Hydra's Heads – Petr Kuznetsov | Petr Kuznetsov | 45m |
Argues that global total-order consensus is overkill for many block‑style systems and shows a concrete alternative that adds partial trust to the model, uses… | ||
| Scaling Raft | Konstantin Osipov | 59m |
ScyllaDB adds Raft (since 5.0) to manage topology, schema and eventually data, running thousands of Raft groups per node (hundreds of thousands of partitions… | ||
| A sledgehammer to crack a nut: why blockchain is not (always) a good idea | Petr Kuznetsov | 56m |
Argues that cryptocurrency does not need consensus and that permissionless mutual distrust is often overkill, replacing heavy consensus with secure broadcast… | ||
| HTAP Workloads: Challenges and Solutions | Ilya Kokorin | 01h 01m |
Compares concrete solutions and tradeoffs: persistent-parallel trees give lockfree reads by versioning the whole index but CAS-based commits serialize writers… | ||
| Intro to Concurrent Programming 2/3: Modern Queues and Flat Combining | Nikita Koval | 01h 02m |
Shows how to build a high-throughput queue using the unconditional Fetch-And-Add counter plus a tiny CAS path: claim slots via 64-bit fetch-and-adds, handle… | ||
| Intro to Concurrent Programming 3/3: Relaxed Data Structures for Parallel Algorithms | Nikita Koval | 01h 03m |
Relaxed (non-linearizable) priority structures trade strict FIFO for speed and still produce correct parallel shortest‑path results by tolerating extra… | ||
| Roundtable: Cloud Databases as a Service | Oleg Anastasyev, Vladimir Ozerov, Ivan Prisyazhniy | 01h 05m |
Roundtable reports concrete choices and outcomes: reusing Cassandra and RocksDB components accelerates product cycles, a private cloud runs roughly 5,000… | ||
| Summing Up Online | Dmitry Ivanov, Vitaly Aksenov, Alexey Fyodorov, Ivan Prisyazhniy | 12m |
The online portion winds down after 16 online talks, heavy on databases and internals, with live streaming, recordings and many free-access seats; the program… | ||
| in-person opening | Alexey Fyodorov, Pavel Filonov | 12m |
Three simultaneous tracks run across three halls: C++ Russia (main), Hydra (second), and a compilers track (third). Coffee breaks and TVs sit in the corridor… | ||
| What about Binary Search Trees? | Vitaly Aksenov | 59m |
Covers concrete designs and tradeoffs: partial external BST (needs parent+grandparent to remove leaves), two locking policies (per-node vs per-field) and… | ||
| Thread pools: variety of algorithms and features | Stanislav Sidristij | 01h 02m |
Compares concrete runtimes showing what actually causes slowdowns and how to fix them: measures with 500000 short tasks reveal long delays and queue contention… | ||
| Parallel Asynchronous Replication b/t YDB Database Instances | Andrey Fomichev, Ilnaz Nizametdinov | 01h 00m |
YDB implements asynchronous cross-cluster replication by streaming tablet change logs into Kafka-like light topics with multiple partitions, hashing each… | ||
| OK S3 | Vadim Tsesko | 01h 01m |
Odnoklassniki implements an S3-compatible service built on existing blob stores and Apache Cassandra for metadata, using SHA-256 content-addressed blocks with… | ||
| Distributed transactions implementation trade-offs | Artem Aliev | 01h 00m |
Explains why ACID needs careful engineering in sharded, replicated systems: two-phase commit blocks on coordinator failure and requires manual recovery… | ||
| Is there life without RTTI or how to write your own dynamic_cast | Vladislav Stolyarov | 13m |
Shows a drop-in replacement for dynamic_cast that removes RTTI by putting a runtime tag into the base object and using either embed numeric tag in base or a… | ||
| Interview with – Vadim Tsesko | Vadim Tsesko | 46m |
Built an internal S3-compatible object store that serves exabytes of blobs with hot/cold tiers, erasure coding and replication across three datacenters, and… | ||
| Interview with – Andrey Fomichev | Andrey Fomichev | 46m |
A distributed transactional database grows from internal Yandex scale work into an open source product that already runs in Yandex.Cloud and supports on‑prem… | ||
| Roundtable: Concurrency | Daniil Podolsky, Nikolay Markov, Vitaly Aksenov, Ivan Prisyazhniy, Ivan Ponomarev | 01h 01m |
Panel reports specific failures and fixes: a leader-queue design that works in Go fails on Java until manual memory fences and hand-rolled synchronization… | ||
| closing | Alexey Fyodorov, Pavel Filonov | 07m |
Closing remarks announce a followup not working session in ten minutes in the other room and ask everyone to remain for informal discussion. Organizers thank… | ||
| nothing matches | ||