Java Development: Do s and Don ts
|
|
- Beatrix Gibbs
- 6 years ago
- Views:
Transcription
1 Java Development: Do s and Don ts 1
2 Overview Asynchronous networking Data copies Connection management Logging 2
3 ASL Project 2016: Middleware for different replication modes Middleware op SET/DEL GET Memcached hash op SET/DEL GET Memcached Middleware provides multiple replication schemes Sets and Deletes are handled by an asynchronous thread (one for each server) Gets are handled by a synchronous reader thread pool 3
4 What is wrong with this code? GET queue Memcached 4
5 What is wrong with this code? GET queue public class ReadHandler implements Runnable { [] public ReadHandler(BlockingQueue<Request> queue, InetSocketAddress serveraddr){ this.queue = queue; server = SocketChannel.open(); server.connect(serveraddr); server.configureblocking(false); Memcached public void run(){ while(true){ Request request = queue.take(); ByteBuffer command = ByteBuffer.wrap(request.getCommand()); server.write(command); command.clear(); ByteBuffer buf_header = ByteBuffer.allocate(message_size); int bytesread = 0; do{ bytesread = server.read(buf_header); while(bytesread == 0); [] 5
6 What is wrong with this code? GET queue public class ReadHandler implements Runnable { [] public ReadHandler(BlockingQueue<Request> queue, InetSocketAddress serveraddr){ this.queue = queue; server = SocketChannel.open(); server.connect(serveraddr); server.configureblocking(false); Socket is non-blocking. What are the implications? public void run(){ while(true){ Request request = queue.take(); ByteBuffer command = ByteBuffer.wrap(request.getCommand()); server.write(command); command.clear(); Memcached ByteBuffer buf_header = ByteBuffer.allocate(message_size); int bytesread = 0; do{ bytesread = server.read(buf_header); while(bytesread == 0); [] 6
7 What is wrong with this code? GET queue public class ReadHandler implements Runnable { [] public ReadHandler(BlockingQueue<Request> queue, InetSocketAddress serveraddr){ this.queue = queue; server = SocketChannel.open(); server.connect(serveraddr); server.configureblocking(false); Socket is non-blocking. What are the implications? public void run(){ while(true){ Request request = queue.take(); ByteBuffer command = ByteBuffer.wrap(request.getCommand()); server.write(command); command.clear(); Memcached ByteBuffer buf_header = ByteBuffer.allocate(message_size); int bytesread = 0; do{ bytesread = server.read(buf_header); while(bytesread == 0); Read will return instantly [] 7
8 What is wrong with this code? GET queue public class ReadHandler implements Runnable { [] public ReadHandler(BlockingQueue<Request> queue, InetSocketAddress serveraddr){ this.queue = queue; server = SocketChannel.open(); server.connect(serveraddr); server.configureblocking(false); Socket is non-blocking. What are the implications? Memcached public void run(){ while(true){ Request request = queue.take(); How about a read with timeout? ByteBuffer command = ByteBuffer.wrap(request.getCommand()); server.write(command); command.clear(); ByteBuffer buf_header = ByteBuffer.allocate(message_size); int bytesread = 0; do{ bytesread = server.read(buf_header); while(bytesread == 0); Read will return instantly [] 8
9 What is wrong with this code? GET queue public class ReadHandler implements Runnable { [] public ReadHandler(BlockingQueue<Request> queue, InetSocketAddress serveraddr){ this.queue = queue; server = SocketChannel.open(); server.connect(serveraddr); server.configureblocking(false); Socket is non-blocking. What are the implications? Memcached public void run(){ while(true){ Request request = queue.take(); How about a read with timeout? ByteBuffer command = ByteBuffer.wrap(request.getCommand()); Can lead to increasing and server.write(command); unpredictable response time. command.clear(); ByteBuffer buf_header = ByteBuffer.allocate(message_size); int bytesread = 0; do{ bytesread = server.read(buf_header); while(bytesread == 0); Read will return instantly [] 9
10 How much difference can this change make? req/sec 10
11 How much difference can this change make? req/sec req/sec 11
12 How about different message sizes? Student A Student B 12
13 How about different message sizes? Student A Is this network bound? Student B 13
14 How about different message sizes? Student A Is this network bound? No. Sending data to 7 servers is not 2x slower than 3 servers. Required bandwidth << network bw. Student B 14
15 How about different message sizes? Student A Large messages should have a higher latency. Is this network bound? No. Sending data to 7 servers is not 2x slower than 3 servers. Required bandwidth << network bw. Student B 15
16 How about different message sizes? Student A Large messages should have a higher latency. Yes, but multiple threads will hide that latency and sustain the throughput. Is this network bound? No. Sending data to 7 servers is not 2x slower than 3 servers. Required bandwidth << network bw. Student B 16
17 How about different message sizes? Student A Large messages should have a higher latency. Yes, but multiple threads will hide that latency and sustain the throughput. Is this network bound? No. Sending data to 7 servers is not 2x slower than 3 servers. Required bandwidth << network bw. Student B Data is copied across buffers! String s1 = request ; String s2 = new String(s1); 17
18 Overview Asynchronous networking Data copies Connection management Logging 18
19 Network Microbenchmark: Echo server Message Client Server Client connects to server and sends message Server reads message and sends it back Client reads message 19
20 What is wrong with this code? Client Code: long starttime = System.nanoTime(); for (int i = 0; i < ; ++i) { Socket socket = new Socket(hostName, portnumber); PrintWriter out = new PrintWriter(socket.getOutputStream()); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); out.println(m); out.flush(); String t = in.readline(); out.close(); in.close(); socket.close(); long stoptime = System.nanoTime(); System.out.println("It took " + (stoptime starttime) + ns ); 20
21 What is wrong with this code? Client Code: long starttime = System.nanoTime(); for (int i = 0; i < ; ++i) { Socket socket = new Socket(hostName, portnumber); PrintWriter out = new PrintWriter(socket.getOutputStream()); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); out.println(m); out.flush(); String t = in.readline(); You measure how fast the OS can open and close connections out.close(); in.close(); socket.close(); long stoptime = System.nanoTime(); System.out.println("It took " + (stoptime starttime) + ns ); 21
22 Keep connections open Client Code: long starttime = System.nanoTime(); Open the connection once and reuse it Client Code: long starttime = System.nanoTime(); for (int i = 0; i < ; ++i) { Socket socket = new Socket(hostName, portnumber); PrintWriter out = new PrintWriter(socket.getOutputStream()); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); out.println(m); out.flush(); String t = in.readline(); out.close(); in.close(); socket.close(); Socket socket = new Socket(hostName, portnumber); PrintWriter out = new PrintWriter(socket.getOutputStream()); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); for (int i = 0; i < ; ++i) { out.println(m); out.flush(); String t = in.readline(); out.close(); in.close(); socket.close(); long stoptime = System.nanoTime(); System.out.println("It took " + (stoptime starttime) + ns ); long stoptime = System.nanoTime(); System.out.println("It took " + (stoptime starttime) + ns ); 22
23 What is the impact? x difference Messages/sec Single Connection Open/Close 1024 bytes 23
24 What is the impact? Larger difference for smaller messages x difference Messages/sec Messages/sec Single Connection Open/Close 0 Single Connection Open/Close 128 bytes 1024 bytes 24
25 What is the impact? Messages/sec Messages/sec Single Connection Open/Close 0 Single Connection Open/Close 128 bytes 1024 bytes 25
26 What is the impact? Single client (1 thread). Lower latency results in higher throughput Messages/sec Messages/sec Single Connection Open/Close 0 Single Connection Open/Close 128 bytes 1024 bytes 26
27 What is the impact? Opening/closing connections is the bottleneck of this system Messages/sec Messages/sec Single Connection Open/Close 0 Single Connection Open/Close 128 bytes 1024 bytes 27
28 Overview Asynchronous networking Data copies Connection management Logging 28
29 Logging to files vs main memory for (int i = 0; i < ; ++i) { int keyhash = hashfunction(keys[i]); logging.println("key " + keys[i] + " hashes to " + keyhash); logging.flush(); 29
30 Logging to files vs main memory for (int i = 0; i < ; ++i) { int keyhash = hashfunction(keys[i]); logging.println("key " + keys[i] + " hashes to " + keyhash); logging.flush(); Avoid excessive logging/flushing in critical sections for (int i = 0; i < ; ++i) { values[i] = hashfunction(keys[i]); for (int i = 0; i < ; ++i) { logging.println("key " + keys[i] + " hashes to + values[i]); logging.flush(); logging.close(); 30
31 Logging to files vs main memory for (int i = 0; i < ; ++i) { int keyhash = hashfunction(keys[i]); logging.println("key " + keys[i] + " hashes to " + keyhash); logging.flush(); Avoid excessive logging/flushing in critical sections for (int i = 0; i < ; ++i) { values[i] = hashfunction(keys[i]); for (int i = 0; i < ; ++i) { logging.println("key " + keys[i] + " hashes to + values[i]); logging.flush(); logging.close(); Million Ops/sec File (excessive flushing) File (occasional flushing) Main Memory 31
32 Logging to files vs main memory for (int i = 0; i < ; ++i) { int keyhash = hashfunction(keys[i]); logging.println("key " + keys[i] + " hashes to " + keyhash); logging.flush(); Avoid excessive logging/flushing in critical sections x difference 1 for (int i = 0; i < ; ++i) { values[i] = hashfunction(keys[i]); for (int i = 0; i < ; ++i) { logging.println("key " + keys[i] + " hashes to + values[i]); logging.flush(); logging.close(); Million Ops/sec File (excessive flushing) File (occasional flushing) Main Memory 32
33 Recurring questions about threads/queues 33
34 Recurring questions about threads How many net threads are allowed? / Can I use helper threads? / Can I deviate from the thread design in the figure? It is OK to use helper thread(s), but the fundamental operations (data receiving and sending, request decoding) has to happen as shown in the figure. Points of measurement should be equivalent to the given design also! 34
35 Recurring questions about queues What type of objects are enqueued in the queue? / Where should I parse the requests? Logically, each element in the queue must correspond to a single request. The exact implementation is up to you, but in the report you must explain why the implementation fulfills this condition. Work division between the different types of threads is up to you, but the measurement points must also correspond to the description. 35
36 Take-away message: Be careful with Non-blocking and asynchronous I/O Copying of large data buffers Opening and closing connections Flushing your data to disk in hot loops 36
Network Programming. Powered by Pentalog. by Vlad Costel Ungureanu for Learn Stuff
Network Programming by Vlad Costel Ungureanu for Learn Stuff Java Network Protocols 2 Java Network Protocols 3 Addresses Innet4Address (32-bit) 85.122.23.145 - numeric pentalog.com symbolic Innet6Address
More informationURL Kullanımı Get URL
Networking 1 URL Kullanımı Get URL URL info 2 import java.io.*; import java.net.*; public class GetURL { public static void main(string[] args) { InputStream in = null; OutputStream out = null; // Check
More informationImproving Java Network Programming. Brian Runk, 25 Apr 2006
Improving Java Network Programming Brian Runk, b.runk@morganstanley.com 25 Apr 2006 Topics Background A simple distributed application java.net programming model java.nio programming model A better programming
More informationLecture 3: Socket Programming
Lecture 3: Socket Programming Prof. Shervin Shirmohammadi SITE, University of Ottawa Fall 2005 CEG4183/ELG4183 3-1 Sockets From a logical perspective, a Socket is a communication end point. It is not a
More informationInput from Files. Buffered Reader
Input from Files Buffered Reader Input from files is always text. You can convert it to ints using Integer.parseInt() We use BufferedReaders to minimize the number of reads to the file. The Buffer reads
More informationCOMP 213. Advanced Object-oriented Programming. Lecture 20. Network Programming
COMP 213 Advanced Object-oriented Programming Lecture 20 Network Programming Network Programming A network consists of several computers connected so that data can be sent from one to another. Network
More informationprotocols September 15,
Contents SCI 351 4 Protocols, WWW Internet applications WWW, document technology Lennart Herlaar Original slides by Piet van Oostrum September 15, 2003 SCI351-4 1 X SCI351-4 1 X Internet applications How
More informationJava Technologies. Lecture VII. Valdas Rapševičius. Vilnius University Faculty of Mathematics and Informatics
Preparation of the material was supported by the project Increasing Internationality in Study Programs of the Department of Computer Science II, project number VP1 2.2 ŠMM-07-K-02-070, funded by The European
More informationMySQL Database Scalability
MySQL Database Scalability Nextcloud Conference 2016 TU Berlin Oli Sennhauser Senior MySQL Consultant at FromDual GmbH oli.sennhauser@fromdual.com 1 / 14 About FromDual GmbH Support Consulting remote-dba
More informationAssignment 2 Group 5 Simon Gerber Systems Group Dept. Computer Science ETH Zurich - Switzerland
Assignment 2 Group 5 Simon Gerber Systems Group Dept. Computer Science ETH Zurich - Switzerland t Your task Write a simple file server Client has to be implemented in Java Server has to be implemented
More informationMultimedia Programming
Multimedia Programming Medialogy, 8 th Semester, Aalborg University Wednesday 6 June 2012, 09.00 12.00 Instructions and notes You have 3 hours to complete this examination. Neither written material nor
More informationDistributed Systems COMP 212. Lecture 8 Othon Michail
Distributed Systems COMP 212 Lecture 8 Othon Michail HTTP Protocol Hypertext Transfer Protocol Used to transmit resources on the WWW HTML files, image files, query results, Identified by Uniform Resource
More informationVerteilte Systeme UE Important Code
Verteilte Systeme UE Important Code Lab 1 Create ServerSocket ServerSocket serversocket = new ServerSocket(tcpPort); //throws IOException Accept ClientSocket Socket clientsocket = serversocket.accept();
More informationCS 2113 Software Engineering
CS 2113 Software Engineering Java 6: File and Network IO https://github.com/cs2113f18/template-j-6-io.git Professor Tim Wood - The George Washington University Project 2 Zombies Basic GUI interactions
More informationNetwork. Dr. Jens Bennedsen, Aarhus University, School of Engineering Aarhus, Denmark
Network Dr. Jens Bennedsen, Aarhus University, School of Engineering Aarhus, Denmark jbb@ase.au.dk Outline Socket programming If we have the time: Remote method invocation (RMI) 2 Socket Programming Sockets
More informationSockets and RMI. CS151 Chris Pollett Dec. 5, 2005.
Sockets and RMI CS151 Chris Pollett Dec. 5, 2005. Outline Echo Server with Multiple Clients Client pull/server push Remote Method Invocation Proxy Pattern Echo Server with Multiple Clients public class
More informationDistributed Programming - Sockets
Distributed Programming - Sockets Piet van Oostrum May 25, 2009 Concurrency In praktische situaties krijgen we concurrency door: Processen Threads Interrupts (alleen intern in het O.S.) Processen Onafhankelijke
More informationPrevious lecture: threads G51PRG: Introduction to Programming Second semester Lecture 12 URL
Previous lecture: threads G51PRG: Introduction to Programming Second semester Lecture 12 What is a thread Why use multiple threads Issues and problems involved Java threads Natasha Alechina School of Computer
More informationJava s Implementation of Concurrency, and how to use it in our applications.
Java s Implementation of Concurrency, and how to use it in our applications. 1 An application running on a single CPU often appears to perform many tasks at the same time. For example, a streaming audio/video
More informationJAVA BYTE IPC: PART 1 DERIVING NIO FROM I/O. Instructor: Prasun Dewan (FB 150,
JAVA BYTE IPC: PART 1 DERIVING NIO FROM I/O Instructor: Prasun Dewan (FB 150, dewan@unc.edu) ROX TUTORIAL 2 ROX ECHO APPLICATION Client Server Client Client 3 ASSIGNMENT REQUIREMENTS Client Server Client
More informationCS 856 Latency in Communication Systems
CS 856 Latency in Communication Systems Winter 2010 Latency Challenges CS 856, Winter 2010, Latency Challenges 1 Overview Sources of Latency low-level mechanisms services Application Requirements Latency
More informationAdvanced Java Programming. Networking
Advanced Java Programming Networking Eran Werner and Ohad Barzilay Tel-Aviv University Advanced Java Programming, Spring 2006 1 Overview of networking Advanced Java Programming, Spring 2006 2 TCP/IP protocol
More informationCSE Traditional Operating Systems deal with typical system software designed to be:
CSE 6431 Traditional Operating Systems deal with typical system software designed to be: general purpose running on single processor machines Advanced Operating Systems are designed for either a special
More informationffwd: delegation is (much) faster than you think Sepideh Roghanchi, Jakob Eriksson, Nilanjana Basu
ffwd: delegation is (much) faster than you think Sepideh Roghanchi, Jakob Eriksson, Nilanjana Basu int get_seqno() { } return ++seqno; // ~1 Billion ops/s // single-threaded int threadsafe_get_seqno()
More informationCOMP-202: Foundations of Programming. Lecture 12: Linked List, and File I/O Sandeep Manjanna, Summer 2015
COMP-202: Foundations of Programming Lecture 12: Linked List, and File I/O Sandeep Manjanna, Summer 2015 Announcements Assignment 4 is posted and Due on 29 th of June at 11:30 pm. Course Evaluations due
More informationComputer Networks. 5th of February, This exam consists of 6 questions with subquestions. Every subquestion counts for 10 points.
Computer Networks 5th of February, 05 This exam consists of 6 questions with subquestions. Every subquestion counts for 0 points. Mark every page with name and student number. Use of books, additional
More informationTHE CONTEXTUAL DATA SUPPLIER. API Integration Guide
THE CONTEXTUAL DATA SUPPLIER API Integration Guide Contextual Data API v3 April 2018 Overview No Matter if you want to integrate our Contextual Data API into your website with JavaScript or call it from
More informationCS 126 Lecture S5: Networking
CS 126 Lecture S5: Networking Outline Introductions Connectivity Naming and addressing Abstractions and layering Example: socket programming Conclusions CS126 24-1 Randy Wang Review: Technology Advances
More informationCS 126 Lecture S5: Networking
CS 126 Lecture S5: Networking Outline Introductions Connectivity Naming and addressing Abstractions and layering Example: socket programming Conclusions CS126 24-1 Randy Wang Review: Technology Advances
More informationProject 0. Danyang Zhuo CSE sp Sec;on #2
Project 0 Danyang Zhuo CSE 461 15sp Sec;on #2 Proj0 You have to implement: Mul;- UDP Server Mul;- UDP Client Async IO UDP Server Async IO UDP Client Your server must support mul;ple clients Submit Format
More informationNetworking Basics. network communication.
JAVA NETWORKING API Networking Basics When you write Java programs that communicate over the network, you are programming at the application layer. Typically, you don't need to concern yourself with the
More informationTCP connections. Fundamentals of Internet Connections Objectives. Connect to an Echo port. java.net.socket
Objectives TCP connections To understand programming of clients that connect to servers via TCP To understand the basics of programming of servers that accept TCP connections To practice programming of
More informationObject-Oriented Software Engineering (Re-exam for Object-Oriented Analysis, Design and Programming)
Object-Oriented Software Engineering (Re-exam for Object-Oriented Analysis, Design and Programming) Medialogy, 4 th Semester, Aalborg Monday 11 June 2012, 09.00 12.00 Instructions You have 3 hours to complete
More informationFlash: an efficient and portable web server
Flash: an efficient and portable web server High Level Ideas Server performance has several dimensions Lots of different choices on how to express and effect concurrency in a program Paper argues that
More informationSEDA: An Architecture for Well-Conditioned, Scalable Internet Services
SEDA: An Architecture for Well-Conditioned, Scalable Internet Services Matt Welsh, David Culler, and Eric Brewer Computer Science Division University of California, Berkeley Operating Systems Principles
More informationBlock Device Scheduling. Don Porter CSE 506
Block Device Scheduling Don Porter CSE 506 Logical Diagram Binary Formats Memory Allocators System Calls Threads User Kernel RCU File System Networking Sync Memory Management Device Drivers CPU Scheduler
More informationBlock Device Scheduling
Logical Diagram Block Device Scheduling Don Porter CSE 506 Binary Formats RCU Memory Management File System Memory Allocators System Calls Device Drivers Interrupts Net Networking Threads Sync User Kernel
More informationLab 1 : Java Sockets
Lab 1 : Java Sockets 1. Goals In this lab you will work with a low-level mechanism for distributed communication. You will discover that Java sockets do not provide: - location transparency - naming transparency
More informationJava Networking (sockets)
Java Networking (sockets) Rui Moreira Links: http://java.sun.com/docs/books/tutorial/networking/toc.html#sockets http://www.javaworld.com/javaworld/jw-12-1996/jw-12-sockets_p.html Networking Computers
More informationComputer Systems Laboratory Sungkyunkwan University
I/O System Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Introduction (1) I/O devices can be characterized by Behavior: input, output, storage
More informationSystem Models for Distributed Systems
System Models for Distributed Systems INF5040/9040 Autumn 2015 Lecturer: Amir Taherkordi (ifi/uio) August 31, 2015 Outline 1. Introduction 2. Physical Models 4. Fundamental Models 2 INF5040 1 System Models
More informationComputer Architecture Computer Science & Engineering. Chapter 6. Storage and Other I/O Topics BK TP.HCM
Computer Architecture Computer Science & Engineering Chapter 6 Storage and Other I/O Topics Introduction I/O devices can be characterized by Behaviour: input, output, storage Partner: human or machine
More informationOutlook. Process Concept Process Scheduling Operations on Processes. IPC Examples
Processes Outlook Process Concept Process Scheduling Operations on Processes Interprocess Communication o IPC Examples 2 Process Concept What is a Process? A process is a program in execution Process includes
More informationpublic static void main(string[] args) throws IOException { sock = new Socket(args[0], Integer.parseInt(args[1]));
Echo Client&Server Application EchoClient import java.net.*; import java.io.*; class EchoClient public static void main(string[] args) throws IOException if (args.length < 2) number>"); System.err.println("Usage:
More informationI/O Buffering and Streaming
I/O Buffering and Streaming I/O Buffering and Caching I/O accesses are reads or writes (e.g., to files) Application access is arbitary (offset, len) Convert accesses to read/write of fixed-size blocks
More informationRemote Procedure Call
Remote Procedure Call Remote Procedure Call Integrate network communication with programming language Procedure call is well understood implementation use Control transfer Data transfer Goals Easy make
More informationCSE 124: OPTIONS, SIGNALS, TIMEOUTS, AND CONCURRENCY. George Porter Oct 13, 2017
CSE 124: OPTIONS, SIGNALS, TIMEOUTS, AND CONCURRENCY George Porter Oct 13, 2017 ATTRIBUTION These slides are released under an Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0) Creative
More informationByte and Character Streams. Reading and Writing Console input and output
Byte and Character Streams Reading and Writing Console input and output 1 I/O basics The io package supports Java s basic I/O (input/output) Java does provide strong, flexible support for I/O as it relates
More informationPage 1. CS194-3/CS16x Introduction to Systems. Lecture 22. TCP congestion control, Two-Phase Commit. 3-way handshake. ½ close.
CS194-3/CS16x Introduction to Systems Lecture 22 TCP congestion control, Two-Phase Commit November 14, 2007 Prof. Anthony D. Joseph http://www.cs.berkeley.edu/~adj/cs16x Review: Networking Definitions
More information1.00 Lecture 30. Sending information to a Java program
1.00 Lecture 30 Input/Output Introduction to Streams Reading for next time: Big Java 15.5-15.7 Sending information to a Java program So far: use a GUI limited to specific interaction with user sometimes
More informationCSCD 330 Network Programming
CSCD 330 Network Programming Lecture 8 Client-Server Programming Threads Winter 2015 Reading: Chapter 2, Relevant Links Some Material in these slides from J.F Kurose and K.W. Ross All material copyright
More informationCS5460: Operating Systems Lecture 20: File System Reliability
CS5460: Operating Systems Lecture 20: File System Reliability File System Optimizations Modern Historic Technique Disk buffer cache Aggregated disk I/O Prefetching Disk head scheduling Disk interleaving
More informationCOMP-202: Foundations of Programming. Lecture 22: File I/O Jackie Cheung, Winter 2015
COMP-202: Foundations of Programming Lecture 22: File I/O Jackie Cheung, Winter 2015 Announcements Assignment 5 due Tue Mar 31 at 11:59pm Quiz 6 due Tue Apr 7 at 11:59pm 2 Review 1. What is a graph? How
More informationFinal Lecture. A few minutes to wrap up and add some perspective
Final Lecture A few minutes to wrap up and add some perspective 1 2 Instant replay The quarter was split into roughly three parts and a coda. The 1st part covered instruction set architectures the connection
More informationPieter van den Hombergh Richard van den Ham. March 17, 2018
: Network : Network, Object Pieter van den Hombergh Richard van den Ham Fontys Hogeschool voor Techniek en Logistiek March 17, 2018 /FHTenL : Network March 17, 2018 1/21 Topics, Object Some everyday life
More informationProf. Hakim Weatherspoon CS 3410, Spring 2015 Computer Science Cornell University. See P&H Chapter: , 5.8, 5.10, 5.15; Also, 5.13 & 5.
Prof. Hakim Weatherspoon CS 3410, Spring 2015 Computer Science Cornell University See P&H Chapter: 5.1-5.4, 5.8, 5.10, 5.15; Also, 5.13 & 5.17 Writing to caches: policies, performance Cache tradeoffs and
More informationCS September 2017
Machine vs. transport endpoints IP is a network layer protocol: packets address only the machine IP header identifies source IP address, destination IP address Distributed Systems 01r. Sockets Programming
More information02 - 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 informationClosing the Performance Gap Between Volatile and Persistent K-V Stores
Closing the Performance Gap Between Volatile and Persistent K-V Stores Yihe Huang, Harvard University Matej Pavlovic, EPFL Virendra Marathe, Oracle Labs Margo Seltzer, Oracle Labs Tim Harris, Oracle Labs
More informationCS 450 Exam 2 Mon. 11/7/2016
CS 450 Exam 2 Mon. 11/7/2016 Name: Rules and Hints You may use one handwritten 8.5 11 cheat sheet (front and back). This is the only additional resource you may consult during this exam. No calculators.
More informationShadow: Real Applications, Simulated Networks. Dr. Rob Jansen U.S. Naval Research Laboratory Center for High Assurance Computer Systems
Shadow: Real Applications, Simulated Networks Dr. Rob Jansen Center for High Assurance Computer Systems Cyber Modeling and Simulation Technical Working Group Mark Center, Alexandria, VA October 25 th,
More information02 - 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 informationJAVA 프로그래밍 II. Lab #7 (Networking) TCP Java Socket. TCP vs UDP 2017 학년도 1 학기 년봄학기 5/24/2017 박경신. Client. Server
Lab #7 (Networking) 2017 학년도 1 학기 JAVA 프로그래밍 II 기존요구사항분석 Lab #6 는 Thread, Runnable 과 SwingWorker 를이용한다양한멀티스레드기능을사용 Lab #7 는 TCP/UDP 등다양한네트워크프로그래밍기능을사용 TCP, UDP, HTTP, File Transfer 514770-1 2017 년봄학기 5/24/2017
More information3. Remote Procedure Call
3. Remote Procedure Call Master II Software Engineering Imed Bouchrika Dept of Mathematics & Computer Science University of Souk-Ahras imed@imed.ws Imed Bouchrika. Distributed Objects, Uni of Souk-Ahras
More informationThird Midterm Exam April 24, 2017 CS162 Operating Systems
University of California, Berkeley College of Engineering Computer Science Division EECS Spring 2017 Ion Stoica Third Midterm Exam April 24, 2017 CS162 Operating Systems Your Name: SID AND 162 Login: TA
More informationCS 11 java track: lecture 6
CS 11 java track: lecture 6 This week: networking basics Sockets Vectors parsing strings what is networking? the network: world-wide web of interconnected computers "the internet" networking: programming
More informationChapter 2 Application Layer
Internet and Intranet Protocols and Applications Lecture 4: Application Layer 3: Socket Programming Spring 2006 Arthur Goldberg Computer Science Department New York University artg@cs.nyu.edu Chapter 2
More informationDOMjudge team manual. Summary. Reading and writing. Submitting solutions. Viewing scores, submissions, etc.
judge DOMjudge team manual Summary /\ DOM DOM judge Here follows a short summary of the system interface. This is meant as a quick introduction, to be able to start using the system. It is, however, strongly
More informationMuch Faster Networking
Much Faster Networking David Riddoch driddoch@solarflare.com Copyright 2016 Solarflare Communications, Inc. All rights reserved. What is kernel bypass? The standard receive path The standard receive path
More informationCaches (Writing) Hakim Weatherspoon CS 3410, Spring 2012 Computer Science Cornell University. P & H Chapter 5.2 3, 5.5
s (Writing) Hakim Weatherspoon CS, Spring Computer Science Cornell University P & H Chapter.,. Administrivia Lab due next onday, April th HW due next onday, April th Goals for Today Parameter Tradeoffs
More information??? Traceroute. app. app. host. host. Apps talk to other apps with no real idea of what is inside the network
About Me Esther Jang 3rd year PhD student Information and Communications Technology for Development Community Cellular Network deployments My goal is to get better at teaching. Computer Networks 2 Traceroute
More informationDistributed Programming
Distributed Programming Processes don t share memory. Processes share channels over which messages are passed Channels may be Global, receiver specific, or sender & receiver specific. One or two way. c
More informationDOMjudge team manual. Summary. Reading and writing. Submitting solutions. Viewing scores, submissions, etc.
judge DOMjudge team manual Summary /\ DOM DOM judge Here follows a short summary of the system interface. This is meant as a quick introduction, to be able to start using the system. It is, however, strongly
More informationI/O Handling. ECE 650 Systems Programming & Engineering Duke University, Spring Based on Operating Systems Concepts, Silberschatz Chapter 13
I/O Handling ECE 650 Systems Programming & Engineering Duke University, Spring 2018 Based on Operating Systems Concepts, Silberschatz Chapter 13 Input/Output (I/O) Typical application flow consists of
More informationGPUfs: Integrating a file system with GPUs
GPUfs: Integrating a file system with GPUs Mark Silberstein (UT Austin/Technion) Bryan Ford (Yale), Idit Keidar (Technion) Emmett Witchel (UT Austin) 1 Traditional System Architecture Applications OS CPU
More informationCSCD 330 Network Programming
CSCD 330 Network Programming Lecture 8 Client-Server Programming Threads Spring 2018 Reading: Chapter 2, Relevant Links - Threads Some Material in these slides from J.F Kurose and K.W. Ross All material
More informationArchitecture or Parallel Computers CSC / ECE 506
Architecture or Parallel Computers CSC / ECE 506 Summer 2006 Scalable Programming Models 6/19/2006 Dr Steve Hunter Back to Basics Parallel Architecture = Computer Architecture + Communication Architecture
More informationRemote Procedure Call. Tom Anderson
Remote Procedure Call Tom Anderson Why Are Distributed Systems Hard? Asynchrony Different nodes run at different speeds Messages can be unpredictably, arbitrarily delayed Failures (partial and ambiguous)
More informationLies, Damn Lies and Benchmarks: How to Accurately Measure Distributed Application Performance. Heinz Schaffner
Lies, Damn Lies and Benchmarks: How to Accurately Measure Distributed Application Performance Heinz Schaffner Science Projects vs. Production Testing to Destruction vs. Distressed Processing Latency Schemes
More informationInnodb Performance Optimization
Innodb Performance Optimization Most important practices Peter Zaitsev CEO Percona Technical Webinars December 20 th, 2017 1 About this Presentation Innodb Architecture and Performance Optimization 3h
More informationComp 204: Computer Systems and Their Implementation. Lecture 18: Devices
Comp 204: Computer Systems and Their Implementation Lecture 18: Devices 1 Today Devices Introduction Handling I/O Device handling Buffering and caching 2 Operating System An Abstract View User Command
More informationCSE506: Operating Systems CSE 506: Operating Systems
CSE 506: Operating Systems Disk Scheduling Key to Disk Performance Don t access the disk Whenever possible Cache contents in memory Most accesses hit in the block cache Prefetch blocks into block cache
More informationRequirements. 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 informationObject Oriented Software Design
Object Oriented Software Design I/O subsystem API Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 10, 2011 G. Lipari (Scuola Superiore Sant Anna) Introduction to Java
More informationObject Oriented Software Design
Object Oriented Software Design I/O subsystem API Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 10, 2011 G. Lipari (Scuola Superiore Sant Anna) Introduction to Java
More informationCS193j, Stanford Handout #26. Files and Streams
CS193j, Stanford Handout #26 Summer, 2003 Manu Kumar Files and Streams File The File class represents a file or directory in the file system. It provides platform independent ways to test file attributes,
More informationCSE 451: Operating Systems. Section 10 Project 3 wrap-up, final exam review
CSE 451: Operating Systems Section 10 Project 3 wrap-up, final exam review Final exam review Goal of this section: key concepts you should understand Not just a summary of lectures Slides coverage and
More informationDevices. Today. Comp 104: Operating Systems Concepts. Operating System An Abstract View 05/01/2017. Devices. Devices
Comp 104: Operating Systems Concepts Devices Today Devices Introduction Handling I/O Device handling Buffering and caching 1 2 Operating System An Abstract View User Command Interface Processor Manager
More informationCONCURRENCY IN JAVA Course Parallel Computing
CONCURRENCY IN JAVA Course Parallel Computing Wolfgang Schreiner Research Institute for Symbolic Computation (RISC) Wolfgang.Schreiner@risc.jku.at http://www.risc.jku.at Java on a NUMA Architecture Loading
More informationApple. Massive Scale Deployment / Connectivity. This is not a contribution
Netty @ Apple Massive Scale Deployment / Connectivity Norman Maurer Senior Software Engineer @ Apple Core Developer of Netty Formerly worked @ Red Hat as Netty Project Lead (internal Red Hat) Author of
More informationCSCD 330 Network Programming
CSCD 330 Network Programming Lecture 8 Client-Server Programming Threads Spring 2017 Reading: Chapter 2, Relevant Links - Threads Some Material in these slides from J.F Kurose and K.W. Ross All material
More informationPART1: Choose the correct answer and write it on the answer sheet:
PART1: Choose the correct answer and write it on the answer sheet: (15 marks 20 minutes) 1. Which of the following is included in Java SDK? a. Java interpreter c. Java disassembler b. Java debugger d.
More informationScaling Without Sharding. Baron Schwartz Percona Inc Surge 2010
Scaling Without Sharding Baron Schwartz Percona Inc Surge 2010 Web Scale!!!! http://www.xtranormal.com/watch/6995033/ A Sharding Thought Experiment 64 shards per proxy [1] 1 TB of data storage per node
More informationBeyond Block I/O: Rethinking
Beyond Block I/O: Rethinking Traditional Storage Primitives Xiangyong Ouyang *, David Nellans, Robert Wipfel, David idflynn, D. K. Panda * * The Ohio State University Fusion io Agenda Introduction and
More informationBig and Fast. Anti-Caching in OLTP Systems. Justin DeBrabant
Big and Fast Anti-Caching in OLTP Systems Justin DeBrabant Online Transaction Processing transaction-oriented small footprint write-intensive 2 A bit of history 3 OLTP Through the Years relational model
More informationStorage. Hwansoo Han
Storage Hwansoo Han I/O Devices I/O devices can be characterized by Behavior: input, out, storage Partner: human or machine Data rate: bytes/sec, transfers/sec I/O bus connections 2 I/O System Characteristics
More informationThe Google File System
The Google File System Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung December 2003 ACM symposium on Operating systems principles Publisher: ACM Nov. 26, 2008 OUTLINE INTRODUCTION DESIGN OVERVIEW
More information"protocol stack! chat. Java
"protocol stack! chat # # $ "! $ http://www.ietf.org/rfc.html http://www.skype.com$ Internet for dummies "' &! ("IP Address! %%() "port! * +%#%%() * * % * (I/O "streams! InputStreamReader in = new InputStreamReader(System.in);
More informationCaches. Hiding Memory Access Times
Caches Hiding Memory Access Times PC Instruction Memory 4 M U X Registers Sign Ext M U X Sh L 2 Data Memory M U X C O N T R O L ALU CTL INSTRUCTION FETCH INSTR DECODE REG FETCH EXECUTE/ ADDRESS CALC MEMORY
More informationCS 261 Fall Caching. Mike Lam, Professor. (get it??)
CS 261 Fall 2017 Mike Lam, Professor Caching (get it??) Topics Caching Cache policies and implementations Performance impact General strategies Caching A cache is a small, fast memory that acts as a buffer
More information