Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS...

29
Systems (th)at Scale Jon Crowcroft, http://www.cl.cam.ac.uk/~jac22

Transcript of Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS...

Page 1: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

Systems (th)at Scale

Jon Crowcroft, http://www.cl.cam.ac.uk/~jac22

Page 2: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

Cloud, Data Center, Networks

1.  New Cloud OS to meet new workloads   Includes programming language   Collabs incl REMS (w/ P.Gardner/Imperial)

2.  New Data Center structure   Includes heterogeneous h/w   Collabs incl NaaS(Peter Pietzuch Imperial)   Trilogy (Mark Handley et al UCL)

3.  New Networks (for data centers&)   To deal with above

Page 3: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

What not talking about

  Security   (we do that – had another workshop)

  Data   Hope Ed folks will!

  Scaling Apps   Oxford

  Languages for Apps   Ed++

Page 4: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

1. Cloud OS

  Unikernels (Mirage, SEL4, ClickOS)

Docker

User Processes

Filesystem

Network Stack

Kernel Threads

Language Runtime

Application Binary

Configuration Files

Oper

ating

Syst

em

User Processes

Filesystem

Network Stack

Kernel Threads

Language Runtime

Application Binary

Configuration Files

Oper

ating

Syst

em

Hypervisor

Hardware

Docker Container

(a) Containers, e.g., Docker.

Drawbridge

ntoskrnl Device Drivers

User Processes

IO Stack

Device Drivers

Kernel Threads

Language Runtime

Application Binary

Configuration Files

Win

dow

s 7 O

SPlatform Adaptation

Layer

Kernel Threads

IO Stack

Security Monitor

Library OS

Application Binary

Configuration Files

ntoskrnl

Hardware

Hos

t O

S

Hardware

Picoprocess

(b) Picoprocesses, e.g., Drawbridge.

Mirage

User Processes

Filesystem

Xen

Network Stack

Kernel Threads

Language Runtime

Mirage Runtime

Xen

Application Code

Application Binary

Configuration Files

ARM Hardware ARM Hardware

Oper

ating

Syst

em Mirage Unikernel

(c) Unikernels, e.g., MirageOS.

Figure 2: Contrasting approaches to application containment.

The Xen 4.4 release added support for recent ARMarchitectures, specifically ARM v7-A and ARM v8-A.These include extensions that let a hypervisor managehardware virtualized guests without the complexity offull paravirtualization. The Xen/ARM port is markedlysimpler than x86 as it can avoid a range of legacy re-quirements: e.g., x86 VMs require qemu device emu-lation, which adds considerably to the trusted comput-ing base [7]. Simultaneously, Xen/ARM is able to sharea great deal of the mature Xen toolstack with Xen/x86,including the mechanics for specifying security policiesand VM configurations.

Jitsu can thus target both Xen/ARM and Xen/x86, re-sulting in a consistent interface that spans a range of de-ployment environments, from conventional x86 serverhosting environments to the more resource-constrainedembedded environments with which we are particularlyconcerned, where ARM CPUs are commonplace.

2.3 Xen/ARM UnikernelsBringing up MirageOS unikernels on ARM required de-tailed work mapping the libOS model onto the ARM ar-chitecture. We now describe booting MirageOS uniker-nels on ARM, their memory management requirements,and device virtualization support.

Xen Boot Library. The first generation of uniker-nels such as MirageOS [26, 25] (OCaml), HaLVM [11](Haskell) and the GuestVM [32] (Java) were constructedby forking Mini-OS, a tiny Xen library kernel that ini-tialises the CPU, displays console messages and allocatesmemory pages [39]. Over the years, Mini-OS has beendirectly incorporated into many other custom Xen oper-ating systems, has had semi-POSIX compatibility boltedon, and has become part of the trusted computing basefor some distributions [7]. This copying of code becomesa maintenance burden when integrating new features thatget added to Mini-OS. Before porting to ARM, we there-fore rearranged Mini-OS to be installed as a system li-

brary, suitable for static linking by any unikernel.4 Func-tionality not required for booting was extracted into sep-arate libraries, e.g., libm functionality is now providedby OpenLibM (which originates from FreeBSD’s libm).

An important consequence of this is that a libc isno longer required for the core of MirageOS: all libcfunctionality is subsumed by pure OCaml libraries in-cluding networking, storage and unicode handling, withthe exception of the rarely used floating point formattingcode used by printf, for which we extracted code fromthe musl libc. Removing this functionality does notjust benefit codesize: these embedded libraries are bothsecurity-critical (they run in the same address space asthe type-safe unikernel code) and difficult to audit (theytarget a wide range of esoteric hardware platforms andthus require careful configuration of many compile-timeoptions). Our refactoring thus significantly reduced thesize of a unikernel’s trusted computing base as well asimproving portability.

Fast Booting on ARM. We then ported Mini-OS toboot against the new Xen ARM ABI. This domain build-ing process is critical to reducing system latency, sowe describe it here briefly. Xen/ARM kernels use theLinux zImage format to boot into a contiguous mem-ory area. The Xen domain builder allocates a fresh vir-tual machine descriptor, assigns RAM to it and loadsthe kernel at the offset 0x8000 (32KB). Execution be-gins with the r2 register pointing to a Flattened DeviceTree (FDT). This is a similar key/value store to the onesupplied by native ARM bootloaders and provides a uni-fied tree for all further aspects of VM configuration. TheFDT approach is much simpler than x86 booting, wherethe demands of supporting multiple modes (paravirtual,hardware-assisted and hybrids) result in configuration in-formation being spread across virtualized BIOS, memoryand Xen-specific interfaces.

4Our Mini-OS changes have been released back to Xen and are be-ing integrated in the upstream distribution that will become Xen 4.6.

3

Page 5: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

Unikernels in OCaml

  But also Go, Scala, Rust etc   Type safety->security, reliability   Apps can be legacy or in same languages

Linux Kernel

UnikernelsUnikernels

Xen

ARM Hardware

Linux Kernel

Jitsu Toolstack

XenStore

Unikernels Legacy VMs

inco

min

g tr

affic

domain 0

outgoing traffic

shared memory transport

Figure 1: Jitsu architecture: external network connec-tivity is handled solely by memory-safe unikernels con-nected to general purpose VMs via shared memory.

2 Embedded UnikernelsBuilding software for embedded systems is typicallymore complex than for standard platforms. Embeddedsystems are often power-constrained, impose soft real-time constraints, and are designed around a monolithicfirmware model that forces whole system upgrades ratherthan upgrade of constituent packages. To date, general-purpose hypervisors have not been able to meet these re-quirements, though microkernels have made inroads [9].

Several approaches to providing application isolationhave received attention recently. As each provides dif-ferent trade-offs between security and resource usage,we discuss them in turn (§2.1), motivating our choice ofunikernels as our unit of deployment. We then outline thenew Xen/ARM port that uses the latest ARM v7-A vir-tualization instructions (§2.2) and provide details of ourimplementation of a single-address space ARM uniker-nel using this new ABI (§2.3).

2.1 Application ContainmentStrong isolation of multi-tenant applications is a require-ment to support the distribution of application and sys-tem code. This requires both isolation at runtime as wellas compact, lightweight distribution of code and associ-ated state for booting. We next describe the spectrum ofapproaches meeting these goals, depicted in Figure 2.

OS Containers (Figure 2a). FreeBSD Jails [19] andLinux containers [38] both provide a lightweight mecha-nism to separate applications and their associated kernelpolicies. This is enforced via kernel support for isolatednamespaces for files, processes, user accounts and otherglobal configuration. Containers put the entire mono-lithic kernel in the trusted computing base, while stillpreventing applications from using certain functionality.Even the popular Docker container manager does not yetsupport isolation of root processes from each other.1

1https://docs.docker.com/articles/security/

Both the total number and ongoing high rate of dis-covery of vulnerabilities indicate that stronger isolationis highly desirable (see Table 2). An effective way toachieve this is to build applications using a library op-erating system (libOS) [10, 24] to run over the smallertrusted computing base of a simple hypervisor. This hasbeen explored in two modern strands of work.

Picoprocesses (Figure 2b). Drawbridge [34] demon-strated that the libOS approach can scale to runningWindows applications with relatively low overhead (just16MB of working set memory). Each application runsin its own picoprocess on top of a hypervisor, and thistechnique has since been extended to running POSIX ap-plications as well [15]. Embassies [22] refactors the webclient around this model such that untrusted applicationscan run on the user’s computer in low-level native codecontainers that communicate externally via the network.

Unikernels (Figure 2c). Even more specialised appli-cations can be built by leveraging modern programminglanguages to build unikernels [25]. Single-pass compi-lation of application logic, configuration files and devicedrivers results in output of a single-address-space VMwhere the standard compiler toolchain has eliminated un-necessary features. This approach is most beneficial forsingle-purpose appliances as opposed to more complexmulti-tenant services (§5).

Unikernel frameworks are gaining traction for manydomain-specific tasks including virtualizing networkfunctions [29], eliminating I/O overheads [20], build-ing distributed systems [6] and providing a minimal trustbase to secure existing systems [11, 7]. In Jitsu we usethe open-source MirageOS2 written in OCaml, a stati-cally type-safe language that has a low resource footprintand good native code compilers for both x86 and ARM.A particular advantage of using MirageOS when work-ing with Xen is that all the toolstack libraries involvedare written entirely in OCaml [36], making it easier tosafely manage the flow of data through the system and toeliminate code that would otherwise add overhead [18].

2.2 ARM Hardware VirtualizationXen is a widely deployed type-1 hypervisor that isolatesmultiple VMs that share hardware resources. It was orig-inally developed for x86 processors [2], on which it nowprovides three execution modes for VMs: paravirtualiza-tion (PV), where the guest operating system source is di-rectly modified; hardware emulation (HVM), where spe-cialised virtualization instructions and paging featuresavailable in modern x86 CPUs obviate the need to mod-ify guest OS source code; and a hybrid model (PVH) thatenables paravirtualized guests to use these newer hard-ware features for performance.3

2http://www.openmirage.org3See Belay et al [4] for an introduction to the newer VT-x features.

2

Page 6: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

Data Centers don’t just go fast

  They need to serve applications 1.  Latency, not just throughput 2.  Face users

1.  Web, video, ultrafast trade/gamers 2.  Face Analytics…

3.  Availability & Failure Detectors 4.  Application code within network 5.  NIC on host or switch – viz

Page 7: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

Industry (see pm )

Azure http://conferences.sigcomm.org/sigcomm/2015/pdf/papers/keynote.pdf Facebook: http://conferences.sigcomm.org/sigcomm/2015/pdf/papers/p123.pdf Google: http://conferences.sigcomm.org/sigcomm/2015/pdf/papers/p183.pdf

Page 8: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

2. Deterministic latency bounding

  Learned what I was teaching wrong!   I used to say:

  Integrated Service too complex   Admission&scheduling hard

  Priority Queue can’t do it   PGPS computation for latency?

  I present Qjump scheme, which   Uses intserv (PGPS) style admission ctl   Uses priority queues for service levels   http://www.cl.cam.ac.uk/research/srg/

netos/qjump/

Page 9: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

Data Center Latency Problem

  Tail of the distribution,   due to long/bursty flows interfering

  Need to separate classes of flow   Low latency are usually short flows (or

RPCs)   Bulk transfers aren’t so latency/jitter

sensitiv

Page 10: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

Data Center Qjump Solution

  In Data Center, not general Internet!   can exploit topology &   traffic matrix &   source behaviour knowledge

  Regular, and simpler topology key   But also largely “cooperative” world…

Page 11: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

Hadoop perturbs time synch

2 12th USENIX Symposium on Networked Systems Design and Implementation (NSDI ’15) USENIX Association

0 100 200 300 400 500Time since start [sec]

-400-200

0200400600

Clo

ckof

fset

[µs]

ptpd onlyptpd with Hadoop

(a) Timeline of PTP synchronization offset.

0 500 1000 1500 2000Request latency [µs]

0.0

0.2

0.4

0.6

0.8

1.0

memcached onlymem’d with Hadoop

(b) CDF of memcached request latencies.

0 500 1000 1500 2000Barrier sync. latency [µs]

0.0

0.2

0.4

0.6

0.8

1.0

Naiad onlyNaiad with Hadoop

(c) CDF of Naiad barrier sync. latencies.

Figure 1: Motivating experiments: Hadoop traffic interferes with (a) PTPd, (b) memcached and (c) Naiad traffic.

Setup 50th% 99th%one host, idle network 85 126µs

two hosts, shared switch 110 130µsshared source host, shared egress port 228 268µsshared dest. host, shared ingress port 125 278µs

shared host, shared ingress and egress 221 229µstwo hosts, shared switch queue 1,920 2,100µs

Table 1: Median and 99th percentile latencies observedas ping and iperf share various parts of the network.

2 MotivationWe begin by showing that shared switch queues are theprimary source of network interference. We then quan-tify the extent to which network interference impactsapplication-observable metrics of performance.

2.1 Where does the latency come from?Network interference may occur at various places on thenetwork path. Applications may share ingress or egresspaths in the host, share the same network switch, or sharethe same queue in the same network switch. To assess theimpact of interference in each of these situations, we em-ulate a latency-sensitive RPC application using ping anda throughput-intensive bulk transfer application by run-ning two instances of iperf. Table 1 shows the results ofarranging ping and iperf with various degrees of net-work sharing. Although any sharing situation results ininterference, the effect is worst when applications share acongested switch queue.. In this case, the 99th percentileping latency is degraded by over 16! compared to theunshared case.

2.2 How bad is it really?Different applications use the network in different ways.To demonstrate the degree to which network interfer-ence affects different applications, we run three represen-tative latency-sensitive applications (PTPd, memcachedand Naiad) on a network shared with Hadoop (details

in §6) and measure the effects.

1. Clock Synchronization Precise clock synchroniza-tion is important to distributed systems such as Google’sSpanner [11]. PTPd offers microsecond-granularity timesynchronization from a time server to machines on alocal network. In Figure 1a, we show a timeline ofPTPd synchronizing a host clock on both an idle net-work and when sharing the network with Hadoop. Inthe shared case, Hadoop’s shuffle phases causes queue-ing, which delays PTPd’s synchronization packets. Thiscauses PTPd to temporarily fall 200–500µs out of syn-chronization; 50! worse than on an idle network.

2. Key-value Stores Memcached is a popular in-memory key-value store used by Facebook and others tostore small objects for quick retrieval [25]. We bench-mark memcached using the memaslap load generator2

and measure the request latency. Figure 1b shows thedistribution of request latencies on an idle network and anetwork shared with Hadoop. With Hadoop running, the99th percentile request latency degrades by 1.5! from779µs to 1196µs. Even worse, approximately 1 in 6,000requests take over 200ms to complete3, over 85! worsethan the maximum latency seen on an idle network.

3. Iterative Data-Flow Naiad is a framework for dis-tributed data-flow computation [24]. In iterative com-putations, Naiad’s performance depends on low-latencystate synchronization between worker nodes. To test Na-iad’s sensitivity to network interference, we execute abarrier synchronization benchmark (provided by the Na-iad authors) with and without Hadoop running. Figure 1cshows the distribution of Naiad synchronization laten-cies in both situations. On an idle network, Naiad takesaround 500µs at the 99th percentile to perform a four-waybarrier synchronization. With interference, this grows to1.1–1.5ms, a 2–3! performance degradation.

2http://libmemcached.org3Likely because packet loss triggers the TCP minRTO timeout.

Page 12: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

Hadoop perturbs memcached

2 12th USENIX Symposium on Networked Systems Design and Implementation (NSDI ’15) USENIX Association

0 100 200 300 400 500Time since start [sec]

-400-200

0200400600

Clo

ckof

fset

[µs]

ptpd onlyptpd with Hadoop

(a) Timeline of PTP synchronization offset.

0 500 1000 1500 2000Request latency [µs]

0.0

0.2

0.4

0.6

0.8

1.0

memcached onlymem’d with Hadoop

(b) CDF of memcached request latencies.

0 500 1000 1500 2000Barrier sync. latency [µs]

0.0

0.2

0.4

0.6

0.8

1.0

Naiad onlyNaiad with Hadoop

(c) CDF of Naiad barrier sync. latencies.

Figure 1: Motivating experiments: Hadoop traffic interferes with (a) PTPd, (b) memcached and (c) Naiad traffic.

Setup 50th% 99th%one host, idle network 85 126µs

two hosts, shared switch 110 130µsshared source host, shared egress port 228 268µsshared dest. host, shared ingress port 125 278µs

shared host, shared ingress and egress 221 229µstwo hosts, shared switch queue 1,920 2,100µs

Table 1: Median and 99th percentile latencies observedas ping and iperf share various parts of the network.

2 MotivationWe begin by showing that shared switch queues are theprimary source of network interference. We then quan-tify the extent to which network interference impactsapplication-observable metrics of performance.

2.1 Where does the latency come from?Network interference may occur at various places on thenetwork path. Applications may share ingress or egresspaths in the host, share the same network switch, or sharethe same queue in the same network switch. To assess theimpact of interference in each of these situations, we em-ulate a latency-sensitive RPC application using ping anda throughput-intensive bulk transfer application by run-ning two instances of iperf. Table 1 shows the results ofarranging ping and iperf with various degrees of net-work sharing. Although any sharing situation results ininterference, the effect is worst when applications share acongested switch queue.. In this case, the 99th percentileping latency is degraded by over 16! compared to theunshared case.

2.2 How bad is it really?Different applications use the network in different ways.To demonstrate the degree to which network interfer-ence affects different applications, we run three represen-tative latency-sensitive applications (PTPd, memcachedand Naiad) on a network shared with Hadoop (details

in §6) and measure the effects.

1. Clock Synchronization Precise clock synchroniza-tion is important to distributed systems such as Google’sSpanner [11]. PTPd offers microsecond-granularity timesynchronization from a time server to machines on alocal network. In Figure 1a, we show a timeline ofPTPd synchronizing a host clock on both an idle net-work and when sharing the network with Hadoop. Inthe shared case, Hadoop’s shuffle phases causes queue-ing, which delays PTPd’s synchronization packets. Thiscauses PTPd to temporarily fall 200–500µs out of syn-chronization; 50! worse than on an idle network.

2. Key-value Stores Memcached is a popular in-memory key-value store used by Facebook and others tostore small objects for quick retrieval [25]. We bench-mark memcached using the memaslap load generator2

and measure the request latency. Figure 1b shows thedistribution of request latencies on an idle network and anetwork shared with Hadoop. With Hadoop running, the99th percentile request latency degrades by 1.5! from779µs to 1196µs. Even worse, approximately 1 in 6,000requests take over 200ms to complete3, over 85! worsethan the maximum latency seen on an idle network.

3. Iterative Data-Flow Naiad is a framework for dis-tributed data-flow computation [24]. In iterative com-putations, Naiad’s performance depends on low-latencystate synchronization between worker nodes. To test Na-iad’s sensitivity to network interference, we execute abarrier synchronization benchmark (provided by the Na-iad authors) with and without Hadoop running. Figure 1cshows the distribution of Naiad synchronization laten-cies in both situations. On an idle network, Naiad takesaround 500µs at the 99th percentile to perform a four-waybarrier synchronization. With interference, this grows to1.1–1.5ms, a 2–3! performance degradation.

2http://libmemcached.org3Likely because packet loss triggers the TCP minRTO timeout.

Page 13: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

Hadoop perturbs Naiad

2 12th USENIX Symposium on Networked Systems Design and Implementation (NSDI ’15) USENIX Association

0 100 200 300 400 500Time since start [sec]

-400-200

0200400600

Clo

ckof

fset

[µs]

ptpd onlyptpd with Hadoop

(a) Timeline of PTP synchronization offset.

0 500 1000 1500 2000Request latency [µs]

0.0

0.2

0.4

0.6

0.8

1.0

memcached onlymem’d with Hadoop

(b) CDF of memcached request latencies.

0 500 1000 1500 2000Barrier sync. latency [µs]

0.0

0.2

0.4

0.6

0.8

1.0

Naiad onlyNaiad with Hadoop

(c) CDF of Naiad barrier sync. latencies.

Figure 1: Motivating experiments: Hadoop traffic interferes with (a) PTPd, (b) memcached and (c) Naiad traffic.

Setup 50th% 99th%one host, idle network 85 126µs

two hosts, shared switch 110 130µsshared source host, shared egress port 228 268µsshared dest. host, shared ingress port 125 278µs

shared host, shared ingress and egress 221 229µstwo hosts, shared switch queue 1,920 2,100µs

Table 1: Median and 99th percentile latencies observedas ping and iperf share various parts of the network.

2 MotivationWe begin by showing that shared switch queues are theprimary source of network interference. We then quan-tify the extent to which network interference impactsapplication-observable metrics of performance.

2.1 Where does the latency come from?Network interference may occur at various places on thenetwork path. Applications may share ingress or egresspaths in the host, share the same network switch, or sharethe same queue in the same network switch. To assess theimpact of interference in each of these situations, we em-ulate a latency-sensitive RPC application using ping anda throughput-intensive bulk transfer application by run-ning two instances of iperf. Table 1 shows the results ofarranging ping and iperf with various degrees of net-work sharing. Although any sharing situation results ininterference, the effect is worst when applications share acongested switch queue.. In this case, the 99th percentileping latency is degraded by over 16! compared to theunshared case.

2.2 How bad is it really?Different applications use the network in different ways.To demonstrate the degree to which network interfer-ence affects different applications, we run three represen-tative latency-sensitive applications (PTPd, memcachedand Naiad) on a network shared with Hadoop (details

in §6) and measure the effects.

1. Clock Synchronization Precise clock synchroniza-tion is important to distributed systems such as Google’sSpanner [11]. PTPd offers microsecond-granularity timesynchronization from a time server to machines on alocal network. In Figure 1a, we show a timeline ofPTPd synchronizing a host clock on both an idle net-work and when sharing the network with Hadoop. Inthe shared case, Hadoop’s shuffle phases causes queue-ing, which delays PTPd’s synchronization packets. Thiscauses PTPd to temporarily fall 200–500µs out of syn-chronization; 50! worse than on an idle network.

2. Key-value Stores Memcached is a popular in-memory key-value store used by Facebook and others tostore small objects for quick retrieval [25]. We bench-mark memcached using the memaslap load generator2

and measure the request latency. Figure 1b shows thedistribution of request latencies on an idle network and anetwork shared with Hadoop. With Hadoop running, the99th percentile request latency degrades by 1.5! from779µs to 1196µs. Even worse, approximately 1 in 6,000requests take over 200ms to complete3, over 85! worsethan the maximum latency seen on an idle network.

3. Iterative Data-Flow Naiad is a framework for dis-tributed data-flow computation [24]. In iterative com-putations, Naiad’s performance depends on low-latencystate synchronization between worker nodes. To test Na-iad’s sensitivity to network interference, we execute abarrier synchronization benchmark (provided by the Na-iad authors) with and without Hadoop running. Figure 1cshows the distribution of Naiad synchronization laten-cies in both situations. On an idle network, Naiad takesaround 500µs at the 99th percentile to perform a four-waybarrier synchronization. With interference, this grows to1.1–1.5ms, a 2–3! performance degradation.

2http://libmemcached.org3Likely because packet loss triggers the TCP minRTO timeout.

Page 14: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

Qjump – two pieces

1.  At network config time   Compute a set of (8*) rates based on   Traffic matric & hops => fan in (f)

2.  At run time   Flow assigns itself a priority/rate class   subject it to (per hypervisor) rate limit

* 8 arbitrary – but often h/w supported

Page 15: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

Memcached latency redux w/ QJ

USENIX Association 12th USENIX Symposium on Networked Systems Design and Implementation (NSDI ’15) 7

0 1 2 3 40.0

0.2

0.4

0.6

0.8

1.0

5 300 600 9001200Latency in µs

alone+ iperf+ iperf w/ QJ

(a) CDF of ping packet latency across aswitch. Note the change in x-axis scale.

0 500 1000 1500 2000Latency in µs

0.0

0.2

0.4

0.6

0.8

1.0

alone+ Hadoop+ Had. w/ QJ

(b) QJUMP reduces memcached request la-tency: CDF of 9 million samples.

0 500 1000 1500 2000Latency in µs

0.0

0.2

0.4

0.6

0.8

1.0

alone+ Hadoop+ Had. w/ QJ

(c) QJ fixes Naiad barrier synchronizationlatency: CDF over 10k samples.

Figure 3: Application-level latency experiments: QJUMP (green, dotted line) mitigates the latency tails from Figure 1.

Figure 4: Network topology of our test-bed.

performance. We also show that in a realistic multi-application setting, QJUMP both resolves network inter-ference and outperforms other readily available systems.We execute these experiments on the topology shown inFigure 4.

Low Latency RPC vs. Bulk Transfer Remote Proce-dure Calls (RPCs) and bulk data transfers represent ex-treme ends of the latency-bandwidth spectrum. QJUMPresolves network interference at these extremes. As in§2.1, we emulate RPCs and bulk data transfers usingping and iperf respectively. We measure in-networklatency for the ping traffic directly using a high resolu-tion Endace DAG capture card and two optical taps oneither side of a switch. This verifies that queueing la-tency at switches is reduced by QJUMP. By setting pingto the highest QJUMP level ( f7 = 1), we reduce its pack-ets’ latency at the switch by over 300! (Figure 3a). Thesmall difference between idle switch latency (1.6µs) andQJUMP latency (2–4µs) arises due a small on-chip FIFOthrough which the switch must process packets in-order.The switch processing delay, represented as ! in Equa-tion 2, is thus no more than 4µs for each of our switches.

Memcached QJUMP resolves network interferenceexperienced by memcached sharing a network withHadoop. We show this by repeating the memcached ex-periments in §2.2. In this experiment, memcached isconfigured at an intermediate QJUMP level, rate-limitedto 5Gb/s (above memcached’s maximum throughput; see

§6.5). Figure 3b shows the distribution (CDF) of mem-cached request latencies when running on an idle net-work, a shared network, and a shared network withQJUMP enabled. With QJUMP enabled, the request laten-cies are close to the ideal. The median latency improvesfrom 824µs in the shared case to 476µs, a nearly 2! im-provement.6

Naiad Barrier Synchronization QJUMP also resolvesnetwork interference experienced by Naiad [24], a dis-tributed system for executing data parallel dataflow pro-grams. Figure 3c shows the latency distribution ofa four-way barrier synchronization in Naiad. On anidle network network, 90% of synchronizations take nomore than 600µs. With interfering traffic from Hadoop,this value doubles to 1.2ms. When QJUMP is enabled,however, the distribution closely tracks the uncontendedbaseline distribution, despite sharing the network withHadoop. QJUMP here offers a 2–5! improvement inapplication-level latency.

Multi-application Environment In real-world data-centers, a range of applications with different latencyand bandwidth requirements share same infrastructure.QJUMP effectively resolves network interference in theseshared, multi-application environments. We consider adatacenter setup with three different applications: ptpdfor time synchronization, memcached for serving smallobjects and Hadoop for batch data analysis. Since resolv-ing on-host interference is outside the scope of our work,we avoid sharing hosts between applications in these ex-periments and share only the network infrastructure.

Figure 5 (top) shows a timeline of average request la-tencies (over a 1ms window) for memcached and syn-chronization offsets for ptpd, each running alone on anotherwise idle network. Figure 5 (middle), shows the twoapplications sharing the network with Hadoop. In this

6The distributions for the idle network and the QJUMP case do notcompletely agree due of randomness in the load generated.

Page 16: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

QJ naiad barrier synch latency redux

USENIX Association 12th USENIX Symposium on Networked Systems Design and Implementation (NSDI ’15) 7

0 1 2 3 40.0

0.2

0.4

0.6

0.8

1.0

5 300 600 9001200Latency in µs

alone+ iperf+ iperf w/ QJ

(a) CDF of ping packet latency across aswitch. Note the change in x-axis scale.

0 500 1000 1500 2000Latency in µs

0.0

0.2

0.4

0.6

0.8

1.0

alone+ Hadoop+ Had. w/ QJ

(b) QJUMP reduces memcached request la-tency: CDF of 9 million samples.

0 500 1000 1500 2000Latency in µs

0.0

0.2

0.4

0.6

0.8

1.0

alone+ Hadoop+ Had. w/ QJ

(c) QJ fixes Naiad barrier synchronizationlatency: CDF over 10k samples.

Figure 3: Application-level latency experiments: QJUMP (green, dotted line) mitigates the latency tails from Figure 1.

Figure 4: Network topology of our test-bed.

performance. We also show that in a realistic multi-application setting, QJUMP both resolves network inter-ference and outperforms other readily available systems.We execute these experiments on the topology shown inFigure 4.

Low Latency RPC vs. Bulk Transfer Remote Proce-dure Calls (RPCs) and bulk data transfers represent ex-treme ends of the latency-bandwidth spectrum. QJUMPresolves network interference at these extremes. As in§2.1, we emulate RPCs and bulk data transfers usingping and iperf respectively. We measure in-networklatency for the ping traffic directly using a high resolu-tion Endace DAG capture card and two optical taps oneither side of a switch. This verifies that queueing la-tency at switches is reduced by QJUMP. By setting pingto the highest QJUMP level ( f7 = 1), we reduce its pack-ets’ latency at the switch by over 300! (Figure 3a). Thesmall difference between idle switch latency (1.6µs) andQJUMP latency (2–4µs) arises due a small on-chip FIFOthrough which the switch must process packets in-order.The switch processing delay, represented as ! in Equa-tion 2, is thus no more than 4µs for each of our switches.

Memcached QJUMP resolves network interferenceexperienced by memcached sharing a network withHadoop. We show this by repeating the memcached ex-periments in §2.2. In this experiment, memcached isconfigured at an intermediate QJUMP level, rate-limitedto 5Gb/s (above memcached’s maximum throughput; see

§6.5). Figure 3b shows the distribution (CDF) of mem-cached request latencies when running on an idle net-work, a shared network, and a shared network withQJUMP enabled. With QJUMP enabled, the request laten-cies are close to the ideal. The median latency improvesfrom 824µs in the shared case to 476µs, a nearly 2! im-provement.6

Naiad Barrier Synchronization QJUMP also resolvesnetwork interference experienced by Naiad [24], a dis-tributed system for executing data parallel dataflow pro-grams. Figure 3c shows the latency distribution ofa four-way barrier synchronization in Naiad. On anidle network network, 90% of synchronizations take nomore than 600µs. With interfering traffic from Hadoop,this value doubles to 1.2ms. When QJUMP is enabled,however, the distribution closely tracks the uncontendedbaseline distribution, despite sharing the network withHadoop. QJUMP here offers a 2–5! improvement inapplication-level latency.

Multi-application Environment In real-world data-centers, a range of applications with different latencyand bandwidth requirements share same infrastructure.QJUMP effectively resolves network interference in theseshared, multi-application environments. We consider adatacenter setup with three different applications: ptpdfor time synchronization, memcached for serving smallobjects and Hadoop for batch data analysis. Since resolv-ing on-host interference is outside the scope of our work,we avoid sharing hosts between applications in these ex-periments and share only the network infrastructure.

Figure 5 (top) shows a timeline of average request la-tencies (over a 1ms window) for memcached and syn-chronization offsets for ptpd, each running alone on anotherwise idle network. Figure 5 (middle), shows the twoapplications sharing the network with Hadoop. In this

6The distributions for the idle network and the QJUMP case do notcompletely agree due of randomness in the load generated.

Page 17: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

Web search FCT100Kb ave

10 12th USENIX Symposium on Networked Systems Design and Implementation (NSDI ’15) USENIX Association

Web

-sea

rch

wor

kloa

d

0.2 0.4 0.6 0.8Load

12

51020

Nor

mal

ized

FCT

[]

TCPDCTCP

pFabric

QJump

(a) (0, 100kB]: average.

0.2 0.4 0.6 0.8Load

12

51020

Nor

mal

ized

FCT

[log 1

0]

(b) (0, 100kB]: 99th percentile.

0.2 0.4 0.6 0.8Load

12

51020

Nor

mal

ized

FCT

[log 1

0]

(c) (10MB, !): average.

Dat

a-m

inin

gw

orkl

oad

0.2 0.4 0.6 0.8Load

12

51020

Nor

mal

ized

FCT

[log 1

0]

TCPDCTCP

pFabricQJump

(d) (0, 100kB]: average.

0.2 0.4 0.6 0.8Load

12

51020

Nor

mal

ized

FCT

[log 1

0]

(e) (0, 100kB]: 99th percentile.

0.2 0.4 0.6 0.8Load

12

51020

Nor

mal

ized

FCT

[log 1

0]

(f) (10MB, !): average.

Figure 9: Normalized flow completion times in a 144-host simulation (1 is ideal): QJUMP outperforms TCP, DCTCPand pFabric for small flows. N.B.: log-scale y-axis; QJUMP and pFabric overlap in (a), (d) and (e).

outperforms pFabric by up to 20% at high load, but losesto pFabric by 15% at low load (Fig. 9c). On the data min-ing workload, QJUMP’s average FCTs are between 30%and 63% worse than pFabric’s (Fig. 9f).

In the data-mining workload, 85% of all flows transferfewer than 100kB, but over 80% of the bytes are trans-ferred in flows of greater than 100MB (less than 15%of the total flows). QJUMP’s short epoch intervals can-not sense the difference between large flows, so it doesnot apply any rate-limiting (scheduling) to them. Thisresults in sub-optimal behavior. A combined approachwhere QJUMP regulates interactions between large flowsand small flows, while DCTCP regulates the interactionsbetween different large flows might improve this.

6.5 QJUMP ConfigurationAs described in §5, QJUMP levels can be determinedin several ways. One approach is to tune the levels toa specific mix of applications. For some applications,it is clear that they perform best at guaranteed latency(e.g. ptpd at f7 = 1) or high rate (e.g. Hadoop at f0 = n).For others, their performance at different throughput fac-tors is less straightforward. Memcached is an exampleof such an application. It needs low request latency vari-ance as well as reasonable request throughput. Figure 10shows memcached’s request throughput and latency asa function of rate-limiting. Peak throughput is reachedat a rate allocation of around 5Gb/s. At the same point,

0.0 0.2 0.4 0.6 0.8 1.00.0

0.2

0.4

0.6

0.8

1.0

0.0

0.2

0.4

0.6

0.8

1.0

0 2 4 6 8 10Rate limit [Gb/s]

10µs100µs

1ms10ms

100ms1s

Late

ncy

[log 1

0]

Max. latency99%ile latency

050

100150200

Thro

ughp

ut[k

req/

s]

best tradeoff

Throughput

Figure 10: memcached throughput (top) and latency(bottom, log10) as a function of the QJUMP rate limit.

the request latency also stabilizes. Hence, a rate-limit of5Gb/s gives the best tradeoff for memcached. This pointhas the strongest interference control possible withoutthroughput restrictions. To convert this to a throughputfactor, we get fi =

nTiR by rearranging Equation 2 for fi.

On our test-bed (n = 12 at R =10Gb/s), Ti =5Gb/s yieldsa throughput factor of f = 6. We can therefore choosea QJUMP level for memcached (e.g. f4) and set it to athroughput factor !6.

QJUMP offers a bounded latency level at throughputfactor f7. At this level, all packets admitted into the net-

Page 18: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

Big Picture Comparison – Related work…

12 12th USENIX Symposium on Networked Systems Design and Implementation (NSDI ’15) USENIX Association

Commodity Unmodified Coord. Flow Bounded Imple-System hardware protocols OS kernel apps. free deadlines latency mented

Dep

loya

ble Pause frames ! ! ! ! ! " " !‡

ECN !!, ECN ! ! ! ! " " !‡

DCTCP [1] !!, ECN !! " ! ! " " !‡

Fastpass [29] ! ! !, module ! " " " !‡

EyeQ [22] !!, ECN ! " ! " " " !‡

QJUMP ! ! !, module ! ! !! ! !‡

Not

depl

oyab

le

D2TCP [33] !!, ECN !! " " "! ! " !HULL [2] " !! " ! ! " " !!

D3 [35] " " " " ! ! " "!, softw.PDQ [17] " " " " " ! " "pFabric [3] " " " ! ! !! " "DeTail [37] " ! ! " "! " " "!, softw.Silo [21] ! ! " !! "! !!, SLAs " !TDMA Eth. [34] !! !! " !! " " ! !

Table 2: Comparison of related systems. !with caveats, see text; ‡implementation publicly available.

8 Discussion and Future WorkIt would be ideal if applications were automatically clas-sified into QJUMP levels. This requires overcoming a fewchallenges. First, the rate-limiter needs to be extendedto calculate an estimate of instantaneous throughput foreach application. Second, applications that exceed theirthroughput allocation must be moved to a lower QJUMPlevel, while applications that underutilize their allocationmust be lifted to a higher QJUMP level. Third, someapplications (e.g. Naiad) have latency-sensitive controltraffic as well as throughput-intensive traffic that must betreated separately [19]. We leave this to future work.

9 ConclusionQJUMP applies QoS-inspired concepts to datacenter ap-plications to mitigate network interference. It offers mul-tiple QJUMP levels with different latency variance vs.throughput tradeoffs, including bounded latency (at lowrate) and full utilization (at high latency variance). In anextensive evaluation, we have demonstrated that QJUMPattains near-ideal performance for real applications andgood flow completion times in simulations. Source codeand data sets are available from http://goo.gl/q1lpFC.

AcknowledgementsWe would like to thank Alex Ho and John Peach fromArista for arranging 10G switches for us. We wouldalso like to thank Simon Peter, Srinivasan Keshav, Mar-wan Fayed, Rolf Neugebauer, Tim Harris, Antony Row-stron, Matthew Huxtable, Jeff Mogul and our anonymousreviewers for their valuable feedback. Thanks also goto our shepherd Jeff Dean. This work was supportedby a Google Fellowship, EPSRC INTERNET ProjectEP/H040536/1, Defense Advanced Research ProjectsAgency (DARPA) and Air Force Research Laboratory(AFRL), under contract FA8750-11-C-0249. The views,opinions, and/or findings contained in this article are

those of the authors and should not be interpreted as rep-resenting the official views or policies, either expressedor implied, of DARPA or the Department of Defense.

AppendixThe Parekh-Gallager theorem [27, 28] shows thatWeighted Fair Queueing (WFQ) achieves a worst casedelay bound given by the equation

end to end delay " !g+

K#1

!i=1

Pgi

+K

!i=1

Pri, (5)

where all sources are governed by a leaky bucket ab-straction with rate " and burst size ! , packets have amaximum size P and pass through K switches. For eachswitch i, there is a total rate ri of which each connection(host) receives a rate gi. g is the minimum of all gi. It isassumed that " " g, i.e. the network is underutilized.

The final term in the equation adjusts for the differencebetween PGPS and GPS (Generalized Processor Shar-ing) for a non-idle network. Since we assume an idlenetwork in our model (3.1), Equation 5 simplifies to

end to end delay " !g+

K#1

!i=1

Pgi

(6)

If we assume that all hosts are given a fair share of thenetwork—i.e. Fair Queueing rather than WFQ—then,

gi =ri

n(7)

where n is the number of hosts. Therefore the g (the min-imum gi) dominates. Since we assume an idle network,the remaining terms sum to zero. For a maximum burstsize " = P, the equation therefore simplifies to

end to end delay " Pg= n$ P

R(8)

which is equivalent to the equation derived in Equation 1(§3.1). The Parekh-Gallager theorem does not take intoaccount the switch processing delay # , since it is negligi-ble compared to the end-to-end delay on the Internet.

Page 19: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

Failure Detectors

  2PC & CAP theorem   Recall CAP (Brewer’s Hypothesis)

  Consistency, Availability, Partitions   Strong& weak versions!   If have net&node deterministic failure

detector, isn’t necessarily so!   What can we use CAP-able system for?

Page 20: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

2b 2PC throughput with and without QJump

8 12th USENIX Symposium on Networked Systems Design and Implementation (NSDI ’15) USENIX Association

0

400

800

1200 idle network memcached avg. latencyPTPd offset

0

400

800

1200 + Hadoop

150 200 250 300 350Time since start [sec]

0

400

800

1200 + Hadoop, with QJump

Tim

e[µ

s]

Figure 5: PTPd and memcached in isolation (top), withinterfering traffic from Hadoop (middle) and with the in-terference mitigated by QJUMP (bottom).

case, average latencies increase for both applications andvisible latency spikes (corresponding to Hadoop’s shuf-fle phases) emerge. With QJUMP deployed, we assignptpd to f7 = 1, Hadoop to f0 = n = 12 and memcachedto T5 = 5Gb/s =! f5 = 6 (see §6.5). The three appli-cations now co-exist without interference (Figure 5 (bot-tom)). Hadoop’s performance is not noticeably affectedby QJUMP, as we will further show in §6.3.

Distributed Atomic Commit One of QJUMP’s uniquefeatures is its guaranteed latency level (described in§3.1). Bounded latency enables interesting new designsfor datacenter coordination software such as SDN con-trol planes, fast failure detection and distributed consen-sus systems. To demonstrate the usefulness of QJUMP’sbounded latency level, we built a simple distributed two-phase atomic-commit (2PC) application.

The application communicates over TCP or over UDPwith explicit acknowledgements and retransmissions.Since QJUMP offers reliable delivery, the coordinator cansend its messages by UDP broadcast when QJUMP is en-abled. This optimization yields a "30% throughput im-provement over both TCP and UDP.

In Figure 6, we show the request rate for one coordi-nator and seven servers as a function of network interfer-ence. Interference is created with two traffic generators:on that generates a constant 10Gb/s of UDP traffic andanother that sends fixed-size bursts followed by a 25mspause. We report interference as the ratio of the burstsize to the internal switch buffer size. Beyond a ratio of200%, permanent queues build up in the switch. At thispoint the impact of retransmissions degrades throughputof the UDP and TCP implementations to 20% of the

0.1%

0.4%

1.6%

6.2%

25.0%

100.0

%

400.0

%

Burst size / switch buffer size [log2]

0

2000

4000

6000

8000

10000

12000

14000Th

roug

hput

[req/

s]

Broadcast UDP + QJumpUDP + retriesTCP

Figure 6: QJUMP offers constant two-phase committhroughput even at high levels of network interference.

10,000 requests/sec observed on an idle network. Bycontrast, the UDP-over-QJUMP implementation does notdegrade as its messages “jump the queue”. At high inter-ference ratios (>200%), two-phase commit over QJUMPachieves 6.5# the throughput of standard TCP or UDP.Furthermore, QJUMP’s reliable delivery and low latencyenable very aggressive timeouts to be used for failuredetection. Our 2PC system detects component failurewithin two network epochs ("40µs on our network), farfaster than typical failure detection timeouts (e.g. 150 msin RAMCloud [26, §4.6]).

6.3 QJUMP Outperforms AlternativesSeveral readily deployable congestion control schemesexist, including Ethernet Flow Control (802.1x), ExplicitCongestion Notifications (ECN) and Data Center TCP(DCTCP). We repeat the multi-application experimentdescribed in §6.2 and show that QJUMP exhibits betterinterference control than other schemes.

Since interference is transient in these experiments,we measure the degree to which it affects applicationsusing the root mean square (RMS) of each application-specific metric.7 For Hadoop, PTPd and memcached, themetrics are job runtime, synchronization offset and re-quest latency, respectively. Figure 7 shows six cases: anideal case, a contended case and one for each of the fourschemes used to mitigate network interference. All casesare normalized to the ideal case, which has each applica-tion running alone on an idle network. We discuss eachresult in turn.

Ethernet Flow Control Like QJUMP, Ethernet FlowControl is a data link layer congestion control mecha-nism. Hosts and switches issue special pause messages

7RMS is a statistical measure of the magnitude of a varying quan-tity [6, p. 64]. This is not the same as the root mean square error(RMSE), which measures prediction accuracy.

Page 21: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

Consistent, partition tolerant app?

  Software Defined Net update!   Distributed controllers have distributed

rules   Rules change from time to time   Need to update, consistently   Need update to work in presence of

partitions   By definition!

  So Qjump may let us do this too!

Page 22: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

3. Application code -> Network

  Last piece of data center working for application

  Switch and Host NICs have a lot of smarts   Network processors,   like GPUs or (net)FPGAs   Can they help applications?   In particular, avoid pathological traffic

patterns (e.g. TCP incast)

Page 23: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

Application code

  E.g. shuffle phase in map/reduce   Does a bunch of aggregation   (min, max, ave) on a row of results   And is cause of traffic “implosion”   So do work in stages in the switches in the

net (like merge sort!)   Code very simple   Cross-compile into switch NIC cpus

Page 24: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

Other application examples

  Are many …   Arose in Active Network research

  Transcoding   Encryption   Compression   Index/Search

  Etc etc

Page 25: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

Need language to express these

  Finite iteration   (not Turing-complete language)   So design python– with strong types!   Work in progress in NaaS project at

Imperial and Cambridge…

Page 26: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

Cloud Computing Isn’t For Everything!

•  “being  fast  really  ma1ers…half  a  second  delay  caused  a  20%  drop  in  traffic  and  it  killed  user  sa>sfac>on”  -­‐  Marissa  Mayer  @  Web  2.0  (2008)  

•   “A  millisecond  decrease  in  a  trade  delay  may  boost  a  high-­‐speed  firm's  earnings  by  about  100  million  per  year”  –  SAP,  2012  

•  “It’s  simply  not  appropriate  to  just  drag  and  drop  our  databases  into  a  cloud  plaSorm”  –  Thomas  Kadlec,  Tesco,  2015  

Latency  effect  on  facial  recogni0on   Source: Glimpse project, MIT, 2014

Remote  Processing   Local  Processing  

Page 27: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

Tiny Terabit Datacentre An End-Host Networked-Server Architecture

  High Performance   Resource Isolation   Flexible Implementation

  Predictable Latency   Low Latency Interconnect   Affordable

Page 28: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

NITRO"  28

Networks, Interfaces and Transports!for Rack-Scale Operating Systems!

Page 29: Systems (th)at Scalejac22/talks/c38-cl-cam-jon.pdf · Cloud, Data Center, Networks 1. New Cloud OS to meet new workloads ... Bringing up MirageOS unikernels on ARM required de-tailed

Conclusions/Discussion

  Data Center is a special case!   Its important enough to tackle

  We can hard bound latency easily   We can detect failures and therefore solve

some nice distributed consensus problems   We can optimise applications pathological

traffic patterns   Integrate programming of net&hosts   Weird new h/w…

  Plenty more to do…