The Fallacies of Distributed Computing: What if the Network Fails?

Size: px
Start display at page:

Download "The Fallacies of Distributed Computing: What if the Network Fails?"

Transcription

1 The Fallacies of Distributed Computing: What if the Network Fails? Bert Ertman and Willem Dekker Those who stand for nothing, fall for anything - Alexander Hamilton

2 About us Bert Ertman Fellow Willem Dekker Architect @BertErtman

3 Introduction In 1994 Peter Deutsch drafted 7 assumptions architects and designers of distributed systems are likely to make, which prove wrong in the long run In 1997 James Gosling added another fallacy

4 The 8 Fallacies 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite 4. The network is secure 5. Topology doesn't change 6. There is one administrator 7. Transport cost is zero 8. The network is homogeneous

5 Freely translated, the paper says.

6 The Network hates us!

7 The Cloud hates us too!

8 Latency control

9 Fault tolerance

10 Fault tolerance It s-all-your-fault tolerance

11 Resilience The ability of a system to handle unexpected situations at all times - without the user noticing it (best case) - with graceful degradation of service (worst case)

12 Case

13 Case introduction Liquid Sunshine is a modern web shop selling well liquid sunshine a.k.a. Whisky We sell great products, aim for customer intimacy, and offer great service Our architecture looks like this

14 web application database

15 web application web application web application database

16 web application web application web application database

17 web application web application web application database

18 But suddenly we realised OMG, we ve built a MONOLITH!

19 At that point we switched to Microservices because well just because! and Amazon does it too! :-P

20 Shop UI Search Special Offers Products Order Auth Accounts Stock Billing Shipping Returns Care Center

21 And we were all happy

22

23 Loading Please Wait

24

25 bad response times

26 Shop UI Search Special Offers Products Order Auth Accounts Stock Billing Shipping Returns Care Center

27 Shop UI Special Offers Purchase history Cascading failures

28 Web Application thread pool

29 Web Application thread pool Special Offers

30 Web Application thread pool Special Offers

31 Web Application thread pool Special Offers

32 Web Application thread pool Special Offers Products Order

33 Web Application thread pool Special Offers Products Order

34 Web Application thread pool Special Offers Products Order

35 Problem public class SpecialOffersClient { private final URL endpoint; public Offers getoffers() throws IOException { HttpURLConnection connection = (HttpURLConnection) endpoint.openconnection(); connection.connect(); } InputStream inputstream = connection.getinputstream(); return readtoobject(inputstream);

36 What could possibly go wrong? Well, actually a lot! - connection might take a while to establish - the target service might be slow - the network might be slow or experience hiccups - a response might comprise of multiple packets

37 Dealing with the problem HttpURLConnection connection = (HttpURLConnection) endpoint.openconnection(); connection.setconnecttimeout(300); connection.setreadtimeout(1000); connection.connect(); InputStream inputstream = connection.getinputstream(); Offers result = readtoobject(inputstream);

38 Solution Use timeouts to prevent blocked threads Set aggressive timeouts Apply to every call here here too! Shop UI Special Offers Purchase history

39 And we were all happy

40

41 Loading Please Wait

42

43 bad response times awful throughput

44 Shop UI Search Special Offers Products Order Auth Accounts Stock Billing Shipping Returns Care Center

45 Shop UI Special Offers Timeouts

46 Web Application thread pool timeout Special Offers

47 Web Application thread pool Special Offers many timeouts

48 Throughput < incoming requests Our response times degraded to 5 rps because of timeouts But we had > 10 rps incoming requests

49 Web Application thread pool Special Offers many timeouts

50 Problem Someone had moved the special deals section to the template that is included for every page on the site Throughput of the Special Offers service became lower than the number of incoming requests Result: many timeouts, blocked threads, and queues causing our site to be unreachable

51 Solution For frequently called services, timeouts alone are not enough! You have to make sure that calls to broken services fail fast Guard services with a Circuit Breaker

52 Circuit Breaker try 1 exception/timeout try 1 exception/timeout circuit is CLOSED Initiating Service try 2 exception/timeout try 3 exception/timeout Circuit Breaker try 2 exception/timeout Target Service circuit trips and is OPEN try 83 exception/timeout try 3 exception/timeout circuit is HALF-OPEN

53 Circuit Breaker example public class GetSpecialOffersCommand extends HystrixCommand<Offers> { private final SpecialOffersClient client; public GetSpecialOffersCommand(SpecialOffersClient client) { super(factory.askey("special-offers")); this.client = client; protected Offers run() throws Exception { return client.getspecialoffers(); } } GetSpecialOffersCommand command = new GetSpecialOffersCommand(client); Offers result = command.execute();

54 Solution (revisited) With a Circuit Breaker - calls to broken services fail fast - broken services will be offloaded as well

55 And we were all happy

56

57 Loading Please Wait

58

59 bad response times awful throughput again?!!

60 Shop UI Search Special Offers Products Order Auth Accounts Stock Billing Shipping Returns Care Center

61 Shop UI Special Offers Slow response

62 Web Application thread pool Special Offers slow responses

63 Web Application thread pool Special Offers throughput < incoming requests (again) slow responses

64 Problem Timeouts and Circuit Breakers are not enough if response time < timeout and a sudden increase in load occurs Somehow we need another means of isolating services to prevent cascading failures

65 Solution Introduce Bulkheads Limit the number of concurrent calls to a service Set an upper bound on the number of waiting threads

66 Bulkheads In shipping: partition the load into sections allowing you to seal them off if there is a breach In software: isolate services to prevent cascading failures to cripple the entire system

67 Web Application thread pool bulkhead (size=3) Special Offers

68 Web Application thread pool bulkhead (size=3) Special Offers

69 Web Application thread pool bulkhead (size=3) Special Offers

70 Web Application thread pool bulkhead (size=3) slow response with special offers Special Offers fast response no special offers

71 Bulkheads for each service Shop UI BH BH BH BH BH Search Special Offers Products Order Auth

72 Tuning bulkheads As a rule of thumb: - Determine peak load when healthy 25 rps w/ 200 ms response time 25 x 0.2 = 5 add a bit of breathing room (+2) = 7

73 Bulkheads for each service Shop UI B=5 B=7 B=10 B=4 B=2 Search Special Offers Products Order Auth 28

74 Bulkhead example Semaphore semaphore = new Semaphore(3); Offers result; if (semaphore.tryacquire()) { result = client.getspecialoffers() semaphore.release(); } else { result = Offers.EMPTY; } return result;

75 And we were all happy

76

77 Loading Please Wait

78

79 All service calls are being rejected!

80 But how can this be? The site had a sudden increase in load But we had all our measures in place: - Bulkheads - Circuit Breakers - Timeouts What happened?

81 Shop UI B=5 B=7 B=10 B=4 B=2 Search Special Offers Products Order Auth

82 Problem It turned out we d upgraded our client library and this messed up our settings - timeouts were gone Client libraries are mostly black box - implementation changes can cause disruptions

83 Solution Introduce thread pool handovers - hand over the service call to another thread pool so the initial caller can walk away after timeout

84 Web Application request thread pool service thread pool Service

85 request thread pool Web Application timeout service thread pool Service

86 Web Application request thread pool error service thread pool timeouts are still required! X X X Service

87 Web Application request thread pool service thread pool Bulkhead included Service X X error

88 Solution (revisited) Thread pool handovers are a powerful construct - generic timeouts - bonus bulkhead included when fixing the thread pool size - client library issues are confined to just a single service thread pool

89 ThreadHandOver example ExecutorService executor = new ThreadPoolExecutor(3, 3, ); try { Future<Offers> future = executor.submit(specialoffersclient::getoffers); return future.get(1, TimeUnit.SECONDS); } catch (RejectedExecutionException TimeoutException e) { return Offers.EMPTY; }

90 Hystrix example GetSpecialOffersCommand command = Future<Offers> future = command.queue(); return future.get(); public class GetSpecialOffersCommand extends HystrixCommand<Offers> protected Offers getfallback() { return Offers.EMPTY; }

91

92 Monitoring Monitor all service calls - remote dependencies == integration points Monitor stability measures (problem detector) - errors, timeouts, waits - validate configuration

93 Monitoring TODO - example screenshot van Hystrix monitoring?

94 Monitoring TODO - example screenshot van Hystrix monitoring?

95 Testing Focus on client demand rather than supplier s definition - BDD-style testing Lots of stuff happens on the wire - Wiremock, Saboteur, Simian Army, Chaos Monkey, etc - JMeter, Gatling, Jenkins Performance Plugin

96 Moral of the story Now this case was just to show you what could go wrong with just a very insignificant service and some distribution. - we focused on client side protection, but there are other patterns that can be applied e.g. on the service-side Image what could go wrong on a bigger scale

97 Thanks!

Building Fault Tolerant Micro Services

Building Fault Tolerant Micro Services Building Fault Tolerant Micro Services Kristoffer Erlandsson kristoffer.erlandsson@avanza.se @kerlandsson Building Fault Tolerant Why? Micro Services Stability patterns Failure modes Monitoring guidelines

More information

Patterns of Resilience How to build robust, scalable & responsive systems

Patterns of Resilience How to build robust, scalable & responsive systems Patterns of Resilience How to build robust, scalable & responsive systems Uwe Friedrichsen (codecentric AG) GOTO Night Amsterdam 18. May 2015 @ufried Uwe Friedrichsen uwe.friedrichsen@codecentric.de http://slideshare.net/ufried

More information

How to write Cynical software

How to write Cynical software How to write Cynical software Stability patterns and anti-patterns dagi@goodata.com https://twitter.com/_dagi How to become cynical Eat your own dog food Strong feedback Pager duty (Engineer on duty) DevOps

More information

Application Resilience Engineering and Operations at Netflix. Ben Software Engineer on API Platform at Netflix

Application Resilience Engineering and Operations at Netflix. Ben Software Engineer on API Platform at Netflix Application Resilience Engineering and Operations at Netflix Ben Christensen @benjchristensen Software Engineer on API Platform at Netflix Global deployment spread across data centers in multiple AWS regions.

More information

Microprofile Fault Tolerance. Emily Jiang 1.0,

Microprofile Fault Tolerance. Emily Jiang 1.0, Microprofile Fault Tolerance Emily Jiang 1.0, 2017-09-13 Table of Contents 1. Architecture.............................................................................. 2 1.1. Rational..............................................................................

More information

Serverless The Future of the Cloud?!

Serverless The Future of the Cloud?! DEV4867 Serverless The Future of the Cloud?! by Bert Ertman Those who stand for nothing, fall for anything - Alexander Hamilton @BertErtman Fellow, Director of Technology Outreach at Luminis Background

More information

Developing Resilient Apps on SAP Cloud Platform

Developing Resilient Apps on SAP Cloud Platform PUBLIC 2018-09-05 2018 SAP SE or an SAP affiliate company. All rights reserved. THE BEST RUN Content 1 About this Guide.... 4 2 What is Resilient Software Design.... 5 2.1 Availability....5 2.2 Failure

More information

Microservices at Netflix Scale. First Principles, Tradeoffs, Lessons Learned Ruslan

Microservices at Netflix Scale. First Principles, Tradeoffs, Lessons Learned Ruslan Microservices at Netflix Scale First Principles, Tradeoffs, Lessons Learned Ruslan Meshenberg @rusmeshenberg Microservices: all benefits, no costs? Netflix is the world s leading Internet television network

More information

Fault tolerance made easy A head-start to resilient software design

Fault tolerance made easy A head-start to resilient software design Fault tolerance made easy A head-start to resilient software design Uwe Friedrichsen (codecentric AG) QCon London 5. March 2014 @ufried Uwe Friedrichsen uwe.friedrichsen@codecentric.de http://slideshare.net/ufried

More information

ISTIO 1.0 INTRODUCTION & OVERVIEW OpenShift Commons Briefing Brian redbeard Harrington Product Manager, Istio

ISTIO 1.0 INTRODUCTION & OVERVIEW OpenShift Commons Briefing Brian redbeard Harrington Product Manager, Istio ISTIO 1.0 INTRODUCTION & OVERVIEW OpenShift Commons Briefing Brian redbeard Harrington Product Manager, Istio 2018-08-07 PARTY TIME 2018-07-31 Istio hits 1.0!!! ONE STEP CLOSER TO BORING* * http://mcfunley.com/choose-boring-technology

More information

Huge Codebases Application Monitoring with Hystrix

Huge Codebases Application Monitoring with Hystrix Huge Codebases Application Monitoring with Hystrix 30 Jan. 2016 Roman Mohr Red Hat FOSDEM 2016 1 About Me Roman Mohr Software Engineer at Red Hat Member of the SLA team in ovirt Mail: rmohr@redhat.com

More information

SaaS Providers. ThousandEyes for. Summary

SaaS Providers. ThousandEyes for. Summary USE CASE ThousandEyes for SaaS Providers Summary With Software-as-a-Service (SaaS) applications rapidly replacing onpremise solutions, the onus of ensuring a great user experience for these applications

More information

Hands-On: Hystrix. Best practices & pitfalls

Hands-On: Hystrix. Best practices & pitfalls Hands-On: Hystrix Best practices & pitfalls Hystrix...What? built, heavily tested & used in production by Net ix Java library, implementation of resilience patterns Goals: fault tolerant/robust self-healing

More information

Architectural Code Analysis. Using it in building Microservices NYC Cloud Expo 2017 (June 6-8)

Architectural Code Analysis. Using it in building Microservices NYC Cloud Expo 2017 (June 6-8) Architectural Code Analysis Using it in building Microservices NYC Cloud Expo 2017 (June 6-8) Agenda Intro to Structural Analysis Challenges addressed during traditional software development The new world

More information

Anti-fragile Cloud Architectures. Agim Emruli - mimacom

Anti-fragile Cloud Architectures. Agim Emruli - mimacom Anti-fragile Cloud Architectures Agim Emruli - @aemruli - mimacom Antifragility is beyond resilience or robustness. The resilient resists shocks and stays the same; the antifragile gets better. Nasim Nicholas

More information

Resilience Validation

Resilience Validation Resilience Validation Ramkumar Natarajan & Manager - NFT Cognizant Technology Solutions Abstract With the greater complexities in application and infrastructure landscapes, the risk of failure is ever

More information

ECE 587 Hardware/Software Co-Design Lecture 07 Concurrency in Practice Shared Memory I

ECE 587 Hardware/Software Co-Design Lecture 07 Concurrency in Practice Shared Memory I ECE 587 Hardware/Software Co-Design Spring 2018 1/15 ECE 587 Hardware/Software Co-Design Lecture 07 Concurrency in Practice Shared Memory I Professor Jia Wang Department of Electrical and Computer Engineering

More information

Security Precognition: Chaos Engineering in Incident Response

Security Precognition: Chaos Engineering in Incident Response SESSION ID: ASD-W03 Security Precognition: Chaos Engineering in Incident Response Aaron Rinehart Chief Technology Officer Verica.io @aaronrinehart Kyle Erickson Director of IoT Security Medtronic Resilience

More information

Distributed Architectures & Microservices. CS 475, Spring 2018 Concurrent & Distributed Systems

Distributed Architectures & Microservices. CS 475, Spring 2018 Concurrent & Distributed Systems Distributed Architectures & Microservices CS 475, Spring 2018 Concurrent & Distributed Systems GFS Architecture GFS Summary Limitations: Master is a huge bottleneck Recovery of master is slow Lots of success

More information

Chapter 8 Applying Thread Pools. Magnus Andersson

Chapter 8 Applying Thread Pools. Magnus Andersson Chapter 8 Applying Thread Pools Magnus Andersson Execution policies Not all task are suitable for all execution policies Dependent task Task exploiting thread confinement Response time sensitive tasks

More information

Hystrix Python Documentation

Hystrix Python Documentation Hystrix Python Documentation Release 0.1.0 Hystrix Python Authors Oct 31, 2017 Contents 1 Modules 3 2 Indices and tables 11 Python Module Index 13 i ii Contents: Contents 1 2 Contents CHAPTER 1 Modules

More information

Scaling Up Performance Benchmarking

Scaling Up Performance Benchmarking Scaling Up Performance Benchmarking -with SPECjbb2015 Anil Kumar Runtime Performance Architect @Intel, OSG Java Chair Monica Beckwith Runtime Performance Architect @Arm, Java Champion FaaS Serverless Frameworks

More information

Testing in the Cloud. Not just for the Birds, but Monkeys Too!

Testing in the Cloud. Not just for the Birds, but Monkeys Too! Testing in the Cloud. Not just for the Birds, but Monkeys Too! PhUSE Conference Paper AD02 Geoff Low Software Architect I 15 Oct 2012 Optimising Clinical Trials: Concept to Conclusion Optimising Clinical

More information

Eclipse Incubator. https://projects.eclipse.org/projects/technology.microprofile - ASLv2 License.

Eclipse Incubator. https://projects.eclipse.org/projects/technology.microprofile - ASLv2 License. Current Status 1 Eclipse Incubator https://projects.eclipse.org/projects/technology.microprofile - ASLv2 License http://microprofile.io/ - Home Page https://github.com/eclipse - Eclipse Foundation GitHub

More information

Four times Microservices: REST, Kubernetes, UI Integration, Async. Eberhard Fellow

Four times Microservices: REST, Kubernetes, UI Integration, Async. Eberhard  Fellow Four times Microservices: REST, Kubernetes, UI Integration, Async Eberhard Wolff @ewolff http://ewolff.com Fellow http://continuous-delivery-buch.de/ http://continuous-delivery-book.com/ http://microservices-buch.de/

More information

September 15th, Finagle + Java. A love story (

September 15th, Finagle + Java. A love story ( September 15th, 2016 Finagle + Java A love story ( ) @mnnakamura hi, I m Moses Nakamura Twitter lives on the JVM When Twitter realized we couldn t stay on a Rails monolith and continue to scale at the

More information

Transformation-free Data Pipelines by combining the Power of Apache Kafka and the Flexibility of the ESB's

Transformation-free Data Pipelines by combining the Power of Apache Kafka and the Flexibility of the ESB's Building Agile and Resilient Schema Transformations using Apache Kafka and ESB's Transformation-free Data Pipelines by combining the Power of Apache Kafka and the Flexibility of the ESB's Ricardo Ferreira

More information

Elastic Load Balancing

Elastic Load Balancing Elastic Load Balancing Deep Dive & Best Practices Mariano Vecchioli, Sr. Technical Account Manager AWS Michaela Kurkiewicz, Principal Service Manager Co-op Tina Howell, Platform Lead - Co-op June 28 th,

More information

WHITEPAPER AMAZON ELB: Your Master Key to a Secure, Cost-Efficient and Scalable Cloud.

WHITEPAPER AMAZON ELB: Your Master Key to a Secure, Cost-Efficient and Scalable Cloud. WHITEPAPER AMAZON ELB: Your Master Key to a Secure, Cost-Efficient and Scalable Cloud www.cloudcheckr.com TABLE OF CONTENTS Overview 3 What Is ELB? 3 How ELB Works 4 Classic Load Balancer 5 Application

More information

[module lab 1.2] STRUCTURING PROGRAMS IN TASKS

[module lab 1.2] STRUCTURING PROGRAMS IN TASKS v1.0 Sistemi Concorrenti e di Rete LS II Facoltà di Ingegneria - Cesena a.a 2008/2009 [module lab 1.2] STRUCTURING PROGRAMS IN TASKS 1 STRUCTURING CONCURRENT PROGRAMS INTO TASKS Task concept abstract,

More information

Thread Safety. Review. Today o Confinement o Threadsafe datatypes Required reading. Concurrency Wrapper Collections

Thread Safety. Review. Today o Confinement o Threadsafe datatypes Required reading. Concurrency Wrapper Collections Thread Safety Today o Confinement o Threadsafe datatypes Required reading Concurrency Wrapper Collections Optional reading The material in this lecture and the next lecture is inspired by an excellent

More information

Episode 4. Flow and Congestion Control. Baochun Li Department of Electrical and Computer Engineering University of Toronto

Episode 4. Flow and Congestion Control. Baochun Li Department of Electrical and Computer Engineering University of Toronto Episode 4. Flow and Congestion Control Baochun Li Department of Electrical and Computer Engineering University of Toronto Recall the previous episode Detailed design principles in: The link layer The network

More information

Eclipse MicroProfile: Accelerating the adoption of Java Microservices

Eclipse MicroProfile: Accelerating the adoption of Java Microservices Eclipse MicroProfile: Accelerating the adoption of Java Microservices Emily Jiang twitter @emilyfhjiang 10 th October 2017 What is Eclipse MicroProfile? Eclipse MicroProfile is an open-source community

More information

Microservices stress-free and without increased heart-attack risk

Microservices stress-free and without increased heart-attack risk Microservices stress-free and without increased heart-attack risk Uwe Friedrichsen (codecentric AG) microxchg Berlin, 12. February 2015 @ufried Uwe Friedrichsen uwe.friedrichsen@codecentric.de http://slideshare.net/ufried

More information

Designing Fault-Tolerant Applications

Designing Fault-Tolerant Applications Designing Fault-Tolerant Applications Miles Ward Enterprise Solutions Architect Building Fault-Tolerant Applications on AWS White paper published last year Sharing best practices We d like to hear your

More information

Modern Database Concepts

Modern Database Concepts Modern Database Concepts Basic Principles Doc. RNDr. Irena Holubova, Ph.D. holubova@ksi.mff.cuni.cz NoSQL Overview Main objective: to implement a distributed state Different objects stored on different

More information

Stability Patterns and Antipatterns

Stability Patterns and Antipatterns Stability Patterns and Antipatterns Michael Nygard mtnygard@thinkrelevance.com @mtnygard Michael Nygard, 2007-2012 1 Stability Antipatterns 2 Integration Points Integrations are the #1 risk to stability.

More information

Java Without the Jitter

Java Without the Jitter TECHNOLOGY WHITE PAPER Achieving Ultra-Low Latency Table of Contents Executive Summary... 3 Introduction... 4 Why Java Pauses Can t Be Tuned Away.... 5 Modern Servers Have Huge Capacities Why Hasn t Latency

More information

Fault-Tolerant Computer System Design ECE 695/CS 590. Putting it All Together

Fault-Tolerant Computer System Design ECE 695/CS 590. Putting it All Together Fault-Tolerant Computer System Design ECE 695/CS 590 Putting it All Together Saurabh Bagchi ECE/CS Purdue University ECE 695/CS 590 1 Outline Looking at some practical systems that integrate multiple techniques

More information

Distributed Systems Principles and Paradigms. Chapter 01: Introduction

Distributed Systems Principles and Paradigms. Chapter 01: Introduction Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science Room R4.20, steen@cs.vu.nl Chapter 01: Introduction Version: October 25, 2009 2 / 26 Contents Chapter

More information

ThousandEyes for. Application Delivery White Paper

ThousandEyes for. Application Delivery White Paper ThousandEyes for Application Delivery White Paper White Paper Summary The rise of mobile applications, the shift from on-premises to Software-as-a-Service (SaaS), and the reliance on third-party services

More information

SUPERIOR MISSION SYSTEMS Faster, Resilient, Secure & More Affordable

SUPERIOR MISSION SYSTEMS Faster, Resilient, Secure & More Affordable SUPERIOR MISSION SYSTEMS Faster, Resilient, Secure & More Affordable Dave Manley, Chief Mission Systems Architect February 27, 2018 Emerging Requirements Are More Demanding Faster change velocities (sustainable)

More information

Cloud-Native Applications. Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0

Cloud-Native Applications. Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0 Cloud-Native Applications Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0 Cloud-Native Characteristics Lean Form a hypothesis, build just enough to validate or disprove it. Learn

More information

Distributed Systems Principles and Paradigms. Chapter 01: Introduction. Contents. Distributed System: Definition.

Distributed Systems Principles and Paradigms. Chapter 01: Introduction. Contents. Distributed System: Definition. Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science Room R4.20, steen@cs.vu.nl Chapter 01: Version: February 21, 2011 1 / 26 Contents Chapter 01: 02: Architectures

More information

Distributed Systems Principles and Paradigms

Distributed Systems Principles and Paradigms Distributed Systems Principles and Paradigms Chapter 01 (version September 5, 2007) Maarten van Steen Vrije Universiteit Amsterdam, Faculty of Science Dept. Mathematics and Computer Science Room R4.20.

More information

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring 2004

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring 2004 CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring 2004 Lecture 9: Readers-Writers and Language Support for Synchronization 9.1.2 Constraints 1. Readers can access database

More information

IGL S AND MOUNT NS. Taking AKKA to Production

IGL S AND MOUNT NS. Taking AKKA to Production IGL S AND MOUNT NS Taking AKKA to Production THIS TALK Hello! I m Derek Wyatt, Senior Platform Developer at Auvik Networks! and author of Akka Concurrency Scala, Play and Akka form the foundational triad

More information

Thread Pools SE 441. Prof. Bullinger

Thread Pools SE 441. Prof. Bullinger Thread Pools SE 441 Prof. Bullinger Thread Pools Thread Pool Limitations Sizing Thread Pools ThreadPoolExecutor Queuing Tasks Parallelizing Loops Thread Pool Limitations Task Dependencies Different types

More information

Parallel Programming Practice

Parallel Programming Practice Parallel Programming Practice Threads and Tasks Susanne Cech Previtali Thomas Gross Last update: 2009-10-29, 09:12 Thread objects java.lang.thread Each thread is associated with an instance of the class

More information

How Emerging Optical Technologies will affect the Future Internet

How Emerging Optical Technologies will affect the Future Internet How Emerging Optical Technologies will affect the Future Internet NSF Meeting, 5 Dec, 2005 Nick McKeown Stanford University nickm@stanford.edu http://www.stanford.edu/~nickm Emerged (and deployed) Optical

More information

Introduction to reactive programming. Jonas Chapuis, Ph.D.

Introduction to reactive programming. Jonas Chapuis, Ph.D. Introduction to reactive programming Jonas Chapuis, Ph.D. Reactive programming is an asynchronous programming paradigm oriented around data flows and the propagation of change wikipedia Things happening

More information

Parallel Task Executor in Java

Parallel Task Executor in Java Parallel Task Executor in Java Niravkumar Patel Computer Science Department San Jose State University San Jose, CA 95192 425-772-2509 niravkumar.patel1989@gmail.com ABSTRACT In software development there

More information

Securely Access Services Over AWS PrivateLink. January 2019

Securely Access Services Over AWS PrivateLink. January 2019 Securely Access Services Over AWS PrivateLink January 2019 Notices This document is provided for informational purposes only. It represents AWS s current product offerings and practices as of the date

More information

The Total Network Volume chart shows the total traffic volume for the group of elements in the report.

The Total Network Volume chart shows the total traffic volume for the group of elements in the report. Tjänst: Network Health Total Network Volume and Total Call Volume Charts Public The Total Network Volume chart shows the total traffic volume for the group of elements in the report. Chart Description

More information

Programming Distributed Systems

Programming Distributed Systems Annette Bieniusa Programming Distributed Systems Summer Term 2018 1/ 26 Programming Distributed Systems 09 Testing Distributed Systems Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Summer

More information

Large-Scale Web Applications

Large-Scale Web Applications Large-Scale Web Applications Mendel Rosenblum Web Application Architecture Web Browser Web Server / Application server Storage System HTTP Internet CS142 Lecture Notes - Intro LAN 2 Large-Scale: Scale-Out

More information

CA464 Distributed Programming

CA464 Distributed Programming 1 / 25 CA464 Distributed Programming Lecturer: Martin Crane Office: L2.51 Phone: 8974 Email: martin.crane@computing.dcu.ie WWW: http://www.computing.dcu.ie/ mcrane Course Page: "/CA464NewUpdate Textbook

More information

Wireless TCP Performance Issues

Wireless TCP Performance Issues Wireless TCP Performance Issues Issues, transport layer protocols Set up and maintain end-to-end connections Reliable end-to-end delivery of data Flow control Congestion control Udp? Assume TCP for the

More information

Scaling App Engine Applications. Justin Haugh, Guido van Rossum May 10, 2011

Scaling App Engine Applications. Justin Haugh, Guido van Rossum May 10, 2011 Scaling App Engine Applications Justin Haugh, Guido van Rossum May 10, 2011 First things first Justin Haugh Software Engineer Systems Infrastructure jhaugh@google.com Guido Van Rossum Software Engineer

More information

Elastic Load Balance. User Guide. Issue 14 Date

Elastic Load Balance. User Guide. Issue 14 Date Issue 14 Date 2018-02-28 Contents Contents 1 Overview... 1 1.1 Basic Concepts... 1 1.1.1 Elastic Load Balance... 1 1.1.2 Public Network Load Balancer...1 1.1.3 Private Network Load Balancer... 2 1.1.4

More information

SLE experience over unreliable network links

SLE experience over unreliable network links SLE experience over unreliable network links Ciprian Furtuna 1 and Carla Garcia 2 LSE Space GmbH, Argelsrieder Feld 22, 82234, Wessling, Germany Wilfried Kruse 3 Deutsches Zentrum für Luft und Raumfahrt

More information

Democratized Performance Test Platform. Open source, enterprise ready modular platform, that is tool chain friendly.

Democratized Performance Test Platform. Open source, enterprise ready modular platform, that is tool chain friendly. Democratized Performance Test Platform Open source, enterprise ready modular platform, that is tool chain friendly. Democratized Performance Test Platform Open source, enterprise ready modular platform,

More information

SLE experience over unreliable network links

SLE experience over unreliable network links SLE experience over unreliable network links Ciprian Furtuna 1 and Carla Garcia 2 LSE Space GmbH, Argelsrieder Feld 22, 82234, Wessling, Germany Wilfried Kruse 3 Deutsches Zentrum für Luft und Raumfahrt

More information

Requirements. PA4: Multi-thread File Downloader Page 1. Assignment

Requirements. PA4: Multi-thread File Downloader Page 1. Assignment PA4: Multi-thread File Downloader Page 1 Assignment What to Submit Write a program that downloads a file from the Internet using multiple threads. The application has a Graphical Interface written in JavaFX,

More information

Starting the Avalanche:

Starting the Avalanche: Starting the Avalanche: Application DoS In Microservice Architectures Scott Behrens Jeremy Heffner Introductions Scott Behrens Netflix senior application security engineer Breaking and building for 8+

More information

02 - Distributed Systems

02 - Distributed Systems 02 - Distributed Systems Definition Coulouris 1 (Dis)advantages Coulouris 2 Challenges Saltzer_84.pdf Models Physical Architectural Fundamental 2/58 Definition Distributed Systems Distributed System is

More information

PROCESSES AND THREADS THREADING MODELS. CS124 Operating Systems Winter , Lecture 8

PROCESSES AND THREADS THREADING MODELS. CS124 Operating Systems Winter , Lecture 8 PROCESSES AND THREADS THREADING MODELS CS124 Operating Systems Winter 2016-2017, Lecture 8 2 Processes and Threads As previously described, processes have one sequential thread of execution Increasingly,

More information

BUILDING SCALABLE AND RESILIENT OTT SERVICES AT SKY

BUILDING SCALABLE AND RESILIENT OTT SERVICES AT SKY BUILDING SCALABLE AND RESILIENT OTT SERVICES AT SKY T. C. Maule Sky Plc, London, UK ABSTRACT Sky have tackled some of the most challenging scalability problems in the OTT space head-on. But its no secret

More information

Week 2 / Paper 1. The Design Philosophy of the DARPA Internet Protocols

Week 2 / Paper 1. The Design Philosophy of the DARPA Internet Protocols Week 2 / Paper 1 The Design Philosophy of the DARPA Internet Protocols David D. Clark ACM CCR, Vol. 18, No. 4, August 1988 Main point Many papers describe how the Internet Protocols work But why do they

More information

02 - Distributed Systems

02 - Distributed Systems 02 - Distributed Systems Definition Coulouris 1 (Dis)advantages Coulouris 2 Challenges Saltzer_84.pdf Models Physical Architectural Fundamental 2/60 Definition Distributed Systems Distributed System is

More information

Cloud Native Architecture 300. Copyright 2014 Pivotal. All rights reserved.

Cloud Native Architecture 300. Copyright 2014 Pivotal. All rights reserved. Cloud Native Architecture 300 Copyright 2014 Pivotal. All rights reserved. Cloud Native Architecture Why What How Cloud Native Architecture Why What How Cloud Computing New Demands Being Reactive Cloud

More information

DESIGN AS RISK MINIMIZATION

DESIGN AS RISK MINIMIZATION THOMAS LATOZA SWE 621 FALL 2018 DESIGN AS RISK MINIMIZATION IN CLASS EXERCISE As you come in and take a seat What were the most important risks you faced in a recent software project? WHAT IS A RISK? WHAT

More information

Morgan Bruce Paulo A. Pereira

Morgan Bruce Paulo A. Pereira Morgan Bruce Paulo A. Pereira Sample Chapter MANNING A microservice production environment Production Monitors Network and routing Connects Observability Observes Engineers Writes Manages Runtime management

More information

Interactive Programming In Java

Interactive Programming In Java IPIJ: Chapter Outlines Page 1 Front Matter I. Table of Contents 2. Preface Introduction to Interactive Programming by Lynn Andrea Stein A Rethinking CS101 Project Interactive Programming In Java Chapter

More information

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Computer Systems Engineering: Spring Quiz I

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Computer Systems Engineering: Spring Quiz I Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.033 Computer Systems Engineering: Spring 2016 Quiz I There are 15 questions and 13 pages in this quiz booklet.

More information

Part ONE

Part ONE Networked Systems, COMPGZ0, 0 Answer TWO questions from Part ONE on the answer booklet containing lined writing paper, and answer ALL questions in Part TWO on the multiple-choice question answer sheet.

More information

Inside the Garbage Collector

Inside the Garbage Collector Inside the Garbage Collector Agenda Applications and Resources The Managed Heap Mark and Compact Generations Non-Memory Resources Finalization Hindering the GC Helping the GC 2 Applications and Resources

More information

Operating Systems Overview

Operating Systems Overview Operating Systems Overview 1 operating system no clear traditional definition each definition cover a distinct aspect an interface between applications and hardware true, this was the first reason for

More information

Fault Tolerance in Microservices

Fault Tolerance in Microservices Masaryk University Faculty of Informatics Fault Tolerance in Microservices Master s Thesis Bc. Tomáš Livora Brno, Fall 2016 Declaration Hereby I declare that this paper is my original authorial work,

More information

The Keys to Monitoring Internal Web Applications

The Keys to Monitoring Internal Web Applications WHITEPAPER The Keys to Monitoring Internal Web Applications Much of the focus on applications today revolves around SaaS apps delivered from the cloud. However, many large enterprises are also required

More information

Firewalls Network Security: Firewalls and Virtual Private Networks CS 239 Computer Software March 3, 2003

Firewalls Network Security: Firewalls and Virtual Private Networks CS 239 Computer Software March 3, 2003 Firewalls Network Security: Firewalls and Virtual Private Networks CS 239 Computer Software March 3, 2003 A system or combination of systems that enforces a boundary between two or more networks - NCSA

More information

Microservices. Are your Frameworks ready? Martin Eigenbrodt Alexander Heusingfeld

Microservices. Are your Frameworks ready? Martin Eigenbrodt Alexander Heusingfeld Microservices Are your Frameworks ready? Martin Eigenbrodt martin.eigenbrodt@innoq.com Alexander Heusingfeld alexander.heusingfeld@innoq.com Microservices? Levels of Architecture Domain architecture Macro

More information

Hybrid Cloud for Business Communications

Hybrid Cloud for Business Communications Hybrid Cloud for Business Communications THE ESSENTIAL GUIDE So you re considering hybrid cloud for your business communications. You re not alone! In fact, more and more businesses are turning to cloud

More information

The Y-Comm Framework. A new way

The Y-Comm Framework. A new way The Y-Comm Framework A new way Mobility within Domains Mobile IP is good for moving between large defined domains But we also have to consider mobility issues within a domain which may have a number of

More information

Scalable Enterprise Networks with Inexpensive Switches

Scalable Enterprise Networks with Inexpensive Switches Scalable Enterprise Networks with Inexpensive Switches Minlan Yu minlanyu@cs.princeton.edu Princeton University Joint work with Alex Fabrikant, Mike Freedman, Jennifer Rexford and Jia Wang 1 Enterprises

More information

Wireless Challenges : Computer Networking. Overview. Routing to Mobile Nodes. Lecture 25: Wireless Networking

Wireless Challenges : Computer Networking. Overview. Routing to Mobile Nodes. Lecture 25: Wireless Networking Wireless Challenges 15-441: Computer Networking Lecture 25: Wireless Networking Force us to rethink many assumptions Need to share airwaves rather than wire Don t know what hosts are involved Host may

More information

Distributed Systems. Day 13: Distributed Transaction. To Be or Not to Be Distributed.. Transactions

Distributed Systems. Day 13: Distributed Transaction. To Be or Not to Be Distributed.. Transactions Distributed Systems Day 13: Distributed Transaction To Be or Not to Be Distributed.. Transactions Summary Background on Transactions ACID Semantics Distribute Transactions Terminology: Transaction manager,,

More information

TCP Tuning for the Web

TCP Tuning for the Web TCP Tuning for the Web Jason Cook - @macros - jason@fastly.com Me Co-founder and Operations at Fastly Former Operations Engineer at Wikia Lots of Sysadmin and Linux consulting The Goal Make the best use

More information

6.033 Spring 2015 Lecture #11: Transport Layer Congestion Control Hari Balakrishnan Scribed by Qian Long

6.033 Spring 2015 Lecture #11: Transport Layer Congestion Control Hari Balakrishnan Scribed by Qian Long 6.033 Spring 2015 Lecture #11: Transport Layer Congestion Control Hari Balakrishnan Scribed by Qian Long Please read Chapter 19 of the 6.02 book for background, especially on acknowledgments (ACKs), timers,

More information

Distributed Systems. 16. Distributed Lookup. Paul Krzyzanowski. Rutgers University. Fall 2017

Distributed Systems. 16. Distributed Lookup. Paul Krzyzanowski. Rutgers University. Fall 2017 Distributed Systems 16. Distributed Lookup Paul Krzyzanowski Rutgers University Fall 2017 1 Distributed Lookup Look up (key, value) Cooperating set of nodes Ideally: No central coordinator Some nodes can

More information

Scheduling Mar. 19, 2018

Scheduling Mar. 19, 2018 15-410...Everything old is new again... Scheduling Mar. 19, 2018 Dave Eckhardt Brian Railing Roger Dannenberg 1 Outline Chapter 5 (or Chapter 7): Scheduling Scheduling-people/textbook terminology note

More information

Freecoms VoIP Mobile Community Telecom S. Ferrari, page n 1»

Freecoms VoIP Mobile Community Telecom S. Ferrari, page n 1» Freecoms VoIP Mobile Community Telecom S. Ferrari, page n 1» Multiservice Mobile VoIP Community Powerful multiservice package: Home and Mobile VoIP communication. Business and Private WEB Portal community

More information

Concurrency Control In Distributed Main Memory Database Systems. Justin A. DeBrabant

Concurrency Control In Distributed Main Memory Database Systems. Justin A. DeBrabant In Distributed Main Memory Database Systems Justin A. DeBrabant debrabant@cs.brown.edu Concurrency control Goal: maintain consistent state of data ensure query results are correct The Gold Standard: ACID

More information

Microservices Implementations not only with Java. Eberhard Wolff Fellow

Microservices Implementations not only with Java. Eberhard Wolff Fellow Microservices Implementations not only with Java Eberhard Wolff http://ewolff.com @ewolff Fellow http://continuous-delivery-buch.de/ http://continuous-delivery-book.com/ http://microservices-buch.de/ http://microservices-book.com/

More information

SCALE AND SECURE MOBILE / IOT MQTT TRAFFIC

SCALE AND SECURE MOBILE / IOT MQTT TRAFFIC APPLICATION NOTE SCALE AND SECURE MOBILE / IOT TRAFFIC Connecting millions of devices requires a simple implementation for fast deployments, adaptive security for protection against hacker attacks, and

More information

A RESTful Java Framework for Asynchronous High-Speed Ingest

A RESTful Java Framework for Asynchronous High-Speed Ingest A RESTful Java Framework for Asynchronous High-Speed Ingest Pablo Silberkasten Jean De Lavarene Kuassi Mensah JDBC Product Development October 5, 2017 3 Safe Harbor Statement The following is intended

More information

a. Under overload, whole network collapsed iii. How do you make an efficient high-level communication mechanism? 1. Similar to using compiler instead

a. Under overload, whole network collapsed iii. How do you make an efficient high-level communication mechanism? 1. Similar to using compiler instead RPC 1. Project proposals due tonight 2. Exam on Tuesday in class a. Open note, open papers b. Nothing else (no internet, no extra papers) 3. Notes from Creator: a. VMware ESX: Carl Waldspurger i. Still

More information

Within Kodi you can add additional programs called addons. Each of these addons provides access to lots of different types of video content.

Within Kodi you can add additional programs called addons. Each of these addons provides access to lots of different types of video content. There are a lot of misconceptions in the Kodi world about what buffering is, what causes it, why it happens and how to help avoid it. So I wanted to write an article addressing some of the causes of buffering

More information

Protecting the Platforms. When it comes to the cost of keeping computers in good working order, Chapter10

Protecting the Platforms. When it comes to the cost of keeping computers in good working order, Chapter10 Chapter10 Protecting the Platforms Painting: The art of protecting flat surfaces from the weather and exposing them to the critic. Ambrose Bierce (1842 1914) When it comes to the cost of keeping computers

More information

Qualifying exam: operating systems, 1/6/2014

Qualifying exam: operating systems, 1/6/2014 Qualifying exam: operating systems, 1/6/2014 Your name please: Part 1. Fun with forks (a) What is the output generated by this program? In fact the output is not uniquely defined, i.e., it is not always

More information