Dynamically Deploying Packet Processing Applications on Running Systems without Halting

2015 
As computer networks become increasingly central to societal functions, avoiding their disruption grows in importance. Thus, this paper describes techniques for dynamically replacing packet processing programs without halting the programs or the packet traffic. The techniques are geared to the application domain and our coarse-grained parallelism packet processing model but are not exclusive to either. The approach allows old and new deployments' executable code to coexist until the next deployment. We write new code and table information to the running system without perturbing the threads processing packets currently in flight. Actual cut-over is effected by an atomic write to a single variable. Our implementation is realized by separate tables that represent program structure and packet routing topology, by associating a deployment indicator with each thread, and by enhanced linking and loading software tools. The techniques have been in fielded products for several years.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    8
    References
    0
    Citations
    NaN
    KQI
    []