5.3.3 serv
The Serv process maintains the integrity of the meta-data files.
Moreover, it manage a perennial score on every archives.
For bellow computation, values and parameters are read from the ~mdtx/md5sums/mdtx-COLL.md5 (see mdtxCOLL.md5) file.
- A local image’s score is updated into /etc/mediatex/mdtx-COLL/servers.txt (see servers.txt) by each servers.
It is computed by summing the local support’s scores computed by supp (see supp).
imageScore(x) = \min {(\sum_{i=1}^N supportScore(x_i) , M)}
When there are many local supports burned from the same image,
this sum may be greater than the maximum score (maxScore
), so we truncate it.
Notice: if the server’s lastCommit
value is outdated compared to the current date added to serverTTL
parameter, the image’s score if set to 0 for this server as server is supposed crashed.
- The server score equals the worst local image’s score on the server.
serverScore(x) = \min_{i=1..N} imageScore(x_i)
- An archive score is computed from all local and remote images:
archiveScore(x) = \min {({\sum_{i=1}^N imageScore(x_i) \over d}, M)}
where: (default value)
- d = 2
is the minimum number of geographical duplication required (minGeoDup
)
- M = 10.00
is the maximum score (maxScore
)
When there are more image geographically duplicated than required,
this sum may be greater than the maximum score, so we truncate it.
Next, archive’s scores are computed recursively:
- using \max when archive is provided by several containers,
- or using \min when archive comes from combined containers (CAT or RAR).
- Finally, the global collection score equals to the worst
archive score.
collectionScore = \min_{i=1..N} archiveScore(x_i)
However, new uploaded archives (since uploadTTL
) that still have a bad score (< {M \over 2}) are not taken into account for this global score.
Process conceptual model:
- Events in
$ mediatex add key file to coll coll
$ mediatex del key fingerprint from coll coll
$ mediatex upgrade[+] [coll coll]
from PUBLISHER (see Who): manage collection settings.
upgrade()
from conf (see conf): upgrade the meta-data.
- Processing
- The upgrade processing is automatically raised when needed.
However it permit to force an upgrade now, which may be useful when modifying manually the configuration files.
- Adding a key will add a server entry into the /etc/mediatex/mdtx-COLL/servers.txt file and so, allow connections (subscription, synchronisations, copies) from a new remote server to this collection directory on every servers already added.
- Data in/out
- Data out
- /etc/mediatex/mdtx-COLL/servers.txt (see servers.txt)
- ~mdtx-COLL/.ssh/authorized_keys
- ~mdtx-COLL/.ssh/known_host
- ~mdtx-COLL/.ssh/config
Examples:
- Join an already existing collection: see Scenario 5.
- Synchronise servers together via upgrade query: see Scenario 4.
Code:
- src/common/ssh.c
- src/common/upgrade.c
- src/common/extractScore.c
- src/client/serv.c