ricsdl


Namericsdl JSON
Version 3.1.3 PyPI version JSON
download
home_pagehttps://gerrit.o-ran-sc.org/r/admin/repos/ric-plt/sdlpy
SummaryShared Data Layer (SDL) provides a high-speed interface to access shared storage
upload_time2023-06-09 08:14:19
maintainer
docs_urlNone
authorTimo Tietavainen
requires_python>=3.7
licenseApache 2.0
keywords ric sdl
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            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](https://docs.o-ran-sc.org/projects/o-ran-sc-ric-plt-sdl/en/latest/)


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.

            

Raw data

            {
    "_id": null,
    "home_page": "https://gerrit.o-ran-sc.org/r/admin/repos/ric-plt/sdlpy",
    "name": "ricsdl",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "RIC SDL",
    "author": "Timo Tietavainen",
    "author_email": "timo.tietavainen@nokia.com",
    "download_url": "",
    "platform": null,
    "description": "RIC SDL\n=======\n\nShared Data Layer in the RAN Intelligent Controller\n\nShared Data Layer (SDL) provides a lightweight, high-speed interface for\naccessing shared data storage. The purpose is to enable utilizing clients to\nbecome stateless, conforming with, e.g., the requirements of the fifth\ngeneration mobile networks.\n\n\nConcepts\n--------\n\nNamespace\n\nNamespaces provide data isolation within SDL data storage. That is, data in\ncertain namespace is isolated from the data in other namespaces. Each SDL\nclient uses one or more namespaces. Namespaces can be used, for example, to\nisolate data belonging to different use cases.\n\nKeys and Data\n\nClients save key-data pairs. Data is passed as a `bytes` type. SDL stores the\ndata as it is. Any structure that this data may have (e.g. a data structure\nserialized by `pickle`) is meaningful only to the client itself. Clients are\nresponsible for managing the keys. As namespaces provide data isolation,\nkeys in different namespaces always access different data.\n\nBackend Data Storage\n\nBackend data storage refers to data storage technology behind SDL API, which\nhandles the actual data storing. SDL API hides the backend data storage\nimplementation from SDL API clients, and therefore backend data storage\ntechnology can be changed without affecting SDL API clients. Currently, Redis\ndatabase is used as a backend data storage solution.\n\nNotifications\n\nNotifications functionality provide SDL clients the possibility to receive\nnotifications about data changes in SDL namespaces. SDL client receiving\nnotifications about data changes is referred to as \"subscriber\", while the SDL\nclient modifying data and publishing notifications is referred to as\n\"publisher\".\n\nInstall\n-------\n\nInstall from PyPi\n\n```\npython3 -m pip install ricsdl\n```\n\nInstall using the source\n\n```\npython3 setup.py install\n```\n\n\nUsage\n-----\n\nInstructions how to use SDL can be found from O-RAN Software Community (SC)\nDocumentation under Near Realtime RAN Intelligent Controller (RIC) section:\n[O-RAN SC Documentation Home](https://docs.o-ran-sc.org/projects/o-ran-sc-ric-plt-sdl/en/latest/)\n\n\nUnit Testing\n------------\n\nTo run the unit tests run the following command in the package directory:\n`\npython3 -m pytest\n`\n\n\nExamples\n--------\n\nSee the ``examples`` directory.\n\n\n\nCI\n--\n\nThe ci is done with the `tox` tool. See `tox.ini` file for details.\n",
    "bugtrack_url": null,
    "license": "Apache 2.0",
    "summary": "Shared Data Layer (SDL) provides a high-speed interface to access shared storage",
    "version": "3.1.3",
    "project_urls": {
        "Homepage": "https://gerrit.o-ran-sc.org/r/admin/repos/ric-plt/sdlpy"
    },
    "split_keywords": [
        "ric",
        "sdl"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6a3705d6ea1f550309dc32c2e61e4e68767291f14fc68e7063d4f70592f0099f",
                "md5": "8050e57c928c6b716ea6c2b24332788d",
                "sha256": "368f41dd8aa6b3ce183c3ff44ca7cdb7b44a187c62dbdc2ac940250784faf7c4"
            },
            "downloads": -1,
            "filename": "ricsdl-3.1.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8050e57c928c6b716ea6c2b24332788d",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 34688,
            "upload_time": "2023-06-09T08:14:19",
            "upload_time_iso_8601": "2023-06-09T08:14:19.397496Z",
            "url": "https://files.pythonhosted.org/packages/6a/37/05d6ea1f550309dc32c2e61e4e68767291f14fc68e7063d4f70592f0099f/ricsdl-3.1.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-06-09 08:14:19",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "ricsdl"
}
        
Elapsed time: 0.07493s