Fusion Projects
Last updated
Last updated
Fusion projects bring 2 major functionalities to the SymetryML environment
Allows to scale to real time streaming data with a very large number of IO (Gigabytes per secs)
Allows to create centralized federated learning setting where the data privacy of each cells in preserved. Please consult for more details.
Fusion Project allows to handle data coming from a stream with very high throughput. It is possible to scale the system to handle millions of rows / tuples per seconds. SymetryML Fusion projects do not process any data per say, instead they are reliant on other projects (called cell projects) to process streaming data in parallel. This is shown here:
One important thing to know about Fusion project is that all components (the main fusion project and its cell projects should reside relatively close to each other in order to minimize network latency. Ideally they should reside in the same rack mount.
A Fusion Project also allow to create a centralized federated learning setting where only the a central server can leverage data from various site without never accessing the actual data. That is privacy of data is preserved. In the image before the 3 cells could be 2 individual doctor offices + 1 laboratory situated at different location in a country. These 2 doctor and laboratory would be feeding data to a central server - possibly a larger organization that oversees model building and then distribute them back to the doctors and laboratory organizations.
The following section describes the rest endpoint pertaining to fusion projects. Please note that once a Fusion project is created almost all of the other functionality of normal SymetryML project is available for this project. We say almost available because some functionalities are not available:
Data source cannot be attached to a Fusion project because the processing of data needs to happen on the project cells of the fusion project
Data source statistics are also not available for same reason
On the other hand its possible to
All other project lifecycle endpoints like deleting a project, renaming, info, etc.
This API function call create a new SymetryML Fusion project.
Parameter
Required / Optional
Description
pid
Required
Name of the new SymetryML project.
persist
Optional
Whether to persist or not a project. Valid values are * true * false
HTTP Status Code
HTTP Status Message
Description
201
CREATED
Success. {"statusCode":"CREATED","statusString":" + SYMETRYML Created with id:r1","values":{}}
409
CONFLICT
SymetryML project already exists. {"statusCode":"CONFLICT","statusString":" + Customer [c1] already have SYMETRYML with id[r1], ","values":{}}
Request status for a specific list of cells.
HTTP Status Code
HTTP Status Message
Description
200
OK
Success.
400
BAD REQUEST
SymetryML project does not exist. {"statusCode":"BAD_REQUEST","statusString":"Cannot Find SYMETRYML id[r5] for Customer id [c1]","values":{}
HTTP Response Entity
Description
cellsStatusEncrypted
This REST endpoint allows to update the list of cells for a Fusion project.
HTTP Status Code
HTTP Status Message
Description
200
OK
Success.
400
BAD REQUEST
SymetryML project does not exist. {"statusCode":"BAD_REQUEST","statusString":"Cannot Find SYMETRYML id[r5] for Customer id [c1]","values":{}
When a request is made to or fusion project will take care of interrogating its cell projects to get the latest data in a just in time fashion. Under the hood, the Fusion project refresh the data when needed, but no less that a pre-defined number of seconds. The default value is 15 seconds but can easily be adjusted with the rtlm.option.sml.fusion.prefetch.min.time.ms
config parameter of the symetry-rest.txt configuration file. Please consult the for details.
Again please consult for more details on how fusion can be used to create a centralized federated learning system.
Use the
Use the and
The body of the request consist of an encrypted . It is mandatory and contains login information to access the REST-API of each cells.
The body of the request consist of an encrypted . It contains login information to access the REST-API of each cells.
The json string representation of a encrypted with the user secret key.
The body of the request consist of an encrypted . It contains login information to access the REST-API of each cells.