Matrikš 2.0 PHP piezīmes

Matrikš 2.0 PHP piezīmes

Es te uzkodēju kādu PHP fišku. Nevienmērīga failu apmaiņa. Pagaidām tāds kā PHP pseidokods.
Ir lietotāji full, half, none. Lietotāju nosaukumi var būt citi. Te tādi, lai nojausma.

Pamatdirektoriju struktūra:

/users

/users/full
/users/half
/users/none

Katram lietotājam ir apakšdirektorijas data un nodes-out.

Full ir faili Ubuntu_Logo.png un citi.
Full uzģenerē failu (/users/full/nodes-out/full/923be8951d028a249d55a784f7158c86) nodes, kas izskatās apmēram šādi:

full|Ubuntu_Logo.png|923be8951d028a249d55a784f7158c86|4225|0,4225

full ir lietotajs.
Ubuntu_Logo.png ir faila nosaukums.
923be8951d028a249d55a784f7158c86 ir md5_file(‘Ubuntu_Logo.png’);
4225 ir faila izmērs.
0,4225 doma ir tāda, ka faila daļa no cik līdz cik (rezervēta fiška, bet nav DAdomāta).

Tipa full nošārē failus.

Half ir pieeja pie full nodēm un tas tās atvelk uz savu direktoriju /users/half/nodes-out/full (half pie sevis izveido direktoriju full, kur glabāt full failus).
Half ir failu kopēšanas limits ($power=512) 512 baiti vienā reizē.
Half sāk vilkt failus no full ar 512 baitiem solī. Failu velk no tās vietas, kur iepriekš pabeidza. Katru reizi nevelk no 0 (šeit varētu būt fiška, ka full jau iepriekš failus sadala pa gabaliem, lai nav ar PHP tādas mokas vilkt).

Katru reizi, kad tiek novilkti kādi baiti, tos half ieraksta savās nodēs. Apmēram tā:

full|Ubuntu_Logo.png|923be8951d028a249d55a784f7158c86|512|0,512

Tikmēr none ir pieeja pie half nodēm un viņam vajag full failus.
None ir kopēšanas limits 256 baiti solī.
None redz, ka half ir fails ar izmēru 512 baiti.
None sāk vilkt no half to, kas ir pieejams.
None nedabūs pilnu full failu, kamēr half tas jau nebūs.
Pašlaik none atvelk 512 baitus lielu failu ar diviem soļiem un gaida, līdz half atjaunosies nodes.
Katra atvilktā daļa tiek pielīmēta klāt failam.

Jēgu man neprasiet.

Jēga varētu būt kaut kā tā:

Full šārē failus, kuriem tiek klāt half. None netiek klāt full, bet tiek klāt half.
None netraucē full, jo velk failus no half.

Ja pēkšņi full likvidējas (uzspridzina serveri. lol) un half ir atvilkti visi full faili, tad none turpina vilkt no half.
Protams, ja full kidrik ir ātrāks, nekā half ir atvilcis failus, tad cieš visa ķēdīte.

Tāds kā BitTorrent.

Bilde no tā, kas man tur tagad notiek:
Matrikš 2.0 PHP

Ja nu kas, tad tas Ubuntu logo (cerams, ka sakrīt md5_file):
Ubuntu Logo

PHP ekperimentus grande by BlackHalt (http://feeds.feedburner.com/blackhalt)

//———————————————-

Both comments and trackbacks are currently closed.

Komentāri

  • http://b33r.us  On Aprīlis 9, 2008 at 21:08

    Interesants koncepts🙂

  • 4e4en  On Aprīlis 10, 2008 at 23:55

    Vai SRC arī būs pieejams (ir vēlēšanās patestēt šo brīnumu).

  • BlackHalt  On Aprīlis 11, 2008 at 13:02

    4e4en, pagaidām nebūs, jo neatbilst pareizajam un smukajam kodam. Bez tam, nav pietiekami pabeigts.

  • 4e4en  On Aprīlis 14, 2008 at 17:37

    šo te ideju varētu implementēt torentos. Ir 4 galvenās lietotāju grupas: admin(VIP?) upper seeder leecher un tad attiecīgi, admin’am un upper’im nav nekādu ierobežojumu. vispirms seeder’i novelk admin/upper failus, tad leecher’i velk failus no seederiem.

%d bloggers like this: