An Evaluation of Fault- Tolerant TCP-Splice Based Web Server - - PowerPoint PPT Presentation

an evaluation of fault tolerant tcp splice based web
SMART_READER_LITE
LIVE PREVIEW

An Evaluation of Fault- Tolerant TCP-Splice Based Web Server - - PowerPoint PPT Presentation

An Evaluation of Fault- Tolerant TCP-Splice Based Web Server Architectures Manish Marwah Jacob Delgado Shivakant Mishra Christof Fetzer Department of Computer Science Department of Computer Science University of Colorado, Campus


slide-1
SLIDE 1

DSN 06

An Evaluation of Fault- Tolerant TCP-Splice Based Web Server Architectures

Manish Marwah Jacob Delgado Shivakant Mishra Christof Fetzer

IEEE International Conference on Dependable Systems and Networks (DSN) 2006, Philadelphia, June 25 – 28, 2006

Department of Computer Science Dresden University of Technology Dresden, Germany D-01062 Department of Computer Science University of Colorado, Campus Box 0430 Boulder, CO 80309

slide-2
SLIDE 2

2 DSN 06

Outline

  • Introduction
  • Enhancements to TCP Splice
  • Our Web Server Architecture
  • Simulation Results
  • Conclusions
slide-3
SLIDE 3

3 DSN 06

Web Proxies

  • Proxies used for

– Content aware (layer 7) routing – Security policies – Caching – Network management – Usage accounting

  • Drawbacks

– performance issues

  • kernel <-> user data copying
  • Context switches

– Single point of failure

  • Even with a backup, connection

is broken and would need to be re-established

C P P S S C S S S S S S

Video Servers Audio Servers Backup

slide-4
SLIDE 4

4 DSN 06

TCP Splice (1)

  • Introduced to enhance the performance of web

proxies

  • Proxy relays data between client and server by

manipulating TCP segment headers

  • Advantages

– Done entirely in the kernel – Latency and computational cost at proxy only a few times more than IP forwarding – End-to-end semantics of the client-server TCP connection preserved – No buffering at the proxy

slide-5
SLIDE 5

5 DSN 06

TCP Splice (2)

slide-6
SLIDE 6

6 DSN 06

TCP Splice (3)

send_seq_num = (recv_seq_num – init_recv_seq_num) + init_send_seq_num

  • ffset
slide-7
SLIDE 7

7 DSN 06

Enhancements to TCP Splice

  • Recently, we proposed the

following generic enhancements to TCP splice to address

– Fault tolerance – Scalability

  • Replicated and Parallel Splice

– Same connection can be spliced through different machines

  • Split-Splice

– Traffic in the two different directions of the same connection can be spliced at different machines C S

LB Proxies One TCP connection

C

LB

S

Proxies

slide-8
SLIDE 8

8 DSN 06

Our Web Server Architecture Logical View

slide-9
SLIDE 9

9 DSN 06

Load Balancer

  • IP level load balancer (LB)
  • No modifications to the packets
  • No connection state information is kept
  • Completely stateless -> fault tolerance

trivial

  • Has service IP address
  • Right now round-robin algorithm
  • Heartbeat mechanism between LB and

proxies

– For failure detection – For communicating proxy workload (in future)

  • Can be combined with router or proxies
slide-10
SLIDE 10

10 DSN 06

Sequence of Steps involved in Handling a Request

slide-11
SLIDE 11

11 DSN 06

Web Server Configuration 1 (1)

  • Separate Proxy and backend server

machines

  • Traffic in both directions passes through

the proxies

  • No OS changes required on the backend

servers

slide-12
SLIDE 12

12 DSN 06

Web Server Configuration 1 (2)

One TCP connection

Data Path

slide-13
SLIDE 13

13 DSN 06

Web Server Configuration 2 (1)

  • Co-located Proxy and backend server

machines

  • Separate proxy machines not required
  • Saves HW
  • OS changes required on the servers
slide-14
SLIDE 14

14 DSN 06

Web Server Configuration 2 (2)

One TCP connection

Data Path

slide-15
SLIDE 15

15 DSN 06

Web Server Configuration 3 (1)

  • Mixed configuration: OS changes are

required on some machines

  • Backend servers where OS can be changed

do split-splice

slide-16
SLIDE 16

16 DSN 06

Web Server Configuration 3 (2)

Two TCP connections

Data Path

slide-17
SLIDE 17

17 DSN 06

Simulations

  • A discrete event simulator was written to

simulate the architectures

  • Goal of the simulations is to show

scalability

  • Connections simulated are assumed to be

already established and spliced

  • Some simulation parameters

– Splicing Cost: 25 µ sec – Client – Proxy link delay: 25 ms – Proxy – Server link delay: 0.7 ms – TCP buffer: 256kB – Packet size: 1460 B – Q processing Rate: 1 Gbps

slide-18
SLIDE 18

18 DSN 06

Separate proxy and back-end server (1) (Web Server Configuration 1)

  • Goal: show scalability of architecture
  • Client

– data is generated from 30 Mbps to 990 Mbps in intervals of 60 Mbps – 50 MB is transferred at each data rate

  • Proxies

– Varied from 1 to 13

  • 1 Backend server used
slide-19
SLIDE 19

19 DSN 06

Separate proxy and back-end server (2)

slide-20
SLIDE 20

20 DSN 06

Separate proxy and back-end server (3)

slide-21
SLIDE 21

21 DSN 06

Co-located proxy and back-end server (Web Server Configuration 2)

  • The same experiments were repeated for

this scenario

  • Proxy – Backend server link delay was made

zero

  • Almost identical to separate proxy and

backend server scenario since link delay was already small

slide-22
SLIDE 22

22 DSN 06

Split Splice (1)

  • Same experiments were repeated for split

splice

  • Data generated at a backend server,

spliced and sent directly to client

slide-23
SLIDE 23

23 DSN 06

Split-Splice (2)

Splicing cost: 2 µ sec Splicing cost: 25 µ sec

slide-24
SLIDE 24

24 DSN 06

Conclusions and Future Work

  • Presented web server architectures based on

enhanced TCP splice

  • Used simulations to evaluate these

architectures

  • In particular, simulated three different

configurations

– Scale well – Connections preserved even on proxy failure – Proxy not a bottleneck

  • Linux prototype implementation paper to be

presented at SRDS ‘06

  • In future, make architecture tolerate backend

server failures while preserving client connection

slide-25
SLIDE 25

25 DSN 06

Backup Slides

slide-26
SLIDE 26

26 DSN 06

Proxies

  • Perform TCP splicing
  • Before a connection is spliced, all packets
  • f a particular connection are received by

the same proxy through use of hashing and multicast groups (details in SRDS ’06 paper)

  • Proxy establishing splice distributes

splicing state info to other proxies

  • Once a connection is spliced, a packet of

that connection can be spliced at any proxy