Technical Report Number
Directed graphs with edge labels are used in packet processing algorithms for a variety of network applications. In this paper we present a novel representation for such graph that significantly reduces the memory required for such graphs. This approach called History-based Encoding, eXecution and Addressing (HEXA) challenges the conventional assumption that graph data structures must store pointers of log2n bits to identify successor nodes. HEXA takes advantage of implict information to reduce the information that must be stored explicitly. We demonstrate that the binary tries used for IP route lookup can be implemented using just two bytes per stored prefix (roughly half the space required by Eatherton’s tree bitmap data structure) and that string matching can be implemented using 20-30% of the space required by conventional data representations. Compact representations are useful, because they allow the performance-critical part of packet processing algorithms to be implemented using fast, on-chip memory, eliminating the need to retrieve information from much slower off-chip memory. This can yield both substantially higher performance and lower power utilization. While enabling a compact representation, HEXA does not add significant complexity to the graph traversal and update, thus maintaining a high performance.
Kumar, Sailesh; Turner, Jonathan; Crowley, Patrick; and Mitzenmacher, Michael, "HEXA: Compact Data Structures for Faster Packet Processing" Report Number: WUCSE-2007-26 (2007). All Computer Science and Engineering Research.