Stream Processing in PNEs

Download Report

Transcript Stream Processing in PNEs

Stream Processing in
PNEs
George Porter
Edge Services Session
Winter Retreat - 2004
Overview


Streams prevalent in the edge network
PNEs—general platform for packet processing
(roughly layers 2-4) in the edge



We need a general mechanism for stream processing
(roughly layer 7) that is integrated with the current PNE
design and architecture
I am proposing an extension to PNEs to specify streams
and a mechanism for executing that specification at high
speeds in a general way from the PNE interface
This mechanism provides a clear separation
between the transport of packets and the
structure of the protocol
Packet-vs.-stream processing: what’s the
difference?


Packet Processing
 Ethernet, IP, and TCP
headers in every packet
 Decisions are stateless
between packets
 Resilient to loss, reorder,
duplication
Stream Processing





Assumes reliable transport
Sequence of variable length
data units over TCP
Simple for endhosts, since
O/S delivers in order
Loss, reorder, dups a problem
for in-network elements
PNEs must track data unit
boundaries
Ethernet
IP
TCP
Ethernet
…
Data
Ethernet
IP
TCP
iSCSI1
Data
Data1
IP
TCP
Data
Ethernet
IP
TCP
Data1
iSCSI2
Data2
Examples of observed phenomenon
(observed on OASIS testbed)
header1
data1
header2
data2
Original Stream:
1)
2)
3)
(overlaps with first
And last part of header)
Need for stream processing
Necessary to track any layer-7 protocol
that exists on top of TCP
 Storage



Web/P2P



iSCSI: storage virtualization, load-balancing,
security, caching, in-network optimizations
HTTP pipelining: load-balancing
P2P: HTTP often used as a transport protocol
Measurement/Monitoring

Tracking state of observed protocols over time
PNE mechanism for tracking ADUs
H
H
StreamTracker
Packet flow (fast path)
Packet(s) containing
ADU boundary
Priority
Queue
Computed
ADU size
FixedLogic
(iscsi)
Paramaterized
by specification
PNE mechanism for tracking ADUs
StreamTracker
Packet flow (fast path)
Packet(s) containing
ADU boundary
Priority
Queue
Computed
ADU size
VariableLogic
(http)
Paramaterized
by specification
Evaluation Platform

Deployed onto testbed consisting of





20 Pentium-500 Linux machines
100 Mbit ethernet-based network
iSCSI source and target through Intel drivers
100MB ramdisk on target / 30gig IDE Seagate
drive
Code deployment


Baseline: Click modular router running in
Kernel
“Tracking”: Click router in kernel with custom
elements
Results: #pkts examined

Only a small number of packets are examined in
detail:
Workload
Packets
examined
Total
Packets
Percent
Unpack and compile Apache
2272
42850
5.30%
Resize two ~80Kb images
15
266
5.64%
Store/Read 20Mb MPEG file
595
37207
1.60%
FS caching does not effect above measurements
Results: overhead of packet examination

Overhead of examining packets in depth is large,
but infrequent:
Workload
Stock Click
CPU
cycles/pkt
Tracking
CPU
Cycles/pkt
Percent
Increase
iSCSI regression Test
1430
1871
30.8%
iSCSI regression Test (1% loss)
1328
1937
45.9%
Unpack and compile Apache
1591
2104
32.2%
Next Steps
Implement in PNE software artifact
 Write compiler for specification language
 Deployment




(see poster for deployment overview)
“VideoCollective”, “VideoCollective with
sharing”, “VideoCollective with collaborative
sharing”
Measurement of storage statistics in above
deployment