Skip to content
0:00 / 0:00

#datalog#dedalus#bloom

"I See What You Mean" by Peter Alvaro

Strange Loop Conference

88K subscribers • 106 videos on Hallway • Conference channel

YouTube
  • Recommended by 8 people: 6 on Hacker News, 1 on Lobsters and 1 curated list.
  • A classic. People kept recommending it from 2015 to 2019.
  • Presented by Peter Alvaro

Intermediate. Assumes working knowledge.

59K views11 years ago8 recommendations

Distributed systemsProgramming languagesLanguage design and type systemsConcurrency and parallelismSoftware architecture

Peter Alvaro argues that query languages like Datalog and Dedalus can simplify distributed systems programming by letting developers state what they mean.

I love query languages for many reasons, but mostly because of their semantics. Wait, come back! In contrast to most systems programming languages (whose semantics can be quite esoteric), the semantics of a query (given some inputs) are precisely its outcome -- rows in tables. Hence when we write a query, we directly engage with its semantics: we simply say what we mean. This makes it easy and natural to reason about whether our queries are correct: that is, whether they mean what we intended them to mean. Query languages have traditionally been applied to a relatively narrow domains: historically, data at rest in data stores; more recently, data in motion through continuous, "streaming" query frameworks. Why stop here? Could query languages do for a notoriously complex domain such as distributed systems programming what they have done so successfully for data management? How would they need to evolve to become expressive enough to capture the programs that we need to write, while retaining a simple enough semantics to allow mere mortals to reason about their correctness? I will attempt to answer these questions (and raise many others) by describing a query language for distributed programming called Dedalus. Like traditional query languages, Dedalus abstracts away many of the details we typically associate with programming, making data and time first-class citizens and relegating computation to a subordinate role, characterizing how data is allowed to change as it moves through space and time. As we will see, this shift allows programmers to directly reason about distributed correctness properties such as consistency and fault-tolerance, and lays the foundations for powerful program analysis and repair tools (such as Blazes and LDFI), as well as successive generations of data-centric programming languages (including Bloom, Edelweiss and Eve). Peter Alvaro UNIVERSITY OF CALIFORNIA SANTA CRUZ @palvaro Peter Alvaro is an Assistant Professor of Computer Science at the University of California Santa Cruz. His research focuses on using data-centric languages and analysis techniques to build and reason about data-intensive distributed systems, in order to make them scalable, predictable and robust to the failures and nondeterminism endemic to large-scale distribution. Peter is the creator of the Dedalus language and co-creator of the Bloom language. While pursuing his PhD at while UC Berkeley, Peter co-developed and taught Programming the Cloud, an undergraduate course that explored distributed systems concepts through the lens of software development. Prior to attending Berkeley, Peter worked as a Senior Software Engineer in the data analytics team at Ask.com. Peter's principal research interests are databases, distributed systems and programming languages.

Why it's here

8 people recommend this

What people say. Highly recommended for its thought-provoking look at using declarative query languages and logic programming to reason about distributed systems.

janogonzalezon Lobsters • Recommends

Strange Loop 2015 videos

rolleron Hacker News • Recommends

On “Eve: Programming designed for humans”

For an introduction to Dedalus with less reading, Peter Alvaro's 2015 Strange Loop talk was fantastic. link to this video --- Edit: Actually Chris Granger gave an Eve talk at the same conference. It's interesting to see how Eve has evolved since. link

alexmingoiaon Hacker News • Recommends

On “Ask HN: Datalog as the only language for web programming, logic and database”

Not anything I’d want to use. The closest is prolog. But at a higher level this is what Eve attempted to do. Eve was built using the semantics of Dedalus which is built from datalog. I highly recommend watching Peter Alvaro’s Strangeloop talk about creating Dedalus - it’s exactly the same train of thought you’re onto. link to this video

programming-talkscurated list on GitHubRecommends

Under “Programming Language Design”

I See What You Mean 00:52:28 by **Peter Alvaro** (2015)

jitlon Hacker News • Recommends

On “BOOM: Berkeley Orders of Magnitude – Declarative Languages And Systems”

This Strangeloop talk by Peter Alvaro is a good introduction to the thinking behind some of these systems: link to this video

svieiraon Hacker News • Recommends

On “Ask HN: What is your favourite tech talk?”

Also: I see what you mean: link to this video and Applying Failure Testing Research @Netflix: link both by Peter Alvaro (second also includes Kolton Andrus) are thought-provoking looks at failure modeling in distributed systems.

iamwilon Hacker News • Recommends

On “Please do not attempt to simplify this code”

…ter Alvaro's talk on Distributed Systems. Here, he talks about how queries over distributed systems is really hard to reason about, because time is now relative--there's no central clock to measure time. However, if we restrict ourselves to a language whose queries cannot express negation, a lot of the hard stuff about distributed systems go away. link to this video…

ComNikon Hacker News • Recommends

On “Introduction to Datalog”

If model-theoretic semantics and the various ways to slice, dice, and extend Datalog are interesting to you, then almost any talk by Peter Alvaro might be as well. In particular: link to this video

u/PM_ME_UR_OBSIDIANin r/compsci • Mentions

On “What are some compsci topics and algorithms that more people should know about?”

Programming Languages: Philip Wadler - *Propositions as Types* (PDF, conference talk) Peter Alvaro - *I See What You Mean* (conference talk) Pierce et al. - *Logical Foundations* (interactive workbook) Adam Chlipala - *Formal Reasoning About Programs* (textbook) Misc: Abelson & Sussman - *Structure and Interpretation of Computer Programs* (textbook) Michael Sipser - Introduction to the Theory of Computation (textbook) These are all resources that I've worked through in self-study, and I can endorse every single one of them. Also, just about every working programmer would strongly benefit from having taken a course in the field of Programming Languages - the type of course that's…

norswapon Hacker News • Mentions

On “Ask HN: What do you want to learn in 2016?”

I'd be more interested by pointers for Javascript front-end principles, because I feel like I'm lacking some background to understand much of what I'm encountering, whereas there's quite a bit about machine learning (which I haven't checked, still I have good hope it covers the fundamentals). Deduction systems: see link to this video for instance.

viion Hacker News • Mentions

On “RethinkDB Postmortem”

Slava (coffeemug) is very brave to introspect publicly and whenever I interacted with him, behaved with greatest integrity and kindness. Unfortunately, his hypothesis here that devtools are a tough market does not ring true. Making a business is always tough, making one that does something new is even tougher. There are many tools and database companies doing extraordinarily well, from Atlassian to Cloudera to Docker to Elastic. The difficulties that RethinkDB faced, as it pivoted from closed source MySQL DB backend, to open source independent database with a very cool update mechanism, were in my analysis much more mundane. Simply, RethinkDB was not easy. Here is a flavor of their thinking,…

iamwilon Hacker News • Mentions

On “Eve: Programming designed for humans”

One of the more interesting parts (to me) about Eve wasn't the interactive programming or the literate programming, but that it included a database inside of the programming language. Most programming languages think of a database as a thing separate to it (I think Smalltalk is an exception). Hence, they needed language constructs to make it easier to talk to databases. As a result, Eve was inspired by the Bloom language being researched at Berkeley, which was in turn inspired by an old language called Datalog. In it, they take constraints of a declarative language (like SQL) and use it to make distributed computing a lot easier. "Our main data-structure was now a tree of tables. Rather than…

hammerandtongson Hacker News • Mentions

On “Bloom Programming Language”

Of note Bloom is an ancestor of Eve. Bloom is a descendant of Datalog via Dedalus. "Dedalus: Datalog in Time and Space" link Here is Peter Alvaro's Strange Loop talk - link to this video It was a shame that most people, seemingly the Eve devs as well, seemed to focus on making Eve a language for easy programming for the masses. Thats a huge wall of a problem with a limited funding slope. I think if there had been more upfront work and focus on the distributed programming/database possibilities, that Eve would have founded an actual community to push it along. Eve as a language for doing business logic against say Kubernetes? As a language to wire up ETL processes? I think it could have found a niche…

justinmkon Hacker News • Mentions

On “Why We’re Building Flux, a New Data Scripting and Query Language”

The post doesn't mention datalog, but Dedalus/Bloom1 makes a good case for why datalog is a good starting point for a data query language. 1. link 2. link to this video

hencqon Hacker News • Mentions

On “Tinyland”

Very interesting. I'm curious what you'll come up with. The description also reminds me of Eve 12, which is itself based on Bloom 34. 1 link 2 link 3 link 4 link to this video

u/oilshellin r/ProgrammingLanguages • Mentions

On “A network architecture for functional languages”

…Bloom and Dedalus: http://boom.cs.berkeley.edu/ http://bloom-lang.net/calm/ I guess they are more general than client/server, but they're along the lines of synchronizing state with messages. As far as I understand, they treat state as a pure function of a sequence of messages. Someone posted this talk here recently, and it was pretty good: link to this video TBH the MapReduce analogy seems like it's out of left field (having worked with MapReduce and related big data systems for many years professionally). I think there is some more directly related research that uses pure functions, like CRDTs / lattices as someone else mentioned. ----- This is also outside my area of expertise, but a lot…