Introducing the Dependency Solver
Source: London Perl Workshop 2010 on the 2010-12-04.
Speaker: Colin Horne
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.