Posts

Showing posts from July, 2018

If You’re Not Writing a Program, Don't Use a Programming Language

This article by Leslie Lamport has appeared recently at the Distributed Computing & Education Column. This article focuses more on the distinction between the TLA+ modeling language versus programming languages. Earlier I had written a blog post about more general benefits of modeling and model-checking. This is not a technical article so instead of trying to summarize/review the main points, I just include some choice quotes from the article below. The most important takeout message is at the end, which I emphasize with the bold font. Algorithms are not programs, and they can be expressed in a simpler and more expressive language. That language is the one used by almost every branch of science and engineering to precisely describe and reason about the objects they study: the language of mathematics. Programming is too often taken to mean coding, and the algorithm is almost always developed along with the code. To understand why this is bad, imagine trying to discover Eucli...

Blockchain consensus and ubiquitous computing: match made in heaven?

Today I mused a bit on a futuristic research outlook for blockchain/decentralized consensus. Here is what occurred to me: a merger of blockchain consensus with ubiquitous/spatial computing. Partially-replicated decentralized consensus Here is the first piece of the puzzle. A drawback with current blockchain/decentralized consensus work is that they require full-state-replication (of the entire chain or DAG) at each participating node. This is a big scalability bottleneck. Replication should be on a need to know basis. What is the point of replicating transactions/state that is relevant for Buffalo, NY to nodes in Delhi, India. Assume we fix that. ( That will involve a good amount of research on graph algorithms.) And we use lightweight energy-efficient decentralized consensus algorithms, such as Avalanche, so that these can work on lightweight portable renewable power devices. Now on to the next piece of the puzzle. Ubiquitous/spatial computing Think about next genera...

Popular posts from this blog

Hints for Distributed Systems Design

Learning about distributed systems: where to start?

Making database systems usable

Looming Liability Machines (LLMs)

Foundational distributed systems papers

Advice to the young

Linearizability: A Correctness Condition for Concurrent Objects

Understanding the Performance Implications of Storage-Disaggregated Databases

Scalable OLTP in the Cloud: What’s the BIG DEAL?

Designing Data Intensive Applications (DDIA) Book