yotei/notes/UwUsched/Protocol.md
xqtc f7f582bc69
All checks were successful
/ build (push) Successful in 1m28s
/ clippy (push) Successful in 1m26s
[LIB] Protocol data structures
2024-09-04 13:45:33 +02:00

2.4 KiB

  • 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:

{
	"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:

{
	"protocol_id":<protocol_id>,
	"node_id":<node_id>,
	"transaction_uuid":<transaction_uuid>,
	"status":<ACCEPTED|REJECTED>,
}

Alive Check

Request/Response:

{
	"protocol_id":<protocol_id>,
	"node_id":<node_id>,
	"transaction_uuid":<transaction_uuid>
}

Logout

Request:

{
	"protocol_id":<protocol_id>,
	"node_id":<node_id>,
	"transaction_uuid":<transaction_uuid>,
}

Response:

{
	"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

{
	"protocol_id":<protocol_id>,
	"node_id":<node_id>,
	"uuid":<uuid>,
	"hashmap_id":<hashmap_id>,
}

Response

{
	"protocol_id":<protocol_id>,
	"node_id":<node_id>,
	"uuid":<uuid>,
	"status":<OK|HASH_ERR|TIMEOUT_ERR>,
	"uuid":<uuid>,
	"hashmap_id":<hashmap_id>
}

Push

{
	"protocol_id":<protocol_id>,
	"node_id":<node_id>,
	"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