FlexState: Enabling Innovation in Network Function State Management

Matteo Pozza,Ashwin Rao,Diego Lugones,Sasu Tarkoma
DOI: https://doi.org/10.48550/arXiv.2003.10869
2020-03-24
Abstract:Network function (NF) developers need to provide highly available solutions with diverse packet processing features at line rate. A significant challenge in developing such functions is to build flexible software that can be adapted to different operating environments, vendors, and operator use-cases. Today, refactoring NF software for specific scenarios can take months. Furthermore, network operators are increasingly adopting fast-paced development practices for continuous software delivery to gain market advantage, which imposes even shorter development cycles. A key aspect in NF design is state management, which can be optimized across deployments by carefully selecting the underlying data store. However, migrating to a data store that suits a different use-case is time consuming because it requires code refactoring while revisiting its application programming interfaces, APIs. In this paper we introduce FlexState, a state management system that decouples the NF packet processing logic from the data store that maintains its state. The objective is to reduce code refactoring significantly by incorporating an abstraction layer that exposes various data stores as configuration alternatives. Experiments show that FlexState achieves significant flexibility in optimizing the NF state management across several scenarios with negligible overhead.
Networking and Internet Architecture
What problem does this paper attempt to address?
The problem that this paper attempts to solve is the contradiction between the flexibility and performance of the state management system in network function (NF) development. Specifically, current state management systems are usually tightly coupled with specific data storage, which results in a large amount of code refactoring work when replacing data storage or adapting to new usage scenarios, thus delaying the NF deployment time. In addition, this tight coupling limits the functions and features that the state management system API can provide, making it difficult for network operators to quickly introduce new features and performance improvements of data storage. To address these challenges, the paper proposes FlexState, a state management system that aims to decouple the NF packet - processing logic from the underlying data storage by introducing an abstraction layer. The main goals of FlexState are: 1. **Reduce code refactoring**: By providing a unified API, NF developers can switch between different data storages without making significant modifications to the NF packet - processing logic. 2. **Maintain high performance**: While introducing flexibility, ensure that the system can process data packets at line rate without affecting the performance of NF. 3. **Support multiple data storages**: By selecting the appropriate data storage driver through the configuration file, FlexState can be seamlessly integrated with multiple types of data storage, including key - value storage (such as Redis), distributed hash table (such as Cassandra), etc. The paper verifies the effectiveness of FlexState through experiments, demonstrating its ability to optimize NF state management in multiple usage scenarios with almost no additional overhead. This solution helps to accelerate the development and deployment of NF, while also improving the flexibility and maintainability of the system.