Introducing the Dependency Solver

This video is in English.
Length: 14:50
Source: London Perl Workshop 2010 on the 2010-12-04.
Speaker: Colin Horne
abstract

Recorded at the London Perl Workshop 2010

Talk about a dependency solver, which automatically schedules iterative updates to a shared resource such that they do not conflict with one another, and allows for parallelism where possible.

The shared resource is a table with multiple columns. Each update is assumed to modify every row in the table, but only specific columns.

By requiring that clients need permissions to read/write to columns, one can infer the correct ordering to schedule client requests on the table.

The approach of using rather fine-grained permissions also makes the clients' intentions clearer than might otherwise be the case. This is a common argument for static typing, and its merits are well exhibited in Haskell programs.