Artigo: Insights on Parallel and Distributed Systems
Autor: Daniel Ribeiro
- At least two trends are making paralell and distributed programming come
to focus:
- computers with multiple cores getting cheaper and getting more cores,
and
- websites leveraging terabytes worth of of user content.
- Several services, tools and programming models promisse to help people
cope with such trends:
- Amazon EC2,
- Hadoop,
- Fork Join,
- Actor Models,
- Non relational Databases,
- etc
- With or without these tools we need to keep in mind two things:
- Amdahl’s law: "With a fixed problem size, there is a point for
every program after which adding more computational units do not give
you improved performance".
- Brewer’s CAP Theorem: "A distributed system can only have at
most two out of the three following properties: consistency,
availability and partition tolerance (a kind of fault tolerance)."
- Comments about this:
- Amdahl’s law is quite troublesome: you cannot really do
anything about it, but changing the algorithms involved.
- But CAP Theorem allows you to trade off one property for another. You
can relax consistency into eventual consistency, you can relax on fault
tolerance against partition tolerance, or you may live with less nines
of up-time. It all depends on your application’s profile which
one you will have to abandon. Dealing with this means no longer looking
for ACID (Atomicity, Consistency, Isolation, Durability) systems, where
consistency is very important, but looking for BASE (Basic available,
soft-state or scalable, and eventually consistent) systems. It means
listening to Gregor Hohpe’s suggestion and accepting that Two
Phase Commit may not be the right way to go in detriment to pursuing
the new ACID properties (Associative, Commutative, Idempotent and
Distributed).
- Not every system requires looking into these trends and thinking
about such limitations and trade-offs. But if yours does, then keeping
these in mind might come in handy.
- Fontes:
- Insights on parallel and distributed systems, Daniel Ribeiro