# 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