16 Followers
48 Following
24 Posts
Databases, distributed systems and formal methods. Fond of challenges and travelling Views are my own.

#Erlang 26 just shipped and it has so many good things! https://www.erlang.org/blog/otp-26-highlights

(We'll try to cut a rebar3 release some time today)

Erlang/OTP 29.0 Release Candidate 1 - Erlang/OTP

The official home of the Erlang Programming Language

Erlang.org

"Performance Trade-offs in Transactional Systems" is a nice survey over the impossibility results that have been published on distributed databases

https://dl.acm.org/doi/abs/10.1145/3578358.3591325

Performance Trade-offs in Transactional Systems | Proceedings of the 10th Workshop on Principles and Practice of Consistency for Distributed Data

ACM Conferences
Acknowledgements - How Query Engines Work

Watch our Co-Founder and CTO @aleksi introducing #FerretDB at #dataopspoland. Also, don't forget to subscribe to their channel for similar content around #DataEngineering, #DataScience and #DevOps.

https://www.youtube.com/watch?v=3OfNKoQzskM

DataOps Poland #52 FerretDB - building an open-source MongoDB-compatible database on top of Postgres

YouTube
This is for you if you're in Europe and want to learn TLA+. I will be at Craft Conf in Budapest in May to talk about #tlaplus and run my TLA+ workshop (https://craft-conf.com/2023/speaker/markus-kuppe). My proceeds go to https://skool.org.hu
Craft Conference - Budapest, May 18-19, 2023

Craft is about software craft, which tools, methods, practices should be part of the toolbox of a modern developer and company, and it is a compass on new technologies, trends. You can learn from the best speakers and practitioners in our community.

Craft Conference

Ahhh I get to talk about this now! I worked with the delightful people at fly.io to design a series of distributed systems challenges using Maelstrom, a tool for teaching and learning distributed algorithms. They range from quick and simple echo servers to "implement your own transaction system based on the paper of your choice". Excited to see what folks come up with! 🤗

https://fly.io/dist-sys

Fly.io Distributed Systems Challenge

Documentation and guides from the team at Fly.io.

Fly

We've just wrapped up the global-first half of my global-first/local-first course (https://decomposition.al/CSE290S-2023-01/). On to local-first!

I picked choreographic/multitier programming and local-first software as the topics for this course because those were the two topics that students I surveyed seemed to want most, and I chose the name "global-first" for the former topic because it made a nice counterpart to "local-first" and made the course seem like less of a a random mishmash of topics. But...

Distributed Software Systems: Global-First and Local-First Perspectives

Distributed Software Systems: Global-First and Local-First Perspectives

CSE290S, Winter 2023

Well this sounds interesting:

FLAC: Practical Failure-Aware Atomic Commit Protocol for Distributed Transactions
https://arxiv.org/abs/2302.04500

FLAC: Practical Failure-Aware Atomic Commit Protocol for Distributed Transactions

In distributed transaction processing, atomic commit protocol (ACP) is used to ensure database consistency. With the use of commodity compute nodes and networks, failures such as system crashes and network partitioning are common. It is therefore important for ACP to dynamically adapt to the operating condition for efficiency while ensuring the consistency of the database. Existing ACPs often assume stable operating conditions, hence, they are either non-generalizable to different environments or slow in practice. In this paper, we propose a novel and practical ACP, called Failure-Aware Atomic Commit (FLAC). In essence, FLAC includes three sub-protocols, which are specifically designed for three different environments: (i) no failure occurs, (ii) participant nodes might crash but there is no delayed connection, or (iii) both crashed nodes and delayed connection can occur. It models these environments as the failure-free, crash-failure, and network-failure robustness levels. During its operation, FLAC can monitor if any failure occurs and dynamically switch to operate the most suitable sub-protocol, using a robustness level state machine, whose parameters are fine-tuned by reinforcement learning. Consequently, it improves both the response time and throughput, and effectively handles nodes distributed across the Internet where crash and network failures might occur. We implement FLAC in a distributed transactional key-value storage system based on Google Percolator and evaluate its performance with both a micro benchmark and a macro benchmark of real workload. The results show that FLAC achieves up to 2.22x throughput improvement and 2.82x latency speedup, compared to existing ACPs for high-contention workloads.

arXiv.org

[new blog post]
Designing Access Methods: The RUM Conjecture

https://muratbuffalo.blogspot.com/2023/02/designing-access-methods-rum-conjecture.html

Designing Access Methods: The RUM Conjecture

This paper is from EDBT 2016 . Database veterans would know of the tradeoffs mentioned here, but it is very useful to have this "systematiza...

New post on key differences and trade-offs with #localfirst software development, from working directly against a local database to the challenges of concurrent writes, partitioning and partial replication https://electric-sql.com/blog/2023/02/09/developing-local-first-software
Developing local-first software - ElectricSQL

Exploring the key differences and trade-offs between building local-first vs cloud-first apps.