mirror of
https://github.com/Steffo99/unimore-bda-2.git
synced 2024-11-21 23:44:23 +00:00
Address Steffo99/distributed-arcade#2
This commit is contained in:
parent
7c79a3e476
commit
5d63c31a8e
1 changed files with 9 additions and 6 deletions
13
README.md
13
README.md
|
@ -262,17 +262,20 @@ Per ostacolare attacchi [denial-of-service](https://en.wikipedia.org/wiki/Denial
|
||||||
|
|
||||||
Per la creazione effettiva del board, internamente vengono effettuate alcune operazioni:
|
Per la creazione effettiva del board, internamente vengono effettuate alcune operazioni:
|
||||||
|
|
||||||
1. viene aperta una transazione attraverso il comando [`MULTI`]
|
1. viene inserito un lock ottimistico sulle chiavi utilizzate dal board con il comando [`WATCH`]
|
||||||
2. viene verificato che nessuna delle chiavi utilizzate dal board contengano già dati
|
2. viene verificato che nessuna delle precedenti chiavi contengano già dati con molteplici comandi [`GET`]
|
||||||
3. viene salvato l'ordinamento nella chiave `board:{name}:order` con il comando [`SET`]
|
3. viene aperta una transazione attraverso il comando [`MULTI`]
|
||||||
4. viene generata in modo crittograficamente sicuro una stringa detta ***token*** che viene archiviata nella chiave `board:{name}:token` con il comando [`SET`]
|
4. viene salvato l'ordinamento nella chiave `board:{name}:order` con il comando [`SET`]
|
||||||
5. viene eseguita la transazione attraverso il comando [`EXEC`]
|
5. viene generata in modo crittograficamente sicuro una stringa detta ***token*** che viene archiviata nella chiave `board:{name}:token` con il comando [`SET`]
|
||||||
|
6. se le chiavi lockate non sono state modificate nel frattempo, viene eseguita la transazione attraverso il comando [`EXEC`]
|
||||||
|
|
||||||
Terminata la creazione, l'user agent riceve una risposta `HTTP 201` contenente il token generato.
|
Terminata la creazione, l'user agent riceve una risposta `HTTP 201` contenente il token generato.
|
||||||
|
|
||||||
![Diagramma di funzionamento della creazione di board](media/diagram-post-board.png)
|
![Diagramma di funzionamento della creazione di board](media/diagram-post-board.png)
|
||||||
|
|
||||||
|
[`WATCH`]: https://redis.io/commands/watch/
|
||||||
[`MULTI`]: https://redis.io/commands/multi/
|
[`MULTI`]: https://redis.io/commands/multi/
|
||||||
|
[`GET`]: https://redis.io/commands/get/
|
||||||
[`SET`]: https://redis.io/commands/set/
|
[`SET`]: https://redis.io/commands/set/
|
||||||
[`EXEC`]: https://redis.io/commands/exec/
|
[`EXEC`]: https://redis.io/commands/exec/
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue