Search code examples
middlewaredistributed-system

What is meant by term "heterogeneous" in distributed system?


The term "heterogeneous" is often used in distributed-system and middleware. What does it mean?


Solution

  • Homogenous hardware in a distributed system would be every machine having the same hardware, same OS, and possibly even being dedicated to just running one thing.

    Heterogenous would mean:

    • Inconsistent Hardware. You might have one set of servers from 2011, one from 2013, and one fancy new set ramped up this year, all in the same pool for compute resources. They have different CPUs, amounts of memory, and amounts of disk available for use.
    • Possibly Inconsistent OS. A crowdsourced distributed computing environment - something that runs when a user's screensaver is going - might have different everything; it may be running on Linux, on Windows, or OS/X.

    In both cases, you have to plan to be immune to differences in resources, or flexible based on what the actual differences are.

    To be clear; the first is 1000x more common. If someone says "heterogenous distributed computing", they mean two or more computers with different hardware being used together to solve a problem.