Protocolo interno Diskpool-Diskpool

Como se deduce del Protocolo de Diskpool para MFS, es necesario que la réplica maestra en un Diskpool dialoge con otras réplicas del bloque para la Sincronización,y la Escritura replicada. Las tramas descritas a continuación son solo entre Diskpools, los clientes no las tienen disponibles en su repertorio.

Sincronización:

[Diskpool Maestro] —————–ISync————————->[Diskpool]

[Diskpool Maestro] <–-ISyncStatus/VersionError/Error—-–[Diskpool]

[Diskpool Maestro] –———-ISyncData/ISyncOk———-–>[Diskpool]

[Diskpool Maestro] <————ISynced/Error—————-– [Diskpool]

Ejemplo ISync:

ISync A0213ABBF1 v0.1

MasterVersion A23FF256

SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709

<EOM>

Ejemplos de respuestas a ISync:

ISyncStatus A0213ABBF1 v0.1

Version A23FF250

SHA1 d3255bfeda39a3ee590afd80709e6b4b0f956018

Size 212314

PartSize 16384

HashParts 13

SHA1-1 3ee590afd80d3255bfeda39a709e560186b4b0f9

SHA1-2 90afd80d32553ee5bfeda39a709e560186b4b0f9

SHA1-3 3255bfeda39a709e560186b4b0f93ee590afd80d

SHA1-4 0afd80d3255bfeda39a709e53ee5960186b4b0f9

SHA1-13 590afd80d3255bfeda39a709e563ee0186b4b0f9

<EOM>

o

VersionError A0213ABBF1 v0.1

Version A23FF257

SHA1 90afd80709e6b4d3255bfeda39a3ee5b0f956018

Size 712314

<EOM>

o

Error A0213ABBF1 v0.1

Code 011

Reason Can’t store

Detail Can’t write to disk, is it full?

<EOM>

Petición interna tras un ISyncStatus correcto:

ISyncData A0213ABBF1 v0.1

MasterVersion A23FF256

Size 800046

SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709

Offset 49152

BIN 81920

(un trozo binario cualquiera de 81920 (3×16384) bytes…)

Offset 147456

Zeros 229376

Offset 376832

BIN 423214

(Otro trozo binario de 423214 bytes…)

<EOM>

o

ISyncOk A0213ABBF1 v0.1

MasterVersion A23FF256

Size 800046

SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709

<EOM>

Ejemplos de respuesta:

ISynced A0213ABBF1 v0.1

Version A23FF256

Size 800046

SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709

<EOM>

o

Error A0213ABBF1 v0.1

Code 011

Reason Can’t store

Detail Can’t write to disk, is it full?

<EOM>

Escritura replicada:

[Diskpool] ————–IWrite————->[Diskpool]————–IWrite————->[Diskpool]…

[Diskpool] <–——–IStored/Error——-–[Diskpool]<–——–IStored/Error——-–[Diskpool]…

Y

[Diskpool Maestro] ————–ICommit————->[Diskpool]

[Diskpool Maestro] <——-ICommited/Error———[Diskpool]

Petición de Escritura:

IWrite A0213ABBF1 v0.1

Version A23FF256

Offset 6354234

Next dp3.example.com:14223 10.92.12.213:15050

Autocommit on

TTL 750

BIN 4096

…(4096 octetos, datos binarios)

BIN 8192

…(8192 octetos, datos binarios)

<EOM>

y (dp3.example.com:1422)

IWrite A0213ABBF1 v0.1

Version A23FF256

Offset 6354234

Next 10.92.12.213:15050

Autocommit on

TTL 750

BIN 4096

…(4096 octetos, datos binarios)

BIN 8192

…(8192 octetos, datos binarios)

<EOM>

y (10.92.12.213:15050)

IWrite A0213ABBF1 v0.1

Version A23FF256

Offset 6354234

Autocommit on

TTL 750

BIN 4096

…(4096 octetos, datos binarios)

BIN 8192

…(8192 octetos, datos binarios)

<EOM>

Ejemplos de Respuestas:

(Las respuestas son congruentes: cualquier fallo se reenvía hasta el primer Diskpool y este se lo manda al Cliente. Además si algún Hash no coincide hay que devolver error tambien hasta el cliente)

IStored A0213ABBF1 v0.1

Version A23FF256

Offset 6354234

Size 12188

SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709

<EOM>

o

Error A0213ABBF1 v0.1

Code 011

Reason Can’t store

Detail Can’t write to disk, is it full?

o

Error A0213ABBF1 v0.1

Code 012

Reason Hash Error

Detail Data transfer is corrupt, hashes don’t match!

<EOM>

Ejemplos de petición de commit interno:

ICommit A0213ABBF1 v0.1

Version A23FF256

Offset 6354234

Size 4396

SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709

ExtendTTL 0

<EOM>

Ejemplos de respuesta:

Commited A0213ABBF1 v0.1

Version A23FF257

Offset 6354234

Size 12188

SHA1 b4b0d3255bfefda39a3ee5e695601890afd8070

<EOM>

o

Error A0213ABBF1 v0.1

Code 005

Reason Write Not Found

Detail The write specified was not found in this diskpool

<EOM>

o

Error A0213ABBF1 v0.1

Code 002

Reason Not Found

Detail The block was not found in this diskpool

<EOM>


Creative Commons License
Diskpool by José Luis Vázquez González is licensed under a Creative Commons Reconocimiento-No comercial-Compartir bajo la misma licencia 2.5 España License.

0 Responses to “Protocolo interno Diskpool-Diskpool”


  1. No Comments

Leave a Reply