1Distributed ComputingCMSC 433, March 27th2Is distributing computingdifferent?• What kinds of distributed computingenvironments exist?• Ways in which distributed computing isdifferent– Addressing objects– Latency– Partial failure– Concurrency3Distributed computingenvironments• Usually refers to multiple CPU’s• Shared address space or message passing?• On same chip, in same room, or across theinternet?– Latency, failure modes4Existing environments• Seti @ Home• Server for search engine• My laptop, PDA, cell phone, MP3 playerand digital camera5Types of failure• Machine sleeps– wakes up, recovers state• Machine crash or failure– machine may reboot and rejoin• Network partition– network may heal6Uniform view of distributedobjects• Some objects are remote, some are local– Doesn’t really matter to user of object– Objects might transparently migrate• Design doesn’t have to take objectdistribution into account• Failure and performance issues don’t belongin the design• The interface doesn’t change if an object isremote27Uniform view• not appropriate for– wide area networks,– consumer electronics,– portable devices• appropriate for some local area networks– but robust distributed applications plan forfailure– even if local8Memory access• Can we make the fact that an object isremote transparent?• Perhaps for objects– What about int’s ?– What about char *’s?• If you can’t directly access fields and createpointers to them,– not transparent9Partial failure• Computers fail• OS’s crash• Networks fail• PDA’s get turned off or taken out of theroom• Often no warning10Queue example• Want to add x to remote queue q– q.enqueue(x)• Operation could fail• Want to reliably enqueue x11Queue example• while (true) {try { q.enque(x);break;}catch (RemoteException e) {}}12Partial failure• Object was enqueued, but failure occurredduring return message• Could enqueue x multiple times• How to fix?– Need a request tag so that duplication enqueuerequests can be detected313Concurrency• Distributed computations mandatesconcurrency14Latency• Remote calls are much more expensive thanlocal calls15Latency• Making a call to an object on a remotemachine is
View Full Document