CSE 434: Computer Networks Project Single vs. Per Connection vs. Pooling Threading Techniques Dominic Hilsbos, Dorothy Johnson, Chris Volpe, Andy Wong,

Slides:



Advertisements
Similar presentations
Maximizing COM+ Application Throughput Steve Swartz Program Manager COM+ Team Microsoft Corporation
Advertisements

Current methods for negotiating firewalls for the Condor ® system Bruce Beckles (University of Cambridge Computing Service) Se-Chang Son (University of.
Categories of I/O Devices
CS 443 Advanced OS Fabián E. Bustamante, Spring 2005 Resource Containers: A new Facility for Resource Management in Server Systems G. Banga, P. Druschel,
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
28.2 Functionality Application Software Provides Applications supply the high-level services that user access, and determine how users perceive the capabilities.
Persistent State Service 1 Performance, Scalability and Management  Topic  Refining the object model  Threading models  Distributed callbacks  Iterators.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris.
Precept 3 COS 461. Concurrency is Useful Multi Processor/Core Multiple Inputs Don’t wait on slow devices.
Server Architecture Models Operating Systems Hebrew University Spring 2004.
Multithreaded Java COMP1681 / SE15 Introduction to Programming Fast Track Session 3.
RPC Project Using either sockets or TLI, implement Remote Procedure Calls between two distinct machines that are communicating over an Ethernet network.
Performance Management 1 Performance, Scalability and Management  Topic  Refining the object model  Threading models  Distributed callbacks  Iterators.
Multi-core processors. History In the early 1970’s the first Microprocessor was developed by Intel. It was a 4 bit machine that was named the 4004 The.
Client Server Model and Software Design TCP/IP allows a programmer to establish communication between two application and to pass data back and forth.
Fundamentals of Python: From First Programs Through Data Structures
CREATIONAL DESIGN PATTERN Object Pool. CREATIONAL DESIGN PATTERN creational design patterns are design patterns that deal with object creation mechanisms,
Tuxedo Advisor.  The Tuxedo advisor contains the following  Tuxedo Performance Advisor  Tuxedo Runtime Monitor  Tuxedo Runtime Action  Tuxedo Configuration.
Chapter 26 Client Server Interaction Communication across a computer network requires a pair of application programs to cooperate. One application on one.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
Today’s topic Other server design alternatives –Preforked servers –Threaded servers –Prethreaded servers.
CHEN Ge CSIS, HKU March 9, Jigsaw W3C’s Java Web Server.
Utilizing Multi-threading, Parallel Processing, and Memory Management Techniques to Improve Transportation Model Performance Jim Lam Andres Rabinowicz.
Multi-Threaded Application CSNB534 Asma Shakil. Overview Software applications employ a strategy called multi- threaded programming to split tasks into.
REVIEW On Friday we explored Client-Server Applications with Sockets. Servers must create a ServerSocket object on a specific Port #. They then can wait.
Proactor Pattern Venkita Subramonian & Christopher Gill
DONE-08 Sizing and Performance Tuning N-Tier Applications Mike Furgal Performance Manager Progress Software
Developing TCP/IP-based Server Applications using Indy Components  Christian Wilkerson.
The Alternative Larry Moore. 5 Nodes and Variant Input File Sizes Hadoop Alternative.
Networks and Client/Server Applications Handling Multiple Clients Concurrently.
Threaded Programming in Python Adapted from Fundamentals of Python: From First Programs Through Data Structures CPE 401 / 601 Computer Network Systems.
Practical Session 12 Reactor Pattern. Disadvantages of Thread per Client It's wasteful – Creating a new Thread is relatively expensive. – Each thread.
Apache JMeter By Lamiya Qasim. Apache JMeter Tool for load test functional behavior and measure performance. Questions: Does JMeter offers support for.
Process Architecture Process Architecture - A portion of a program that can run independently of and concurrently with other portions of the program. Some.
TURBO TANKS PYGAME. GAME FEATURES Two or more players handled by client/server design. Angular motion for tank movement Threadpool server design (to optimize.
1 Client-Server Interaction. 2 Functionality Transport layer and layers below –Basic communication –Reliability Application layer –Abstractions Files.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
The Client-Server Model And the Socket API. Client-Server (1) The datagram service does not require cooperation between the peer applications but such.
©The McGraw-Hill Companies, Inc., 2000© Adapted for use at JMU by Mohamed Aboutabl, 2003Mohamed Aboutabl1 1 Chapter 15 Application Layer and Client-Server.
Remote Procedure Call and Serialization BY: AARON MCKAY.
Acknowledgement: These slides are adapted from slides provided in Thißen & Spaniol's course Distributed Systems and Middleware, RWTH Aachen Processes Distributed.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Scaling RADIUS to Support a Nationwide Network Access Infrastructure Kostas Kalevras NTUA Network Operations Centre.
UNIT-3 Performance Evaluation UNIT-3 IT2031. Web Server Hardware and Performance Evaluation Key question is whether a company should host their own Web.
Quiz 1 Key 3. Class B 5. |Ethernet Frame|IP Datagram|TCP Header|FTP Header|Data|
System Design for Home Automaton. Design Goals Performance Criteria – Server prioritizes client requests to provide quick response time to critical requests.
Chapter 4: Threads. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th edition, Jan 23, 2005 Typical Program Processor utilization?
Multithreading The objectives of this chapter are: To understand the purpose of multithreading To describe Java's multithreading mechanism.
The Object Pool Pattern (Creational – Not a GoF Pattern) ©SoftMoore ConsultingSlide 1.
By Nitin Bahadur Gokul Nadathur Department of Computer Sciences University of Wisconsin-Madison Spring 2000.
Using TCP sockets in Perl Created by M Bateman, A Ruddle & C Allison As part of the TCP View project.
Java Networking I IS Outline  Quiz #3  Network architecture  Protocols  Sockets  Server Sockets  Multi-threaded Servers.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
Lecturer 3: Processes multithreaded Operating System Concepts Process Concept Process Scheduling Operation on Processes Cooperating Processes Interprocess.
1 K. Salah Application Layer Module K. Salah Network layer duties.
Threads by Dr. Amin Danial Asham. References Operating System Concepts ABRAHAM SILBERSCHATZ, PETER BAER GALVIN, and GREG GAGNE.
Chapter 4: Threads.
Threaded Programming in Python
Advanced Topics in Concurrency and Reactive Programming: Asynchronous Programming Majeed Kassis.
Multi-core processors
Chapter 4: Multithreaded Programming
Multi-core processors
Client-Server Interaction
Node.Js Server Side Javascript
ORLEANS Networking Overview
Multithreaded Programming
Threaded Programming in Python
Chapter 4: Threads.
Asynchronous Programming CS Programming Languages for Web Applications
Message Passing Systems
Presentation transcript:

CSE 434: Computer Networks Project Single vs. Per Connection vs. Pooling Threading Techniques Dominic Hilsbos, Dorothy Johnson, Chris Volpe, Andy Wong, Jack Zhao

What’s the Problem? Under what circumstances is a single-threaded server more appropriate than a multi-threaded server? Under what circumstances is thread-per-connection preferable to thread-pooling in a multi-threaded server? What are the limitations of a thread-pooled server?

Motivation Thread pooling is the most scalable of the three connection paradigms, and therefore would be ideal for most projects We are interested in if and how to increase server efficiency The motivation to comparing all three is that under specific requirements where scalabity isn’t an issue, single-threaded or thread-per-connection could be ideal

What's the difference? Single Threading one thread handles requests from multiple clients Processing one connection must be completed before another connection can be considered Ease of implementation Single requests can be processed faster

What's the difference? Multi Threading: Per Connection Assigns one thread to listen to the port, then when a connection comes in a new thread is spawned to handle the connection for its entire lifespan dedicates a new thread to each incoming and outgoing connection Threads destroyed when the connection is closed good if you need to serialize requests from a client, processing request must finish running before another request is taken from the connection

What’s the Difference Multi Threading: Pooling Like Per Connection, pooling dedicates a thread to listen to the port and marshal new connections Thread-pooled connection handler places the new connection into a queue for a thread ‘pool’ The size of the thread pool is configurable by user, able to set pool maximum and minimum If the thread maximum has been reached then the connection must continue waiting on the queue Once a threads is finished executing their activities, they are then returned to the thread pool

Our Test For each server implementation we will test the following scenarios: 5, 50, 500, 5,000 and 25,000 simulated clients 1, 5, and 10 requests per connection 100, 500 and 1,000 iterations of the busy loop.

The Results We are still in the process of running all the test and have yet to come up with a solid conclusion

Questions?!!