Systems that run forever self-heal and scale by Joe Armstrong.
From the description:
Joe Armstrong outlines the architectural principles needed for building scalable fault-tolerant systems built from small isolated parallel components which communicate though well-defined protocols.
Great visuals on the difference between imperative programming and concurrent programming.
About half of the data transmission from smart phones uses Erlang.
A very high level view of the architectural principles for building scalable fault-tolerant systems.
All of Joe’s talk is important but for today I want to focus on his first principle for scalable fault-tolerant systems:
ISOLATION.
Joe enumerates the benefits of isolation of processes as follows:
Isolation enables:
- Fault-tolerant
- Scalability
- Reliability
- Testability
- Comprehensibility
- Code Upgrade
Are you aware of any topic map engine that uses multiple, isolated processes for merging topics?
Not threads, but processes.
Threads being managed by an operating system scheduler are not really parallel processes, whatever its appearance to the casual user. Erlang processes, on the other hand, do run in parallel and when more processes are required, simply add more hardware.
We could take a clue from Scalable SPARQL Querying of Large RDF Graphs Jiewen Huang, Daniel J. Abadi and, Kun Ren, partitioning parts of a topic map into different data stores and querying each store for a part of any query.
But that’s adapting data to a sequential process, not a bad solution but one that you will have to repeat as data or queries change and evolve. Pseudo-parallelism.
One of a concurrent process approach on immutable topics, associations, occurrences (see Working with Immutable Data by Saša Jurić) would be that different processes could be applying different merging tests to the same set of topics, associations, occurrences.
Or the speed of your answer might depend on whether you have sent a query over a “free” interface, which is supported by a few processes or over a subscription interface, which has dozens if not hundreds of processes at your disposal.
The speed and comprehensiveness of a topic map answer to any query might be a economic model for a public topic map service.
If all I want to know about Anthony Weiner was: “Vote NO!” that could be free.
If you wanted pics, vics and all, that could be a different price.