SlideShare a Scribd company logo
1 of 23
Download to read offline
Michio Honda	(NEC	Laboratories	Europe/NetApp*),
Lars	Eggert	and	Douglas	Santry (NetApp)
ACM	HotNets 2016
November	9-10th,	Atlanta,	GA
PASTE:
Network	Stacks	Must	Integrate	with	NVMM	
Abstractions
*work	done
https://www.hpe.com/us/en/servers
/persistent-memory.html
Motivation
• Non-Volatile	Main	Memories	(NVMMs)
• Persistent
• Byte-addressable
• Low	latency
• 10s-1000s	of	ns
• Shift	from	block- to	byte-granularity	persistency
• OS	abstractions
• Direct access	to	mmap()-ed files
• Data	structures
• Filesystems	and	databases
What	are	implications	for	networking?
Case Study: Write-Ahead Logging
• Persist	client’s	request	prior	to	acknowledgment
• Mask	overhead	of	updating	primary	database	(e.g.	B-
tree)	to	the	client
• 1KB	commit
• 2030	us
• Networking	takes	40	us
client
DRAM
Network
stack
SSD/
DIsk
App
NIC
(1)
(2)
(5)
Storage	
stack
(4)
write()/memcpy()
->fsync()/msync()
(3)
read()
write()/memcpy()
->fsync()/msync()
Case Study: Write-Ahead Logging
• Persist	client’s	request	prior	to	acknowledgment
• Mask	overhead	of	updating	primary	database	(e.g.	B-
tree)	to	the	client
• 1KB	commit
• 2000	 42 us
• Networking	takes	40	us
• This	2	us	is	not	small
client
DRAM
Network
stack
Storage	
stack
NVMM
App
NIC
(1)
(2)
(5)
Emulated	using	a	
reserved	region	of	
DRAM
(3)
read()
(4)
1 5 10 15 20 25
0
20
40
60
80
100
120
140
TKrougKput[1.tranV/V]
1 5 10 15 20 25
0
50
100
150
200
250
300
350
/atency[µV]
# of Concurrent ConnectLonV
1et. 2nOy
1et. + read()/mVync() on 1V00 (emuO.)
1et. + memcpy()/mVync() on 1V00 (emuO.)
• Parallel	requests	are	serialized	on	each	core
Case Study: Write-Ahead Logging
33	%	throughput	decrease,	50	%	latency	increase
Data Copies Matter
• Cache	Misses
• Copy	to	tmp buffer	(e.g.,	read())	is	cheap
• Logging	always	happens	to	a	different	destination
app	bufferkernel	buffer
read()
log	file	(mmap()-ed)
memcpy()
Overall cache	misses Largest	Contributor
Networking	only 0.0004 % net_rx_action()	(84%)
Networking	+	NVMM
(read() +	memcpy()	+	msync())
4.4121	% memcpy()	(98%)
Networking	+	NVMM	
(read()+msync())
8.3451	% sys_read()	(99	%)
We	must	avoid	data	copy	for	logging!
Packet Store (PASTE) Overview
• Static	packet	buffers	on	a	named	NVMM	region
• DMA	to	NVMM
• Zero-copy	APIs
• Fast	logging
client
Network
stack
Storage	
stack
NVMM
App
NIC
(1)
(2)
(3)
/mnt/nvmm
/pktbufs
/mnt/pmem
/appmd
(4)
metadata	only
(e.g.,	buffer	index)
Fast Logging with PASTE
/mnt/nvmm/myapp_metadata
buf_idx off len
0 100 1135
1 100 932
3 100 1024
/mnt/nvmm/pktbufs
buf_ofs: 123
/mnt/nvmm/pktbufs
packet	buffers
(static)
metadata	header
metadata	entries
NIC	ring
Application
(2)	Write	metadata	entry	
(3)	Flush	(buffer	and	metadata)
netmap APImmap()
(1)	Read	data	(zero	copy)
Kernel
User
TCP/IP
input	
and	
output
Because	of	DDIO	(DMA	to	L3	cache),	NVMM	latency	only	
arises	on	flushing	data	(i.e.,	step		(3)),	not	on	every	packet
Unread
Read
Flushed
Fast Logging with PASTE
/mnt/nvmm/myapp_metadata
buf_idx off len
0 100 1135
1 100 932
3 100 1024
/mnt/nvmm/pktbufs
buf_ofs: 123
/mnt/nvmm/pktbufs
packet	buffers
(static)
metadata	header
metadata	entries
NIC	ring
Application
(2)	Write	metadata	entry	
(3)	Flush	(buffer	and	metadata)
netmap APImmap()
(1)	Read	data	(zero	copy)
Kernel
User
TCP/IP
input	
and	
output
Unread
Read
Flushed
Because	of	DDIO	(DMA	to	L3	cache),	NVMM	latency	only	
arises	on	flushing	data	(i.e.,	step		(3)),	not	on	every	packet
Fast Logging with PASTE
/mnt/nvmm/myapp_metadata
buf_idx off len
0 100 1135
1 100 932
3 100 1024
/mnt/nvmm/pktbufs
buf_ofs: 123
/mnt/nvmm/pktbufs
packet	buffers
(static)
metadata	header
metadata	entries
NIC	ring
Application
(2)	Write	metadata	entry	
(3)	Flush	(buffer	and	metadata)
netmap APImmap()
(1)	Read	data	(zero	copy)
Kernel
User
TCP/IP
input	
and	
output
Unread
Read
Flushed
Because	of	DDIO	(DMA	to	L3	cache),	NVMM	latency	only	
arises	on	flushing	data	(i.e.,	step		(3)),	not	on	every	packet
Fast Logging with PASTE
/mnt/nvmm/myapp_metadata
buf_idx off len
0 100 1135
1 100 932
3 100 1024
/mnt/nvmm/pktbufs
buf_ofs: 123
/mnt/nvmm/pktbufs
packet	buffers
(static)
metadata	header
metadata	entries
NIC	ring
Application
(2)	Write	metadata	entry
(3)	Flush	(buffer	and	metadata)
netmap APImmap()
(1)	Read	data	(zero	copy)
Kernel
User
TCP/IP
input	
and	
output
Unread
Read
Flushed
Because	of	DDIO	(DMA	to	L3	cache),	NVMM	latency	only	
arises	on	flushing	data	(i.e.,	step		(3)),	not	on	every	packet
Fast Logging with PASTE
/mnt/nvmm/myapp_metadata
buf_idx off len
0 100 1135
1 100 932
3 100 1024
/mnt/nvmm/pktbufs
buf_ofs: 123
/mnt/nvmm/pktbufs
packet	buffers
(static)
metadata	header
metadata	entries
NIC	ring
Application
(2)	Write	metadata	entry	
(3)	Flush	(buffer	and	metadata)
netmap APImmap()
(1)	Read	data	(zero	copy)
Kernel
User
TCP/IP
input	
and	
output
Unread
Read
Flushed
Because	of	DDIO	(DMA	to	L3	cache),	NVMM	latency	only	
arises	on	flushing	data	(i.e.,	step		(3)),	not	on	every	packet
Fast Logging with PASTE
/mnt/nvmm/myapp_metadata
buf_idx off len
0 100 1135
1 100 932
3 100 1024
/mnt/nvmm/pktbufs
buf_ofs: 123
/mnt/nvmm/pktbufs
packet	buffers
(static)
metadata	header
metadata	entries
NIC	ring
Application
(2)	Write	metadata	entry	
(3)	Flush	(buffer	and	metadata)
netmap APImmap()
(1)	Read	data	(zero	copy)
Kernel
User
TCP/IP
input	
and	
output
Unread
Read
Flushed
Because	of	DDIO	(DMA	to	L3	cache),	NVMM	latency	only	
arises	on	flushing	data	(i.e.,	step		(3)),	not	on	every	packet
Fast Logging with PASTE
/mnt/nvmm/myapp_metadata
buf_idx off len
0 100 1135
1 100 932
3 100 1024
/mnt/nvmm/pktbufs
buf_ofs: 123
/mnt/nvmm/pktbufs
packet	buffers
(static)
metadata	header
metadata	entries
NIC	ring
Application
(2)	Write	metadata	entry	
(3)	Flush	(buffer	and	metadata)
netmap APImmap()
(1)	Read	data	(zero	copy)
Kernel
User
TCP/IP
input	
and	
output
Unread
Read
Flushed
Because	of	DDIO	(DMA	to	L3	cache),	NVMM	latency	only	
arises	on	flushing	data	(i.e.,	step		(3)),	not	on	every	packet
Fast Logging with PASTE
/mnt/nvmm/myapp_metadata
buf_idx off len
0 100 1135
1 100 932
3 100 1024
/mnt/nvmm/pktbufs
buf_ofs: 123
/mnt/nvmm/pktbufs
packet	buffers
(static)
metadata	header
metadata	entries
NIC	ring
Application
(2)	Write	metadata	entry	
(3)	Flush	(buffer	and	metadata)
netmap APImmap()
(1)	Read	data	(zero	copy)
Kernel
User
TCP/IP
input	
and	
output
Unread
Read
Flushed
Because	of	DDIO	(DMA	to	L3	cache),	NVMM	latency	only	
arises	on	flushing	data	(i.e.,	step		(3)),	not	on	every	packet
Fast Logging with PASTE
/mnt/nvmm/myapp_metadata
buf_idx off len
0 100 1135
1 100 932
3 100 1024
/mnt/nvmm/pktbufs
buf_ofs: 123
/mnt/nvmm/pktbufs
packet	buffers
(static)
metadata	header
metadata	entries
NIC	ring
Application
(2)	Write	metadata	entry	
(3)	Flush	(buffer	and	metadata)
netmap APImmap()
(1)	Read	data	(zero	copy)
Kernel
User
TCP/IP
input	
and	
output
Unread
Read
Flushed
Because	of	DDIO	(DMA	to	L3	cache),	NVMM	latency	only	
arises	on	flushing	data	(i.e.,	step		(3)),	not	on	every	packet
Fast Logging with PASTE
/mnt/nvmm/myapp_metadata
buf_idx off len
0 100 1135
1 100 932
3 100 1024
/mnt/nvmm/pktbufs
buf_ofs: 123
/mnt/nvmm/pktbufs
packet	buffers
(static)
metadata	header
metadata	entries
NIC	ring
Application
(2)	Write	metadata	entry	
(3)	Flush	(buffer	and	metadata)
netmap APImmap()
(1)	Read	data	(zero	copy)
Kernel
User
TCP/IP
input	
and	
output
Idempotent	
request
Unread
Read
Flushed
Because	of	DDIO	(DMA	to	L3	cache),	NVMM	latency	only	
arises	on	flushing	data	(i.e.,	step		(3)),	not	on	every	packet
Fast Logging with PASTE
/mnt/nvmm/myapp_metadata
buf_idx off len
0 100 1135
1 100 932
3 100 1024
/mnt/nvmm/pktbufs
buf_ofs: 123
/mnt/nvmm/pktbufs
packet	buffers
(static)
metadata	header
metadata	entries
NIC	ring
Application
(2)	Write	metadata	entry	
(3)	Flush	(buffer	and	metadata)
netmap APImmap()
(1)	Read	data	(zero	copy)
Kernel
User
TCP/IP
input	
and	
output
Unread
Read
Flushed
Because	of	DDIO	(DMA	to	L3	cache),	NVMM	latency	only	
arises	on	flushing	data	(i.e.,	step		(3)),	not	on	every	packet
Fast Logging with PASTE
/mnt/nvmm/myapp_metadata
buf_idx off len
0 100 1135
1 100 932
3 100 1024
/mnt/nvmm/pktbufs
buf_ofs: 123
/mnt/nvmm/pktbufs
packet	buffers
(static)
metadata	header
metadata	entries
NIC	ring
Application
(2)	Write	metadata	entry	
(3)	Flush	(buffer	and	metadata)
netmap APImmap()
(1)	Read	data	(zero	copy)
Kernel
User
TCP/IP
input	
and	
output
Unread
Read
Flushed
Because	of	DDIO	(DMA	to	L3	cache),	NVMM	latency	only	
arises	on	flushing	data	(i.e.,	step		(3)),	not	on	every	packet
Fast Logging with PASTE
/mnt/nvmm/myapp_metadata
buf_idx off len
0 100 1135
1 100 932
3 100 1024
/mnt/nvmm/pktbufs
buf_ofs: 123
/mnt/nvmm/pktbufs
packet	buffers
(static)
metadata	header
metadata	entries
NIC	ring
Application
(2)	Write	metadata	entry	
(3)	Flush	(buffer	and	metadata)
netmap APImmap()
(1)	Read	data	(zero	copy)
Kernel
User
TCP/IP
input	
and	
output
Unread
Read
Flushed
Because	of	DDIO	(DMA	to	L3	cache),	NVMM	latency	only	
arises	on	flushing	data	(i.e.,	step		(3)),	not	on	every	packet
10-88	%	throughput	increase,	9-46	%	latency	reduction
Preliminary Results
• Implementation
• Extend	the	netmap framework
• Stackmap for	TCP/IP
Related Work
• Enhanced	network	stacks
• MegaPipe (OSDI’12),	Stackmap (ATC’16),	Fastsocket
(ASPLOS’16)
• IX	and	Arrakis (OSDI’14),	mTCP (NSDI’13),	Sandstorm	
(SIGCOMM’14)
• NVMM	filesystems
• BPFS	(SOSP’09),	NOVA	(FAST’15)
• NVMM	databases
• NVWAL	(ASPLOS’15),	REWIND	(VLDB’15),	NV-Tree (FAST’15)
No	NVMM	aware
No	networking	aware
Conclusion
• Implications
• Network	stacks	are	now	a	bottleneck	for	
durably	storing	data
• Improving	network	and	storage	stacks	in	
isolation	is	not	enough
• We	need	new	stacks	design
PASTE:	Fast	logging	with	
named	packet	buffers	on	NVMM	and	zero-copy	API

More Related Content

What's hot

Playing BBR with a userspace network stack
Playing BBR with a userspace network stackPlaying BBR with a userspace network stack
Playing BBR with a userspace network stackHajime Tazaki
 
Packet Framework - Cristian Dumitrescu
Packet Framework - Cristian DumitrescuPacket Framework - Cristian Dumitrescu
Packet Framework - Cristian Dumitrescuharryvanhaaren
 
Introduction to DPDK
Introduction to DPDKIntroduction to DPDK
Introduction to DPDKKernel TLV
 
How to Speak Intel DPDK KNI for Web Services.
How to Speak Intel DPDK KNI for Web Services.How to Speak Intel DPDK KNI for Web Services.
How to Speak Intel DPDK KNI for Web Services.Naoto MATSUMOTO
 
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)Hajime Tazaki
 
FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)Kirill Tsym
 
FreeBSD and Drivers
FreeBSD and DriversFreeBSD and Drivers
FreeBSD and DriversKernel TLV
 
Introduction to eBPF
Introduction to eBPFIntroduction to eBPF
Introduction to eBPFRogerColl2
 
Intel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsIntel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsHisaki Ohara
 
Library Operating System for Linux #netdev01
Library Operating System for Linux #netdev01Library Operating System for Linux #netdev01
Library Operating System for Linux #netdev01Hajime Tazaki
 
LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1Hajime Tazaki
 
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...Jim St. Leger
 
CETH for XDP [Linux Meetup Santa Clara | July 2016]
CETH for XDP [Linux Meetup Santa Clara | July 2016] CETH for XDP [Linux Meetup Santa Clara | July 2016]
CETH for XDP [Linux Meetup Santa Clara | July 2016] IO Visor Project
 
DPDK Summit 2015 - HP - Al Sanders
DPDK Summit 2015 - HP - Al SandersDPDK Summit 2015 - HP - Al Sanders
DPDK Summit 2015 - HP - Al SandersJim St. Leger
 

What's hot (20)

Playing BBR with a userspace network stack
Playing BBR with a userspace network stackPlaying BBR with a userspace network stack
Playing BBR with a userspace network stack
 
Packet Framework - Cristian Dumitrescu
Packet Framework - Cristian DumitrescuPacket Framework - Cristian Dumitrescu
Packet Framework - Cristian Dumitrescu
 
DPDK KNI interface
DPDK KNI interfaceDPDK KNI interface
DPDK KNI interface
 
Introduction to DPDK
Introduction to DPDKIntroduction to DPDK
Introduction to DPDK
 
How to Speak Intel DPDK KNI for Web Services.
How to Speak Intel DPDK KNI for Web Services.How to Speak Intel DPDK KNI for Web Services.
How to Speak Intel DPDK KNI for Web Services.
 
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
 
FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)
 
FreeBSD and Drivers
FreeBSD and DriversFreeBSD and Drivers
FreeBSD and Drivers
 
Introduction to eBPF
Introduction to eBPFIntroduction to eBPF
Introduction to eBPF
 
Intel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsIntel DPDK Step by Step instructions
Intel DPDK Step by Step instructions
 
Dpdk applications
Dpdk applicationsDpdk applications
Dpdk applications
 
Library Operating System for Linux #netdev01
Library Operating System for Linux #netdev01Library Operating System for Linux #netdev01
Library Operating System for Linux #netdev01
 
LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1
 
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...
 
CETH for XDP [Linux Meetup Santa Clara | July 2016]
CETH for XDP [Linux Meetup Santa Clara | July 2016] CETH for XDP [Linux Meetup Santa Clara | July 2016]
CETH for XDP [Linux Meetup Santa Clara | July 2016]
 
100 M pps on PC.
100 M pps on PC.100 M pps on PC.
100 M pps on PC.
 
DPDK Summit 2015 - HP - Al Sanders
DPDK Summit 2015 - HP - Al SandersDPDK Summit 2015 - HP - Al Sanders
DPDK Summit 2015 - HP - Al Sanders
 
DPDK In Depth
DPDK In DepthDPDK In Depth
DPDK In Depth
 
Dpdk performance
Dpdk performanceDpdk performance
Dpdk performance
 
Virtual net performance
Virtual net performanceVirtual net performance
Virtual net performance
 

Similar to PASTE: Network Stacks Must Integrate with NVMM Abstractions

Tempesta FW: a FrameWork and FireWall for HTTP DDoS mitigation and Web Applic...
Tempesta FW: a FrameWork and FireWall for HTTP DDoS mitigation and Web Applic...Tempesta FW: a FrameWork and FireWall for HTTP DDoS mitigation and Web Applic...
Tempesta FW: a FrameWork and FireWall for HTTP DDoS mitigation and Web Applic...Alexander Krizhanovsky
 
CPN302 your-linux-ami-optimization-and-performance
CPN302 your-linux-ami-optimization-and-performanceCPN302 your-linux-ami-optimization-and-performance
CPN302 your-linux-ami-optimization-and-performanceCoburn Watson
 
HUGFR : Une infrastructure Kafka & Storm pour lutter contre les attaques DDoS...
HUGFR : Une infrastructure Kafka & Storm pour lutter contre les attaques DDoS...HUGFR : Une infrastructure Kafka & Storm pour lutter contre les attaques DDoS...
HUGFR : Une infrastructure Kafka & Storm pour lutter contre les attaques DDoS...Modern Data Stack France
 
NUSE (Network Stack in Userspace) at #osio
NUSE (Network Stack in Userspace) at #osioNUSE (Network Stack in Userspace) at #osio
NUSE (Network Stack in Userspace) at #osioHajime Tazaki
 
An introduction and evaluations of a wide area distributed storage system
An introduction and evaluations of  a wide area distributed storage systemAn introduction and evaluations of  a wide area distributed storage system
An introduction and evaluations of a wide area distributed storage systemHiroki Kashiwazaki
 
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...DataWorks Summit/Hadoop Summit
 
LinuxCon2009: 10Gbit/s Bi-Directional Routing on standard hardware running Linux
LinuxCon2009: 10Gbit/s Bi-Directional Routing on standard hardware running LinuxLinuxCon2009: 10Gbit/s Bi-Directional Routing on standard hardware running Linux
LinuxCon2009: 10Gbit/s Bi-Directional Routing on standard hardware running Linuxbrouer
 
Understanding the virtual memory - Ixia Connect #2
Understanding the virtual memory - Ixia Connect #2Understanding the virtual memory - Ixia Connect #2
Understanding the virtual memory - Ixia Connect #2IxiaRomania
 
Tempesta FW - Framework и Firewall для WAF и DDoS mitigation, Александр Крижа...
Tempesta FW - Framework и Firewall для WAF и DDoS mitigation, Александр Крижа...Tempesta FW - Framework и Firewall для WAF и DDoS mitigation, Александр Крижа...
Tempesta FW - Framework и Firewall для WAF и DDoS mitigation, Александр Крижа...Ontico
 
BWC Supercomputing 2008 Presentation
BWC Supercomputing 2008 PresentationBWC Supercomputing 2008 Presentation
BWC Supercomputing 2008 Presentationlilyco
 
Xian He Sun Data-Centric Into
Xian He Sun Data-Centric IntoXian He Sun Data-Centric Into
Xian He Sun Data-Centric IntoSciCompIIT
 
Steen_Dissertation_March5
Steen_Dissertation_March5Steen_Dissertation_March5
Steen_Dissertation_March5Steen Larsen
 
Intro (Distributed computing)
Intro (Distributed computing)Intro (Distributed computing)
Intro (Distributed computing)Sri Prasanna
 
Multitenancy: Kafka clusters for everyone at LINE
Multitenancy: Kafka clusters for everyone at LINEMultitenancy: Kafka clusters for everyone at LINE
Multitenancy: Kafka clusters for everyone at LINEkawamuray
 
Project Tungsten Phase II: Joining a Billion Rows per Second on a Laptop
Project Tungsten Phase II: Joining a Billion Rows per Second on a LaptopProject Tungsten Phase II: Joining a Billion Rows per Second on a Laptop
Project Tungsten Phase II: Joining a Billion Rows per Second on a LaptopDatabricks
 
import rdma: zero-copy networking with RDMA and Python
import rdma: zero-copy networking with RDMA and Pythonimport rdma: zero-copy networking with RDMA and Python
import rdma: zero-copy networking with RDMA and Pythongroveronline
 

Similar to PASTE: Network Stacks Must Integrate with NVMM Abstractions (20)

Tempesta FW: a FrameWork and FireWall for HTTP DDoS mitigation and Web Applic...
Tempesta FW: a FrameWork and FireWall for HTTP DDoS mitigation and Web Applic...Tempesta FW: a FrameWork and FireWall for HTTP DDoS mitigation and Web Applic...
Tempesta FW: a FrameWork and FireWall for HTTP DDoS mitigation and Web Applic...
 
L05 parallel
L05 parallelL05 parallel
L05 parallel
 
CPN302 your-linux-ami-optimization-and-performance
CPN302 your-linux-ami-optimization-and-performanceCPN302 your-linux-ami-optimization-and-performance
CPN302 your-linux-ami-optimization-and-performance
 
HUGFR : Une infrastructure Kafka & Storm pour lutter contre les attaques DDoS...
HUGFR : Une infrastructure Kafka & Storm pour lutter contre les attaques DDoS...HUGFR : Une infrastructure Kafka & Storm pour lutter contre les attaques DDoS...
HUGFR : Une infrastructure Kafka & Storm pour lutter contre les attaques DDoS...
 
NUSE (Network Stack in Userspace) at #osio
NUSE (Network Stack in Userspace) at #osioNUSE (Network Stack in Userspace) at #osio
NUSE (Network Stack in Userspace) at #osio
 
An introduction and evaluations of a wide area distributed storage system
An introduction and evaluations of  a wide area distributed storage systemAn introduction and evaluations of  a wide area distributed storage system
An introduction and evaluations of a wide area distributed storage system
 
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
 
Memory management
Memory managementMemory management
Memory management
 
Exascale Capabl
Exascale CapablExascale Capabl
Exascale Capabl
 
LinuxCon2009: 10Gbit/s Bi-Directional Routing on standard hardware running Linux
LinuxCon2009: 10Gbit/s Bi-Directional Routing on standard hardware running LinuxLinuxCon2009: 10Gbit/s Bi-Directional Routing on standard hardware running Linux
LinuxCon2009: 10Gbit/s Bi-Directional Routing on standard hardware running Linux
 
Understanding the virtual memory - Ixia Connect #2
Understanding the virtual memory - Ixia Connect #2Understanding the virtual memory - Ixia Connect #2
Understanding the virtual memory - Ixia Connect #2
 
Tempesta FW - Framework и Firewall для WAF и DDoS mitigation, Александр Крижа...
Tempesta FW - Framework и Firewall для WAF и DDoS mitigation, Александр Крижа...Tempesta FW - Framework и Firewall для WAF и DDoS mitigation, Александр Крижа...
Tempesta FW - Framework и Firewall для WAF и DDoS mitigation, Александр Крижа...
 
BWC Supercomputing 2008 Presentation
BWC Supercomputing 2008 PresentationBWC Supercomputing 2008 Presentation
BWC Supercomputing 2008 Presentation
 
Understanding DPDK
Understanding DPDKUnderstanding DPDK
Understanding DPDK
 
Xian He Sun Data-Centric Into
Xian He Sun Data-Centric IntoXian He Sun Data-Centric Into
Xian He Sun Data-Centric Into
 
Steen_Dissertation_March5
Steen_Dissertation_March5Steen_Dissertation_March5
Steen_Dissertation_March5
 
Intro (Distributed computing)
Intro (Distributed computing)Intro (Distributed computing)
Intro (Distributed computing)
 
Multitenancy: Kafka clusters for everyone at LINE
Multitenancy: Kafka clusters for everyone at LINEMultitenancy: Kafka clusters for everyone at LINE
Multitenancy: Kafka clusters for everyone at LINE
 
Project Tungsten Phase II: Joining a Billion Rows per Second on a Laptop
Project Tungsten Phase II: Joining a Billion Rows per Second on a LaptopProject Tungsten Phase II: Joining a Billion Rows per Second on a Laptop
Project Tungsten Phase II: Joining a Billion Rows per Second on a Laptop
 
import rdma: zero-copy networking with RDMA and Python
import rdma: zero-copy networking with RDMA and Pythonimport rdma: zero-copy networking with RDMA and Python
import rdma: zero-copy networking with RDMA and Python
 

Recently uploaded

Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?Watsoo Telematics
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutionsmonugehlot87
 

Recently uploaded (20)

Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutions
 

PASTE: Network Stacks Must Integrate with NVMM Abstractions

  • 1. Michio Honda (NEC Laboratories Europe/NetApp*), Lars Eggert and Douglas Santry (NetApp) ACM HotNets 2016 November 9-10th, Atlanta, GA PASTE: Network Stacks Must Integrate with NVMM Abstractions *work done
  • 2. https://www.hpe.com/us/en/servers /persistent-memory.html Motivation • Non-Volatile Main Memories (NVMMs) • Persistent • Byte-addressable • Low latency • 10s-1000s of ns • Shift from block- to byte-granularity persistency • OS abstractions • Direct access to mmap()-ed files • Data structures • Filesystems and databases What are implications for networking?
  • 3. Case Study: Write-Ahead Logging • Persist client’s request prior to acknowledgment • Mask overhead of updating primary database (e.g. B- tree) to the client • 1KB commit • 2030 us • Networking takes 40 us client DRAM Network stack SSD/ DIsk App NIC (1) (2) (5) Storage stack (4) write()/memcpy() ->fsync()/msync() (3) read()
  • 4. write()/memcpy() ->fsync()/msync() Case Study: Write-Ahead Logging • Persist client’s request prior to acknowledgment • Mask overhead of updating primary database (e.g. B- tree) to the client • 1KB commit • 2000 42 us • Networking takes 40 us • This 2 us is not small client DRAM Network stack Storage stack NVMM App NIC (1) (2) (5) Emulated using a reserved region of DRAM (3) read() (4)
  • 5. 1 5 10 15 20 25 0 20 40 60 80 100 120 140 TKrougKput[1.tranV/V] 1 5 10 15 20 25 0 50 100 150 200 250 300 350 /atency[µV] # of Concurrent ConnectLonV 1et. 2nOy 1et. + read()/mVync() on 1V00 (emuO.) 1et. + memcpy()/mVync() on 1V00 (emuO.) • Parallel requests are serialized on each core Case Study: Write-Ahead Logging 33 % throughput decrease, 50 % latency increase
  • 6. Data Copies Matter • Cache Misses • Copy to tmp buffer (e.g., read()) is cheap • Logging always happens to a different destination app bufferkernel buffer read() log file (mmap()-ed) memcpy() Overall cache misses Largest Contributor Networking only 0.0004 % net_rx_action() (84%) Networking + NVMM (read() + memcpy() + msync()) 4.4121 % memcpy() (98%) Networking + NVMM (read()+msync()) 8.3451 % sys_read() (99 %) We must avoid data copy for logging!
  • 7. Packet Store (PASTE) Overview • Static packet buffers on a named NVMM region • DMA to NVMM • Zero-copy APIs • Fast logging client Network stack Storage stack NVMM App NIC (1) (2) (3) /mnt/nvmm /pktbufs /mnt/pmem /appmd (4) metadata only (e.g., buffer index)
  • 8. Fast Logging with PASTE /mnt/nvmm/myapp_metadata buf_idx off len 0 100 1135 1 100 932 3 100 1024 /mnt/nvmm/pktbufs buf_ofs: 123 /mnt/nvmm/pktbufs packet buffers (static) metadata header metadata entries NIC ring Application (2) Write metadata entry (3) Flush (buffer and metadata) netmap APImmap() (1) Read data (zero copy) Kernel User TCP/IP input and output Because of DDIO (DMA to L3 cache), NVMM latency only arises on flushing data (i.e., step (3)), not on every packet Unread Read Flushed
  • 9. Fast Logging with PASTE /mnt/nvmm/myapp_metadata buf_idx off len 0 100 1135 1 100 932 3 100 1024 /mnt/nvmm/pktbufs buf_ofs: 123 /mnt/nvmm/pktbufs packet buffers (static) metadata header metadata entries NIC ring Application (2) Write metadata entry (3) Flush (buffer and metadata) netmap APImmap() (1) Read data (zero copy) Kernel User TCP/IP input and output Unread Read Flushed Because of DDIO (DMA to L3 cache), NVMM latency only arises on flushing data (i.e., step (3)), not on every packet
  • 10. Fast Logging with PASTE /mnt/nvmm/myapp_metadata buf_idx off len 0 100 1135 1 100 932 3 100 1024 /mnt/nvmm/pktbufs buf_ofs: 123 /mnt/nvmm/pktbufs packet buffers (static) metadata header metadata entries NIC ring Application (2) Write metadata entry (3) Flush (buffer and metadata) netmap APImmap() (1) Read data (zero copy) Kernel User TCP/IP input and output Unread Read Flushed Because of DDIO (DMA to L3 cache), NVMM latency only arises on flushing data (i.e., step (3)), not on every packet
  • 11. Fast Logging with PASTE /mnt/nvmm/myapp_metadata buf_idx off len 0 100 1135 1 100 932 3 100 1024 /mnt/nvmm/pktbufs buf_ofs: 123 /mnt/nvmm/pktbufs packet buffers (static) metadata header metadata entries NIC ring Application (2) Write metadata entry (3) Flush (buffer and metadata) netmap APImmap() (1) Read data (zero copy) Kernel User TCP/IP input and output Unread Read Flushed Because of DDIO (DMA to L3 cache), NVMM latency only arises on flushing data (i.e., step (3)), not on every packet
  • 12. Fast Logging with PASTE /mnt/nvmm/myapp_metadata buf_idx off len 0 100 1135 1 100 932 3 100 1024 /mnt/nvmm/pktbufs buf_ofs: 123 /mnt/nvmm/pktbufs packet buffers (static) metadata header metadata entries NIC ring Application (2) Write metadata entry (3) Flush (buffer and metadata) netmap APImmap() (1) Read data (zero copy) Kernel User TCP/IP input and output Unread Read Flushed Because of DDIO (DMA to L3 cache), NVMM latency only arises on flushing data (i.e., step (3)), not on every packet
  • 13. Fast Logging with PASTE /mnt/nvmm/myapp_metadata buf_idx off len 0 100 1135 1 100 932 3 100 1024 /mnt/nvmm/pktbufs buf_ofs: 123 /mnt/nvmm/pktbufs packet buffers (static) metadata header metadata entries NIC ring Application (2) Write metadata entry (3) Flush (buffer and metadata) netmap APImmap() (1) Read data (zero copy) Kernel User TCP/IP input and output Unread Read Flushed Because of DDIO (DMA to L3 cache), NVMM latency only arises on flushing data (i.e., step (3)), not on every packet
  • 14. Fast Logging with PASTE /mnt/nvmm/myapp_metadata buf_idx off len 0 100 1135 1 100 932 3 100 1024 /mnt/nvmm/pktbufs buf_ofs: 123 /mnt/nvmm/pktbufs packet buffers (static) metadata header metadata entries NIC ring Application (2) Write metadata entry (3) Flush (buffer and metadata) netmap APImmap() (1) Read data (zero copy) Kernel User TCP/IP input and output Unread Read Flushed Because of DDIO (DMA to L3 cache), NVMM latency only arises on flushing data (i.e., step (3)), not on every packet
  • 15. Fast Logging with PASTE /mnt/nvmm/myapp_metadata buf_idx off len 0 100 1135 1 100 932 3 100 1024 /mnt/nvmm/pktbufs buf_ofs: 123 /mnt/nvmm/pktbufs packet buffers (static) metadata header metadata entries NIC ring Application (2) Write metadata entry (3) Flush (buffer and metadata) netmap APImmap() (1) Read data (zero copy) Kernel User TCP/IP input and output Unread Read Flushed Because of DDIO (DMA to L3 cache), NVMM latency only arises on flushing data (i.e., step (3)), not on every packet
  • 16. Fast Logging with PASTE /mnt/nvmm/myapp_metadata buf_idx off len 0 100 1135 1 100 932 3 100 1024 /mnt/nvmm/pktbufs buf_ofs: 123 /mnt/nvmm/pktbufs packet buffers (static) metadata header metadata entries NIC ring Application (2) Write metadata entry (3) Flush (buffer and metadata) netmap APImmap() (1) Read data (zero copy) Kernel User TCP/IP input and output Unread Read Flushed Because of DDIO (DMA to L3 cache), NVMM latency only arises on flushing data (i.e., step (3)), not on every packet
  • 17. Fast Logging with PASTE /mnt/nvmm/myapp_metadata buf_idx off len 0 100 1135 1 100 932 3 100 1024 /mnt/nvmm/pktbufs buf_ofs: 123 /mnt/nvmm/pktbufs packet buffers (static) metadata header metadata entries NIC ring Application (2) Write metadata entry (3) Flush (buffer and metadata) netmap APImmap() (1) Read data (zero copy) Kernel User TCP/IP input and output Idempotent request Unread Read Flushed Because of DDIO (DMA to L3 cache), NVMM latency only arises on flushing data (i.e., step (3)), not on every packet
  • 18. Fast Logging with PASTE /mnt/nvmm/myapp_metadata buf_idx off len 0 100 1135 1 100 932 3 100 1024 /mnt/nvmm/pktbufs buf_ofs: 123 /mnt/nvmm/pktbufs packet buffers (static) metadata header metadata entries NIC ring Application (2) Write metadata entry (3) Flush (buffer and metadata) netmap APImmap() (1) Read data (zero copy) Kernel User TCP/IP input and output Unread Read Flushed Because of DDIO (DMA to L3 cache), NVMM latency only arises on flushing data (i.e., step (3)), not on every packet
  • 19. Fast Logging with PASTE /mnt/nvmm/myapp_metadata buf_idx off len 0 100 1135 1 100 932 3 100 1024 /mnt/nvmm/pktbufs buf_ofs: 123 /mnt/nvmm/pktbufs packet buffers (static) metadata header metadata entries NIC ring Application (2) Write metadata entry (3) Flush (buffer and metadata) netmap APImmap() (1) Read data (zero copy) Kernel User TCP/IP input and output Unread Read Flushed Because of DDIO (DMA to L3 cache), NVMM latency only arises on flushing data (i.e., step (3)), not on every packet
  • 20. Fast Logging with PASTE /mnt/nvmm/myapp_metadata buf_idx off len 0 100 1135 1 100 932 3 100 1024 /mnt/nvmm/pktbufs buf_ofs: 123 /mnt/nvmm/pktbufs packet buffers (static) metadata header metadata entries NIC ring Application (2) Write metadata entry (3) Flush (buffer and metadata) netmap APImmap() (1) Read data (zero copy) Kernel User TCP/IP input and output Unread Read Flushed Because of DDIO (DMA to L3 cache), NVMM latency only arises on flushing data (i.e., step (3)), not on every packet
  • 22. Related Work • Enhanced network stacks • MegaPipe (OSDI’12), Stackmap (ATC’16), Fastsocket (ASPLOS’16) • IX and Arrakis (OSDI’14), mTCP (NSDI’13), Sandstorm (SIGCOMM’14) • NVMM filesystems • BPFS (SOSP’09), NOVA (FAST’15) • NVMM databases • NVWAL (ASPLOS’15), REWIND (VLDB’15), NV-Tree (FAST’15) No NVMM aware No networking aware
  • 23. Conclusion • Implications • Network stacks are now a bottleneck for durably storing data • Improving network and storage stacks in isolation is not enough • We need new stacks design PASTE: Fast logging with named packet buffers on NVMM and zero-copy API