Skip to content

Commit

Permalink
docs: remove mentions to distributed orchestrator mode (#379)
Browse files Browse the repository at this point in the history
* docs(source/documentation/orchestrator): remove mentions to distributed mode

Signed-off-by: Thibault Camalon <135698225+thbcmlowk@users.noreply.github.com>

* chore(source/static/schemes): update orchestrator scheme

Signed-off-by: Thibault Camalon <135698225+thbcmlowk@users.noreply.github.com>

* chore(orchestrator): add note related to distributed mode

Signed-off-by: Thibault Camalon <135698225+thbcmlowk@users.noreply.github.com>

* chore(orchestrator): fix typo

Signed-off-by: Thibault Camalon <135698225+thbcmlowk@users.noreply.github.com>

---------

Signed-off-by: Thibault Camalon <135698225+thbcmlowk@users.noreply.github.com>
  • Loading branch information
thbcmlowk authored Oct 24, 2023
1 parent 3d0e184 commit f200d04
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 16 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Add doc about task output permissions ([#369](https://github.com/Substra/substra-documentation/pull/369))
- Examples now install torch on CPU only if launched on docker or remote mode ([#375](https://github.com/Substra/substra-documentation/pull/375))

### Removed

- Mentions to Orchestrator distributed mode ([#379](https://github.com/Substra/substra-documentation/pull/379))

## [0.33.1]

### Fixed
Expand Down
24 changes: 9 additions & 15 deletions docs/source/documentation/orchestrator/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,22 @@ Performing a Federated Learning experiment implies a lot of different compute ta
The orchestrator registers the status of tasks; when a task is done (status ``Done``), it evaluates if some remaining tasks (status ``Waiting``) are now unblocked, and if it's the case, the status of those tasks is changed to ``To do``. The new status is sent to all the backends, who store the new tasks ``To do`` in the task queue (Celery). Then, the task queue will assign the task to one of the workers (if multiple) and handle retries if needed.

In case of failure, it will store failure reports and change the status of the faulty task to ``Failed``.
In case of manual cancellation, it will change the status of the the tasks to `Cancelled` on different backends.
In case of manual cancellation, it will change the status of the tasks to ``Cancelled`` on different backends.

Orchestration
=============

Centralized vs. decentralized orchestration
===========================================

Substra offers two types of orchestration: **distributed** and **centralized**.

.. image:: /static/schemes/distributed-vs-centralized-orc.svg

Orchestration is hosted by a central Postgres database:

The distributed orchestration is based on a private blockchain using Hyperledger Fabric, while the centralized orchestration is hosted by a central Postgres database.
.. image:: /static/schemes/centralized-orc.svg

In both cases, the orchestration stores only non-sensitive metadata of the Substra assets, making it possible to verify the integrity of the assets and ensures that the permissions on the assets are respected.
Orchestration stores only non-sensitive metadata of the Substra assets, making it possible to verify the integrity of the assets and ensures that the permissions on the assets are respected.

Distributed orchestration enables trustless verification of the integrity of assets (functions, model, data), but it requires connections between organizations, and introduces a network overhead. It's not possible to upgrade a Substra network when using distributed orchestration.
It therefore requires trusting whomever is operating the orchestrator DB not to tamper with it.

On the other hand, centralized orchestration requires trust in the central server, but it is faster and easier to deploy and maintain.
.. note::

As long as you trust whomever is operating the orchestrator DB not to tamper with it, both modes offer the same level of guarantees. The decentralized mode has nice theoretical guarantees, but the network overhead is very significant, and has a lot of operational drawbacks. That is why, the vast majority (if not all) of the current Substra deployments are using the centralized orchestration system as it is easier to operate and faster. However, the distributed orchestration is still maintained.
Orchestration was available in a **distributed** mode until `v0.34.0 <https://docs.substra.org/en/0.34.0/documentation/orchestrator/index.html#centralized-vs-decentralized-orchestration>`__

.. _orc_kubernetes_pods:

Expand All @@ -47,8 +43,6 @@ migrations
Communication
=============

.. for now let's ignore distributed mode
The orchestrator is a central component.
All backends from each :term:`Organization` must have access to the orchestrator over gRPC for command/queries and event subsription.

Expand Down
1 change: 1 addition & 0 deletions docs/source/static/schemes/centralized-orc.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

This file was deleted.

0 comments on commit f200d04

Please sign in to comment.