Skip to content

RollSite: How It Works

Max edited this page Jun 10, 2021 · 16 revisions

Overview

RollSite is a cross-site communication engine written in python and scala. It uses gRPC to do the actual communications.

Python Code

Python is used in actual senders and actual receivers. These senders / receivers are 'eggs' which also deal with computing / storage tasks.

RollSite Python CheatSheet

Scala Code

Scala is used in mid-way. A close analogy of RollSite is an application level (layer 7) router.

Following is the interactive details of mid-way scala service:RollSite Scala CheatSheet

In Federated Learning scenario, a party (or site) will send and receive data from / to other parties (or sites).

Normally, Two-Way mode is recommended. In this mode, a party (site) needs to listen to a public port and provide it to exchange or other direct connected parties (sites).

In some specific cases where a party (or site) is not allowed or not willing to provide a public port, Polling mode can be used. In Polling mode, the pattern of sending data is the same as Two-Way mode. But when receiving data, this specific party (or site) will be acting as a polling client actively polls (i.e. fetches) data from the nearest RollSite.