Skip to main content

Middleware and Compute Engine for an OpenStack Swift compute framework that runs compute within a Swift cluster

Project description

Storlets extend Swift with the ability to run user defined computations - called storlets - near the data in a secure and isolated manner. A storlet is a compiled and packaged code (e.g. a .jar file) that can be uploaded to Swift as any other object. Once uploaded the storlet can be invoked over data objects in Swift. The Storlets API is documented at “Storlets API v1”.

The project started off as an IBM research project, and was open sourced by IBM in 2014.

  • The research leading to the development of this code received funding from the European Community’s Seventh Framework Programme (FP7/2007-2013) under the grant agreements for the CASPAR, ENSURE and VISION Cloud projects.

  • Various stages and different aspects of the development of this code received funding from the following European Community’s Framework Programme:

    • Seventh Framework Programme (FP7/2007-2013) under the grant agreements for the ForgetIT project, where the code is used for offloading digital preservation functionalities to the storage.

    • Seventh Framework Programme (FP7/2007-2013) under the grant agreements for COSMOS project, where the code is used for analysis of IoT data.

    • Seventh Framework Programme (FP7/2007-2013) under the grant agreements for FI-CORE project where the code is integrated with a holistic cloud deployment solution, and from

    • Horizon 2020 (H2020/2014-2020) under the grant agreement for the IOStack project where the code is used as a backend implementing Storage policies and is used for analytics

Docs

The storlerts documentation is auto-generated after every commit and available online at https://docs.openstack.org/storlets/latest/

Getting Started for Users

The fastest way to get started is “S2AIO - Swift Storlets All In One”.

For Engine Developers

Getting Started

The best way to get started is following this guide: “Installing a Development Environment”.

Tests

There are two types of tests included in the Storlets repo.

  1. Unit tests

  2. Functional tests

Unit tests, are, well, unit tests… The functional tests are black box tests validating end-to-end scenarios using various storlets, including faulty ones. For more information please refer to the: “Development and Testing Guide”.

Repository Structure

  • doc/source/: Documentation

  • etc/: Sample config files

  • storlets/: Python codes

    • agent/: Python code for Docker side agents

      • common/: An agent for storlets process management

      • daemon/: An agent for execution of python applications

      • daemon_factory/: Pyth

    • gateway/: Run time loadable code for managing storlets execution

    • sbus/: A Java implementation of the SBUS communication protocol

    • swift_middleware/: Swift middleware dealing with storlet invocation requests

  • StorletSamples/: Storlets examples, used for functional testing

  • src/: C and Java codes

    • c/: All codes

      • sbus/: A core implementation of the SBUS protocol, which is used for passing fsd between the middleware and container

    • java/: Java codes

      • SBus:/ A Java implementation of the SBUS communication protocol

      • SCommon/: A Java library required for storlets development

      • SDaemon/: A generic Java daemon for loading storlets at runtime

  • tests/: Unit and functional tests

  • tools/: Various cluster config dependent tools for automatic and manual testing

For Storlets Developers

Currently, storlets can be developed in Java only. To get started, follow: “S2AIO - Swift Storlets All In One”.

The write and deploy a storlet, follow: “Writing and deploying storlets”.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

storlets-13.0.0.tar.gz (1.8 MB view details)

Uploaded Source

Built Distribution

storlets-13.0.0-py3-none-any.whl (80.4 kB view details)

Uploaded Python 3

File details

Details for the file storlets-13.0.0.tar.gz.

File metadata

  • Download URL: storlets-13.0.0.tar.gz
  • Upload date:
  • Size: 1.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.7

File hashes

Hashes for storlets-13.0.0.tar.gz
Algorithm Hash digest
SHA256 b7db8ca241f3898e886b56bc88744dd55823e3da430e991e594f6760824373a3
MD5 ebb5ec142fdb49bb6ad72ee8c3d1d499
BLAKE2b-256 2538befb06ecdc4f376e32ebc2a2141f2a25523a52ab817527db89b413bc904b

See more details on using hashes here.

Provenance

File details

Details for the file storlets-13.0.0-py3-none-any.whl.

File metadata

  • Download URL: storlets-13.0.0-py3-none-any.whl
  • Upload date:
  • Size: 80.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.7

File hashes

Hashes for storlets-13.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c66fc6e306c3f2b97b2d0e709478e16dc71bbf6918529f082eb20d7d81989805
MD5 8e5bb03fe7a6feb6cbe924307339c0eb
BLAKE2b-256 e5fafa05dabd94359ace168bab558bf12190a3818e14a070f9b87358ca752f97

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page