Shared Data Layer (SDL) provides a high-speed interface to access shared storage
Project description
RIC SDL
Shared Data Layer in the RAN Intelligent Controller
Shared Data Layer (SDL) provides a lightweight, high-speed interface for accessing shared data storage. The purpose is to enable utilizing clients to become stateless, conforming with, e.g., the requirements of the fifth generation mobile networks.
Concepts
Namespace
Namespaces provide data isolation within SDL data storage. That is, data in certain namespace is isolated from the data in other namespaces. Each SDL client uses one or more namespaces. Namespaces can be used, for example, to isolate data belonging to different use cases.
Keys and Data
Clients save key-data pairs. Data is passed as a bytes
type. SDL stores the
data as it is. Any structure that this data may have (e.g. a data structure
serialized by pickle
) is meaningful only to the client itself. Clients are
responsible for managing the keys. As namespaces provide data isolation,
keys in different namespaces always access different data.
Backend Data Storage
Backend data storage refers to data storage technology behind SDL API, which handles the actual data storing. SDL API hides the backend data storage implementation from SDL API clients, and therefore backend data storage technology can be changed without affecting SDL API clients. Currently, Redis database is used as a backend data storage solution.
Notifications
Notifications functionality provide SDL clients the possibility to receive notifications about data changes in SDL namespaces. SDL client receiving notifications about data changes is referred to as "subscriber", while the SDL client modifying data and publishing notifications is referred to as "publisher".
Install
Install from PyPi
python3 -m pip install ricsdl
Install using the source
python3 setup.py install
Usage
Instructions how to use SDL can be found from O-RAN Software Community (SC) Documentation under Near Realtime RAN Intelligent Controller (RIC) section: O-RAN SC Documentation Home
Unit Testing
To run the unit tests run the following command in the package directory:
python3 -m pytest
Examples
See the examples
directory.
CI
The ci is done with the tox
tool. See tox.ini
file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file ricsdl-3.1.3-py3-none-any.whl
.
File metadata
- Download URL: ricsdl-3.1.3-py3-none-any.whl
- Upload date:
- Size: 34.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 368f41dd8aa6b3ce183c3ff44ca7cdb7b44a187c62dbdc2ac940250784faf7c4 |
|
MD5 | 8050e57c928c6b716ea6c2b24332788d |
|
BLAKE2b-256 | 6a3705d6ea1f550309dc32c2e61e4e68767291f14fc68e7063d4f70592f0099f |