SlideShare a Scribd company logo
1 of 19
A Note on
	Distributed Computing
Jim Waldo, Geoff Wyant, Ann Wolrath, Sam Kendall
	Sun Microsystems Laboratories, 1994
Papers We Love, Hyderabad
	11 Jan 2015
• There are fundamental differences between local
computing and distributed computing
• These differences cannot be ignored when designing
systems
• System designs that ignore these differences are "doomed
to failure"
Introduction
• RPC (Remote Procedure Calls)
• RFC 707
• Sun RPC
• Argus, Emerald - 80s
• CORBA, DCOM - 90s
• Java RMI - 90s
• EJBs, XML-RPC, SOAP, REST - 90s to now
A bit of history
Difference in location is an implementation detail
Steps in application development
• Writing using interfaces that are location agnostic
• Finalize which objects will be local and which will be
remote
• Test with actual real world scenarios
Unified View of Objects
Principles of this unified design
• There exists a single, natural design for the application regardless of
whether parts of it will be deployed locally or remotely
• Failures and performance issues are implementation dependent and
should not be considered in the initial design
• The interface of an object is independent of the context in which that
object is used
Unified View of Objects
The unified view is seductive because it promises these
• Changing implementations without any change in the
interface or the calling entities
• Changing locations of implementations without impacting
clients
• Latency
• Memory Access
• Partial Failure
• Concurrency
The Differences, or why the twain shan't meet
• Network speed versus processor speed improvements
• Counterpoints
• Hardware improvements
• Communication analysis tools to better locate objects
Latency
• A local pointer is not valid in a remote address space
• Centralize memory access?
Memory Access
• Local
• No partial failures
• Detection possible
• Distributed
• Failure of components is independent, partial
• No central entity that can be reliably queried to find out
the state of failed components
	Dealing with indeterminism is required to deal with partial
failure.
Partial Failure
A central problem in distributed computing is to ensure that
the state of the system is consistent after partial failures.
To have a unified model
• Treat everything as local. Indeterministic and fragile.
• Treat everything as remote. Introduces unnecessary
complexity and defeats the unified model's purpose.
Partial Failure
• Suffers from the same problems if attempts are made to
unify interfaces
Concurrency
• Robustness is not a function of the implementation
• You cannot push robustness, performance problems under
"Quality of Service".
• These are interface issues
• Naming service locking example
It's not about QOS
• "Local" filesystem APIs used for a distributed system
• Soft mounting
• Exposes network / server failures to client program
• Can lead to filesystem corruption
• Hard mounting
• Application hangs until the server comes back up
• Chain of "frozen workstations"
Lessons from NFS
• Specify whether local or remote as part of interface
definition
• For dual-needs, split the interface into local and remote
• Compilers will generate code based on intended usage
• Access objects differently while writing code
• A change in thinking
Designing with these differences
Objects in different address spaces but on the same machine
• Share attributes of both local and remote
• Simpler code generation (shared memory etc)
A middle ground
“I wish….that the temptation of developer convenience hadn’t
led us to view distributed computing’s necessary complexity
as too hard, leaving us to try to replace it with accidental
complexity that doesn’t really work.”
- Steve Vinoski in his article Convenience over
Correctness
• The paper that was discussed -
https://www.cc.gatech.edu/classes/AY2010/cs4210_fall/papers/smli_tr-94-29.pdf
• Convenience over Correctness - http://steve.vinoski.net/pdf/IEEE-Convenience_Over_Correctness.pdf
• Distributed Programming in Argus - http://bit.ly/1BlCb6G
• A Distributed Object Model for the Java System - http://pdos.csail.mit.edu/6.824/papers/waldo-rmi.pdf
• RPC and its Offspring: Convenient, Yet Fundamentally Flawed -
http://www.infoq.com/presentations/vinoski-rpc-convenient-but-flawed
• A Critique of the Remote Procedure Call Paradigm - http://bit.ly/14KyZrn
References and Further Reading
Thank You

More Related Content

What's hot

Can F# make us better as .NET developers?
Can F# make us better as .NET developers?Can F# make us better as .NET developers?
Can F# make us better as .NET developers?Kevin Avignon
 
OpCenter - File Sharing & Construction Collaboration
OpCenter - File Sharing & Construction CollaborationOpCenter - File Sharing & Construction Collaboration
OpCenter - File Sharing & Construction CollaborationKate Cronin
 
4 container management
4  container management4  container management
4 container managementLen Bass
 
Theory Review I (pps)
Theory Review I (pps)Theory Review I (pps)
Theory Review I (pps)mladenr
 
6 microservice architecture
6 microservice architecture6 microservice architecture
6 microservice architectureLen Bass
 
Introductio to Docker and usage in HPC applications
Introductio to Docker and usage in HPC applicationsIntroductio to Docker and usage in HPC applications
Introductio to Docker and usage in HPC applicationsRichie Varghese
 
Pull, Don't Push! Sensu Summit 2018 Talk
Pull, Don't Push! Sensu Summit 2018 TalkPull, Don't Push! Sensu Summit 2018 Talk
Pull, Don't Push! Sensu Summit 2018 TalkJulian Dunn
 
Domain Driven Design Ruby Ways - JURNAL 05/10/2017
Domain Driven Design Ruby Ways -  JURNAL 05/10/2017Domain Driven Design Ruby Ways -  JURNAL 05/10/2017
Domain Driven Design Ruby Ways - JURNAL 05/10/2017Jonathan Wylliem
 
2 networking
2 networking2 networking
2 networkingLen Bass
 
Quick & Dirty Model-Driven Architecture Evaluation
Quick & Dirty Model-Driven Architecture EvaluationQuick & Dirty Model-Driven Architecture Evaluation
Quick & Dirty Model-Driven Architecture EvaluationSteven Battle
 
EDB Failover Manager for Seamless Failover & Switchover
EDB Failover Manager for Seamless Failover & SwitchoverEDB Failover Manager for Seamless Failover & Switchover
EDB Failover Manager for Seamless Failover & SwitchoverAshnikbiz
 

What's hot (18)

BDD by example
BDD by exampleBDD by example
BDD by example
 
Ogdc 2007 David Lakritz
Ogdc 2007 David LakritzOgdc 2007 David Lakritz
Ogdc 2007 David Lakritz
 
Can F# make us better as .NET developers?
Can F# make us better as .NET developers?Can F# make us better as .NET developers?
Can F# make us better as .NET developers?
 
OpCenter - File Sharing & Construction Collaboration
OpCenter - File Sharing & Construction CollaborationOpCenter - File Sharing & Construction Collaboration
OpCenter - File Sharing & Construction Collaboration
 
4 container management
4  container management4  container management
4 container management
 
Theory Review I (pps)
Theory Review I (pps)Theory Review I (pps)
Theory Review I (pps)
 
6 microservice architecture
6 microservice architecture6 microservice architecture
6 microservice architecture
 
Introductio to Docker and usage in HPC applications
Introductio to Docker and usage in HPC applicationsIntroductio to Docker and usage in HPC applications
Introductio to Docker and usage in HPC applications
 
Pull, Don't Push! Sensu Summit 2018 Talk
Pull, Don't Push! Sensu Summit 2018 TalkPull, Don't Push! Sensu Summit 2018 Talk
Pull, Don't Push! Sensu Summit 2018 Talk
 
Continuous Platformization
Continuous PlatformizationContinuous Platformization
Continuous Platformization
 
Domain Driven Design Ruby Ways - JURNAL 05/10/2017
Domain Driven Design Ruby Ways -  JURNAL 05/10/2017Domain Driven Design Ruby Ways -  JURNAL 05/10/2017
Domain Driven Design Ruby Ways - JURNAL 05/10/2017
 
2 networking
2 networking2 networking
2 networking
 
SFScon19 - Marco Bizzantino - GitOps and Immutable Infrastructure
SFScon19 - Marco Bizzantino - GitOps and Immutable InfrastructureSFScon19 - Marco Bizzantino - GitOps and Immutable Infrastructure
SFScon19 - Marco Bizzantino - GitOps and Immutable Infrastructure
 
Introduction to Elixir
Introduction to ElixirIntroduction to Elixir
Introduction to Elixir
 
Shooting at a Moving Target
Shooting at a Moving TargetShooting at a Moving Target
Shooting at a Moving Target
 
Quick & Dirty Model-Driven Architecture Evaluation
Quick & Dirty Model-Driven Architecture EvaluationQuick & Dirty Model-Driven Architecture Evaluation
Quick & Dirty Model-Driven Architecture Evaluation
 
CoreML
CoreMLCoreML
CoreML
 
EDB Failover Manager for Seamless Failover & Switchover
EDB Failover Manager for Seamless Failover & SwitchoverEDB Failover Manager for Seamless Failover & Switchover
EDB Failover Manager for Seamless Failover & Switchover
 

Similar to A Note on Distributed Computing - Papers We Love Hyderabad

Microservices: The Best Practices
Microservices: The Best PracticesMicroservices: The Best Practices
Microservices: The Best PracticesPavel Mička
 
Tiger oracle
Tiger oracleTiger oracle
Tiger oracled0nn9n
 
The Rocky Cloud Road
The Rocky Cloud RoadThe Rocky Cloud Road
The Rocky Cloud RoadGert Drapers
 
Architecture Principles CodeStock
Architecture Principles CodeStock Architecture Principles CodeStock
Architecture Principles CodeStock Steve Barbour
 
Serverless: The future of application delivery
Serverless: The future of application deliveryServerless: The future of application delivery
Serverless: The future of application deliveryDoug Vanderweide
 
Qardio experience with Core Data
Qardio experience with Core DataQardio experience with Core Data
Qardio experience with Core DataDmitrii Ivanov
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableComsysto Reply GmbH
 
Microservices for java architects it-symposium-2015-09-15
Microservices for java architects it-symposium-2015-09-15Microservices for java architects it-symposium-2015-09-15
Microservices for java architects it-symposium-2015-09-15Derek Ashmore
 
Domain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsDomain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsMark Windholtz
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithMarkus Eisele
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesMahmoudZidan41
 
VTU 6th Sem Elective CSE - Module 3 cloud computing
VTU 6th Sem Elective CSE - Module 3 cloud computingVTU 6th Sem Elective CSE - Module 3 cloud computing
VTU 6th Sem Elective CSE - Module 3 cloud computingSachin Gowda
 
Entity Framework: To the Unit of Work Design Pattern and Beyond
Entity Framework: To the Unit of Work Design Pattern and BeyondEntity Framework: To the Unit of Work Design Pattern and Beyond
Entity Framework: To the Unit of Work Design Pattern and BeyondSteve Westgarth
 
Enterprise Software Development Patterns
Enterprise Software Development PatternsEnterprise Software Development Patterns
Enterprise Software Development PatternsJosh Lane
 
Scaling Systems: Architectures that grow
Scaling Systems: Architectures that growScaling Systems: Architectures that grow
Scaling Systems: Architectures that growGibraltar Software
 

Similar to A Note on Distributed Computing - Papers We Love Hyderabad (20)

4. system models
4. system models4. system models
4. system models
 
Microservices: The Best Practices
Microservices: The Best PracticesMicroservices: The Best Practices
Microservices: The Best Practices
 
Tiger oracle
Tiger oracleTiger oracle
Tiger oracle
 
The Rocky Cloud Road
The Rocky Cloud RoadThe Rocky Cloud Road
The Rocky Cloud Road
 
distributed system original.pdf
distributed system original.pdfdistributed system original.pdf
distributed system original.pdf
 
Architecture Principles CodeStock
Architecture Principles CodeStock Architecture Principles CodeStock
Architecture Principles CodeStock
 
Data load
Data loadData load
Data load
 
Serverless: The future of application delivery
Serverless: The future of application deliveryServerless: The future of application delivery
Serverless: The future of application delivery
 
Qardio experience with Core Data
Qardio experience with Core DataQardio experience with Core Data
Qardio experience with Core Data
 
Spring
SpringSpring
Spring
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuable
 
Microservices for java architects it-symposium-2015-09-15
Microservices for java architects it-symposium-2015-09-15Microservices for java architects it-symposium-2015-09-15
Microservices for java architects it-symposium-2015-09-15
 
Domain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsDomain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic Patterns
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolith
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
VTU 6th Sem Elective CSE - Module 3 cloud computing
VTU 6th Sem Elective CSE - Module 3 cloud computingVTU 6th Sem Elective CSE - Module 3 cloud computing
VTU 6th Sem Elective CSE - Module 3 cloud computing
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Entity Framework: To the Unit of Work Design Pattern and Beyond
Entity Framework: To the Unit of Work Design Pattern and BeyondEntity Framework: To the Unit of Work Design Pattern and Beyond
Entity Framework: To the Unit of Work Design Pattern and Beyond
 
Enterprise Software Development Patterns
Enterprise Software Development PatternsEnterprise Software Development Patterns
Enterprise Software Development Patterns
 
Scaling Systems: Architectures that grow
Scaling Systems: Architectures that growScaling Systems: Architectures that grow
Scaling Systems: Architectures that grow
 

Recently uploaded

Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 

Recently uploaded (20)

Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 

A Note on Distributed Computing - Papers We Love Hyderabad

  • 1. A Note on Distributed Computing Jim Waldo, Geoff Wyant, Ann Wolrath, Sam Kendall Sun Microsystems Laboratories, 1994 Papers We Love, Hyderabad 11 Jan 2015
  • 2. • There are fundamental differences between local computing and distributed computing • These differences cannot be ignored when designing systems • System designs that ignore these differences are "doomed to failure" Introduction
  • 3. • RPC (Remote Procedure Calls) • RFC 707 • Sun RPC • Argus, Emerald - 80s • CORBA, DCOM - 90s • Java RMI - 90s • EJBs, XML-RPC, SOAP, REST - 90s to now A bit of history
  • 4. Difference in location is an implementation detail Steps in application development • Writing using interfaces that are location agnostic • Finalize which objects will be local and which will be remote • Test with actual real world scenarios Unified View of Objects
  • 5. Principles of this unified design • There exists a single, natural design for the application regardless of whether parts of it will be deployed locally or remotely • Failures and performance issues are implementation dependent and should not be considered in the initial design • The interface of an object is independent of the context in which that object is used Unified View of Objects
  • 6. The unified view is seductive because it promises these • Changing implementations without any change in the interface or the calling entities • Changing locations of implementations without impacting clients
  • 7. • Latency • Memory Access • Partial Failure • Concurrency The Differences, or why the twain shan't meet
  • 8. • Network speed versus processor speed improvements • Counterpoints • Hardware improvements • Communication analysis tools to better locate objects Latency
  • 9. • A local pointer is not valid in a remote address space • Centralize memory access? Memory Access
  • 10. • Local • No partial failures • Detection possible • Distributed • Failure of components is independent, partial • No central entity that can be reliably queried to find out the state of failed components Dealing with indeterminism is required to deal with partial failure. Partial Failure
  • 11. A central problem in distributed computing is to ensure that the state of the system is consistent after partial failures. To have a unified model • Treat everything as local. Indeterministic and fragile. • Treat everything as remote. Introduces unnecessary complexity and defeats the unified model's purpose. Partial Failure
  • 12. • Suffers from the same problems if attempts are made to unify interfaces Concurrency
  • 13. • Robustness is not a function of the implementation • You cannot push robustness, performance problems under "Quality of Service". • These are interface issues • Naming service locking example It's not about QOS
  • 14. • "Local" filesystem APIs used for a distributed system • Soft mounting • Exposes network / server failures to client program • Can lead to filesystem corruption • Hard mounting • Application hangs until the server comes back up • Chain of "frozen workstations" Lessons from NFS
  • 15. • Specify whether local or remote as part of interface definition • For dual-needs, split the interface into local and remote • Compilers will generate code based on intended usage • Access objects differently while writing code • A change in thinking Designing with these differences
  • 16. Objects in different address spaces but on the same machine • Share attributes of both local and remote • Simpler code generation (shared memory etc) A middle ground
  • 17. “I wish….that the temptation of developer convenience hadn’t led us to view distributed computing’s necessary complexity as too hard, leaving us to try to replace it with accidental complexity that doesn’t really work.” - Steve Vinoski in his article Convenience over Correctness
  • 18. • The paper that was discussed - https://www.cc.gatech.edu/classes/AY2010/cs4210_fall/papers/smli_tr-94-29.pdf • Convenience over Correctness - http://steve.vinoski.net/pdf/IEEE-Convenience_Over_Correctness.pdf • Distributed Programming in Argus - http://bit.ly/1BlCb6G • A Distributed Object Model for the Java System - http://pdos.csail.mit.edu/6.824/papers/waldo-rmi.pdf • RPC and its Offspring: Convenient, Yet Fundamentally Flawed - http://www.infoq.com/presentations/vinoski-rpc-convenient-but-flawed • A Critique of the Remote Procedure Call Paradigm - http://bit.ly/14KyZrn References and Further Reading