Friday, April 17, 2020

Designing a Distributed System


Designing a Distributed System


Teams may have cognitive properties that differ from those of the team members.  These differences arise from both the effects of interactions with technology and the effects of a social distribution of cognitive labor .

A distributed system can be divided and built from local functional subsystems.  These local functional systems are coordinated in the interaction of the members of the team. The interactions,  assemble the components, and build a larger functional system from the subsystems.

The components of the larger system may be  organised serially, in parallel or a combination of both.
Parallel organisation increases the speed of the system throughput.  While the elements of serial organisation requires the output of the previous steps it is more organised and controllable.

A complex distributed systems with both parallel and serial organisation also needs a synchronization mechanism.  Hence the larger system has cognitive properties very different from those of any individual .

Dividing the system to smaller subsystems increases the possibility to use specifically designed tools.
Interacting with these tools of trade can be made simpler.   Also the social organisation of distributed cognition helps to alleviate difficulties.

The decomposition of the task enables  each member of the team to attend closely to only a limited set of data. If the problem can be divided up, each person can deal with a tractable problem.

“Distributed computing " increases the prospects for graceful degradation " of system performance when components fail.  Because the members of the team have overlapping knowledge , it is possible for them to reconfigure dynamically in response to a problem “.

Adaptation to external environmental change may be easier in distributed than in centralized systems.  If the change is gradual and small, the necessary adjustments can be done only in the related local subsystems rather than a global rearrangement.

A tuning and of the number of small systems and a redesign is possible in order to minimize the overall system sensitivity to  inputs and environmental distortions.

One of the costs of distribution is the filtering performed by the sensors. Each stage of input processing works as an abstraction that eradicates the real input value.

Another cost of distribution is the potential existence of bottlenecks that cause disruption of one step by another.  Buffers are a way to overcome bottlenecks.

“The problem of the design of the distribution of labor : the mapping from individual performance to the group configuration is a nontrivial one.  Opportunities exist in the distributed version of the task that are simply not present in the solo-performance case. [1]

 [1] Edwin Hutchins, Cognition_in_the_Wild