Alternative definition of a distributed system:
- There are several autonomous computational entities (computers or nodes), each of which has its own local memory.
- The entities communicate with each other by message passing.
Network-based software: are distributed systems that involve separate clients that request services from server components over a network connection. (consider client+server as the whole system)
A distributed system should provide these abilities:
- Share (limited) resources to large amount of users
- Easy access to resources.
- Transparency:
- Access: Hide how a component is represented or accessed
- Location: Hide where a component is located inside the system
- Migration / Relocation (i.e. migration while in use) / Replication transparencies are, in my opinion, direct consequences of Location transparency.
- Concurrency: Hide that a resource is shared by concurrent user.
- Failure: Hide that a resource was recovered
- Openness: provide a standardized, complete and neutral API to ensure:
- Interoperability with other systems.
- Portability of a component to be executed (without modification) in an other distributed system.
- Extensible: components should be small and easily replaceable components.
- Customization: separate Policy (set of rules to be defined on user side) from Mechanism (the execution of these rules inside system)
- Scalable in size, geography and administration.
Scalability (property of a system): is the ability of a system to be enlarged in order to accommodate a growing amount of work.
Some metrics to know how scalable a system is:
- Performance: amount of useful work / used resources
- availability: uptime / (uptime + downtime).
Distributed transaction
https://www.researchgate.net/profile/Yanchun_Zhang2/publication/221152644_Web_Service_Composition_Transaction_Management/links/0046351ff636b02822000000.pdfBrief description of distributed TX processing model :
- 2 Phases commit: Synchronous, Locking, Read Isolation. A long-living transaction is started, rollbacked or ended by a orchestrator.
- Saga model: Asynchronous, event driven, No Read isolation. Local transaction is stared by one participant. When this local tx ended (or rollbacked), a new event, if any, is created and sent to other participants, to proceed with the rest of the job.
- Saga model with Broker: Participant send command message to a broker. The broker bind each message with a predefined workflow (e.g state machine)
No comments:
Post a Comment