124 lines
2.4 KiB
Markdown
124 lines
2.4 KiB
Markdown
- UUID-identifier with data
|
|
- Data binary- or hex-encoded
|
|
- Client <-> Host negotiating what to do => Task queue synchronization
|
|
|
|
=> Two seperate ways of communicating: One for neogtioating task queue stuff and one for data (Linked with UUID)
|
|
|
|
## Conn-Status
|
|
|
|
### Login
|
|
*Request:*
|
|
```json
|
|
{
|
|
"protocol_id":<protocol_id>,
|
|
"node_id":<node_id>,
|
|
"transaction_uuid":<transaction_uuid>,
|
|
"specs": {
|
|
"threads":<threads:u64>,
|
|
"clock":<clock:f64>,
|
|
"mem":<mem:u64>,
|
|
"net_speed_kib":<net_speed:f64>
|
|
}
|
|
}
|
|
```
|
|
|
|
*Response:*
|
|
```json
|
|
{
|
|
"protocol_id":<protocol_id>,
|
|
"node_id":<node_id>,
|
|
"transaction_uuid":<transaction_uuid>,
|
|
"status":<ACCEPTED|REJECTED>,
|
|
}
|
|
```
|
|
### Uptime Polling
|
|
*Request/Response:*
|
|
```json
|
|
{
|
|
"protocol_id":<protocol_id>,
|
|
"node_id":<node_id>,
|
|
"transaction_uuid":<transaction_uuid>
|
|
}
|
|
```
|
|
|
|
|
|
### Logout
|
|
*Request:*
|
|
```json
|
|
{
|
|
"protocol_id":<protocol_id>,
|
|
"node_id":<node_id>,
|
|
"transaction_uuid":<transaction_uuid>,
|
|
}
|
|
```
|
|
|
|
*Response:*
|
|
```json
|
|
{
|
|
"protocol_id":<protocol_id>,
|
|
"node_id":<node_id>,
|
|
"transaction_uuid":<transaction_uuid>,
|
|
"status":<ACK|OK|ERR>
|
|
}
|
|
```
|
|
>If the re-scheduling fails trigger the worker-node to give all HashMap-data to the head-node
|
|
## Pull
|
|
```json
|
|
{
|
|
"protocol_id":<protocol_id>,
|
|
"node_id":<node_id>,
|
|
"uuid":<uuid>,
|
|
"hashmap_id":<hashmap_id>,
|
|
}
|
|
```
|
|
|
|
## Response
|
|
```json
|
|
{
|
|
"protocol_id":<protocol_id>,
|
|
"node_id":<node_id>,
|
|
"uuid":<uuid>,
|
|
"status":<OK|HASH_ERR|TIMEOUT_ERR>,
|
|
"uuid":<uuid>,
|
|
"hashmap_id":<hashmap_id>
|
|
}
|
|
```
|
|
|
|
## Push
|
|
```json
|
|
{
|
|
"protocol_id":<protocol_id>,
|
|
"node_id":<node_id>,
|
|
"uuid":<uuid>,
|
|
"uuid":<uuid>,
|
|
"hashmap_id":<hashmap_id>,
|
|
"length_decomp": <length_decomp>,
|
|
"length_comp": <length_comp>,
|
|
"comp_format":<comp_format>,
|
|
"attributes":{go wild :3}
|
|
"data":<data>
|
|
}
|
|
```
|
|
|
|
> **Possible Traffic-Sequences**
|
|
> `PULL -> PUSH -> RESPONSE`
|
|
> `PUSH -> RESPONSE`
|
|
|
|
----
|
|
|
|
## JSON-Field Descriptions
|
|
|
|
**Data-Related**
|
|
`uuid`: sha-256 of decompressed data
|
|
`hashmap_identifier`: identifier of associated HashMap
|
|
`length_comp`: length of compressed data
|
|
`length_decomp`: length of decompressed data
|
|
`comp_format`: compression algorithm used
|
|
`data`: compressed data
|
|
`data_type`: either `permutation` or `state` (complete tree)
|
|
`attributes`: Implementation specific *EXTRAWURST*
|
|
|
|
**Control Flow**
|
|
`protocol_id`: `data_push | data_pull | data_response | hash_push | hash_pull | hash_response`
|
|
`node_id`:unique identifier of nodes. (Hostnames)
|
|
`status`: error codes indicating success of transmission |