-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathTODO
65 lines (40 loc) · 2.18 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
* Colocar um flag no model do media para arquivo presente localmente ou nao (rotina para "verificar") (NO SERIALIZE)
* Colocar um flag no model do media para arquivos solicitados (rotina para "baixar") (NO SERIALIZE)
* Colocar um valor no model do media como peso para determinar a presença do media na rede (rotina para "baixar") (NO SERIALIZE)
* Colocar um valor no model do media com o codigo da solicitaçao (para poder remover) (NO SERIALIZE)
* Colocar a opção de o media ser um link web aproveitando a logica do git-annex
* Automatizar as sincronizações:
- alem de git annex sync , git pull & push
- cron?
- preferred content vira fundamental ja? Por enquanto usar num-copies generico: 3
== Rotina para "baixar" ==
Pode ser um processo stocastico a tempo determinado (considerando o
tamanho e os tempos de sync da RM, t=4).
E' interessante pesquisar mais desde as praticas de comunicação
ancestrais entre as comunidades e aproveitar de algoritmos de
mapeamento automatico como rede neural. Como primeira implementação,
o neuronio (mucua) v ao tempo tn teria o impulso:
x0=(git annex $media numcopies +=1 && git annex get $media, ttl=4)
ao tempo t1:
x1=(git annex get $media, ttl=3)
e tn+1:
xn+1=(git rm $thisfile, ttl=0)
A rotina cron de sync, assumimos, conseguir uma copia do media na
mucua proxima, no tempo t maximo ttl=4.
O impulso pode ser codificado como arquivo json com nome aleatorio
(date_UUID[:5]) que cada mucua mantem numa pasta de solicitações
(ex. mocambos/dpadua/semeando/):
{"mediafile" : "$path", "ttl" : "4" }
Isso garante a falta de conflitos entre arquivos porque cada mucua
altera seus impulsos. A cada ciclo de cron, e sob determinadas
condições, a mucua consulta os impulsos das outras proximas (ver
rotas/remotes) e copia os impulsos reduzindo o peso, de fato
propagando o impulso.
Os impulsos decaem e os arquivos sao removidos quando as mucuas
conseguem uma copia do media. Nesse caso o valor do numcopies volta
ao padrão (a cada git annex get realizada com sucesso numcopies-=1).
=== Teoria (esboçando) ===
P(X(n)) = Probabilidade de encontrar o media ao tempo/passo n.
P(X(n)<=xn+1 | P(xn)=xn)
Com P(x0)=0 e P(xn+1)=1
P(Xn+1) = P(Xn)+P(xn-1)