1
Efficient Trie Braiding in Scalable Virtual Routers
Author:Haoyu Song, Murali Kodialam, Fang Hao, T.V. LakshmanPublisher:IEEE/ACM TRANSACTIONS ON NETWORKINGPresenter:Zi-Yang OuDate:2012/10/17
Introduction
2
This paper proposes a mechanism called trie braiding that can be used
to combine tries from different virtual routers into just one trie. Trie braiding enables each trie node to swap its left child node and
right child node freely. The changed shape is memorized by a single bit at each trie node. Two optimal dynamic programming algorithms and a faster heuristic
algorithm are presented. Trie braiding leads to significant savings in high-speed memory, and
hence improves scalability.
3
Trie Braiding In Fig. b, we swap node a’s child nodes and node c’s child nodes.
4
a
c b
d
e f
a
c b
d
e f
Problem Formulation Definition 1: A mapping M of T2 to T1
Definition 2: A permissible mapping
5
Definition 3:
Definition 4: Distance
6
7
Braid : A DP Algorithm Input : T1 and T2
Output :
8
Step1: Compute Leaf Weights
Step2: Distance Computation
Step3: It starts from r2 and uses S( , ) to obtain the optimal mapping
and braiding bit for each node v2.
9
10
11
FAST-BRAID: Braiding With Isomorphism Detection The motivation is the result in Lemma 1. If we can identify the fact that , then we need
to compute the value of only once. Using the technique developed by [26] in linear time algorithm for tree
isomorphism to keep track of the nodes with isomorphic subtrees. We first process each tree separately. Two nodes will be given the same label if and only if the subtrees
rooted at those two nodes are isomorphic. In the FAST-BRAID algorithm, we have to compute the value of
for two labels, each from a different tree.
12
k-Braid: A k-Step Lookahead Heuristic for Braiding This heuristic algorithm determines the mapping from root to leaves.
13
Combining Multiple Trees So far, we have dealt with the problem of combining two trees. If we want to combine more than two trees, then the running time of
the optimal algorithm grows exponentially with the number of trees. We use an incremental approach where we first merge T1 and T2 and
then merge Ti (i >= 3) onto combined tree.
14
Algorithm Evaluation
15
16
17
18
19
20