[ mire @ 05.06.2002. 13:02 ] @
Da se pohvalim.

Napravio sam u C-u proxy load balancer koji trenutno sedi na naslovnoj strani freshmeata, ko pozuri videce ga. Program radi load balancing tcp portova, najkorisniji je za web provajdere sa velikim opterecenjem tako sto rasporedjuje zahteve na razlicite masine po tezinskom algoritmu. Koristi threadove, kompajliran kod mene ima 13 kilobajta, arhiva je 16 kilobajta.
[ B o j a n @ 05.06.2002. 21:53 ] @
To što je domaći autor je za svaku pohvalu .... ali zar tako nešto već ne postoji ???
[ mire @ 07.06.2002. 01:41 ] @
Postoje razni projekti npr. LVSP (Linux Virtual Server Project) koji ti trazi da rekompajliras kernel, zatim program pod imenom balance koji sekvencijalno (jedan za drugim) rasporedjuje veze. Ovo cudo je malo, radi a sto je najbolje sada se config file cita pri svakom requestu sto znaci da mozes da u toku rada programa menjas njegove podatke odnosno planiram da napravim par perl skriptova koji bi vracali statistike za odredjeni komp. i setovali config file. Juce sam resio problem kompajliranja na 2.9x gcc-u (suse i mandrake), izdao verziju 1.0.2 a danas sam shvatio zasto mi je program radio samo u foreground-u i umirao u back-u. 1.0.3 ce biti sutra ili prekosutra i to ce biti skoro svi bagovi ispravljeni. Ako neko hoce da ucestvuje u projektu neka se javi.

http://www.modperldev.com/projects je url gde ce biti postovane nove verzije
[ B o j a n @ 07.06.2002. 03:36 ] @
Mislim da već znaš za: ALTQ
http://www.csl.sony.co.jp/person/kjc/kjc/software.html

Razvija se isključivo, pod bsd hibridima, mnogo jednostavan softver, i takodje usklađen odnos veličine koda i opcija.
Sintaxa je nikad jednostavnija, stabilnost proverena.

Pored ovoga na linuxu imas shaper za tcp saobraćaj već u samom kernelu ( zbog toga se traži rekompajliranje ).

Da li si možda pogledao squid proxy, i njegovu priču ?
[ leka @ 07.06.2002. 10:39 ] @
Čovek je garant radio po oprobanom sistemu - "Da bi potpuno bio zadovoljan nekim software-om moraš isti da napišeš oc nule". Ne znam ko je ovo rekao, a ne bi me čudilo da sam to bio ja. ;) - To je zapravo jedini način da program radi ono/onako kako Vi želite...
[ alex @ 07.06.2002. 11:48 ] @
Btw, mire, zasto si napisao da si ti autor tog proxylb programa, dok se jednostavnim pregledom koda vidi da si samo modifikovao postojeci proxy program.

Citat:

* This is modified work by Miroslav Madzarevic [email protected] as of May 1s
t 2002
* based originally on proxy-2.2.4 program by [email protected]

AUTHOR
Proxy was written and is maintained by Sonny Parlin.


To niti je fer prema originalnom autoru niti prema ostalim ljudima u OpenSource zajednici.

Pregledao sam kod veoma detaljno, tvog koda ima znatno manje nego originalnog koda..

Da li to znaci da ja mogu da uzmem Apache source, da izmenim jednu liniju (okvirno slican odnos) i da ga nazovem Al-pache i da napisem da je to originalan domaci proizvod, odlican webserver a da nigde ne pomenem da je baziran na Apache-u?

Ovo nikako nije u skladu sa GPL licencom - pre svega, prvo je trebalo, ukoliko si modifikovao originalan source da ponudis samom autoru svoje patch-eve, pa ako on odbije da to ukljuci u svoj kod, da izdas fork - a nikako NE originalan proizvod. Da ne pominjem da nigde u najavama za tvoj program nisi pomenuo originalnog autora, koji se jasno vidi u svim source fajlovima.

Procitaj GPL licencu.

Svaka cast na odradjenom poslu, ali mislim da nisi ispao fer. Ocekujem tvoje objasnjenje.
[ mire @ 07.06.2002. 14:12 ] @

Sorry na carsafu :)

To Bojan: program u sustini nije proxy vec load balancer, ne znam da li squid moze da radi load balancing (da prispelu konekciju raspodeljuje na nekoliko end hostova po nekom algoritmu) ? Nije dolazilo u obzir kompajliranje kernela posto je masina web server na hostingu u londonu.

To alex: Ja sebe smatram autorom proxylb programa koji je nastao modifikacijom proxy programa. Mozes da ga tumacis i kao proxy program sa dodatim load balancingom. Citao sam GPL licencu i nigde nisam nasao da postoji bilo kakav problem. Ljudi iz freshmeat crew-a su pregledali program i nisu nasli zamerku.

Imao sam zadatak u firmi da odradim load balancer i posao sam od onoga sto znam da je radilo iz dana kada sam ga koristio da se ukacim na prave proxy iz home rezima jednog provider-a ;) (provider je te proksije blokirao). Ovako sam efektivno imao lokalni nalog (nekih 100 dinara mesecno) sa 1 sat interneta dnevno (samo .yu domeni) a sa proxy programom mogao sam da pristupim cemu god sam hteo. Nesto slicno je i sada moguce ;)

Load balancer cu napisati jos i u mod_perl-u posto ne mogu nikako da nateram mod_rewrite i mod_proxy da saradjuju preko rewrite mapa. A cak i kada bih to uradio jedan ovakav apache ima do dva mega (dva mega po konekciji) a ovaj program ima nekih 13 kilobajta + sto nema forkova nego se konekcije opsluzuju threadovima (velika usteda u memoriji i brzini rada).

proxylb je nadogradnja originalnog proxy programa sa izmenjenom namenom (povecane mogucnosti). Sonny-ja sam kontaktirao preko email adrese koja pise u projekt fajlovima ali mail mi se vratio (bounce). Ako uspes da ga kontaktiras odmah me obavesti posto ja nisam uspeo. proxy program je iz 98 godine ako se ne varam.
U svim proxy fajlovima od sonnyja stoji da je to njegov rad uz moje izmene ukljucujuci tu i README.

Program nosi u svom imenu deo starog imena (na pocetku) a ovo mi je prvi jaci opensource projekat u C-u (programiram skoro iskljucivo u perl-u) pa nisam znao sve detalje.




[ B o j a n @ 07.06.2002. 18:41 ] @
Prvo, ne razumem baš najbolje šta je za tebe ,,load balancer''.

Citat:
mire:
ne znam da li squid moze da radi load balancing (da prispelu konekciju raspodeljuje na nekoliko end hostova po nekom algoritmu) ?

Kao što rekoh, ne razumem baš najbolje šta se sa ovim programom postiže, ali je moguće izvesti pomoću squid proxy-a da se protok deli, izdeljuje, secka, na parčiće, i to po veoma strogom kriterijumu. Verujem da i sam znaš postoji cache_peer opcija.

No, možda to nije što tvoj program treba da radi.
Ukoliko pak možda imaš sajt na nekoliko mašina, sa identičnim sadržajem, onda load, iliti opterećenje možeš da raspodeliš pomoću najobičnijeg rr dns rekorda.
Inače opisan je u rfc2782 dokumentu.


[ caboom @ 07.06.2002. 23:57 ] @
pa njegov kod i simulira zapravo rr... pogledati proxylb.c
to nije load balancing u pravom smislu, vec poor-man's uzdanje u teoriju velikih brojeva i ekvivalentnost koriscenog hardvera. kao sto bojan rece, zasto bi neko stavljao proxy koji radi isto sto moze i obican rr dns record.
[ mire @ 08.06.2002. 00:17 ] @
caboom: Ima slicnosti sa rr ali ovde ti kontrolises tacno koja konekcija ce da se koristi, dakle imas totalnu kontrolu. Program je veoma jednostavan, ima sve sto je potrebno a nije toliko poor posto parametri mogu da se menjaju u toku rada programa (covek moze da ih menja, svaka thread-konekcija ih po nastanku cita) a sa nekim dodatnim programom (inteligentnijim) mozes da uzimas u obzir jacinu linka, jacinu racunara, load average i ostale parametre da bi odredio kome ide sledeca konekcija i modifikujes config file.

bojan: load balancer npr. sedi na portu 80 na www.elitesecurity.org i prerasporedjuje zahteve na es1.elitesecurity.org, es2.elitesecurity.org transparentno da ti nemas pojma sta se iza nalazi,imas utisak da koristis samo glavni server. Na isti nacin moze da se balance-uje smtp, pop, ftp i skoro svi ostali tcp protokoli. Umesto posebnih masina (es1) mogu cak i da se koriste odvojeni portovi na istoj masini.

to alex: Iz GPL Licence:
"
2. You may modify your copy or copies of the Program or any portion of it,
thus forming a work based on the Program, and copy and distribute such
modifications or work under the terms of Section 1 above, provided that
you also meet all of these conditions:

a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.

b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any part
thereof, to be licensed as a whole at no charge to all third parties
under the terms of this License.

c) If the modified program normally reads commands interactively when
run, you must cause it, when started running for such interactive use
in the most ordinary way, to print or display an announcement
including an appropriate copyright notice and a notice that there is
no warranty (or else, saying that you provide a warranty) and that
users may redistribute the program under these conditions, and telling
the user how to view a copy of this License. (Exception: if the
Program itself is interactive but does not normally print such an
announcement, your work based on the Program is not required to print
an announcement.)

These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

"
[ mire @ 21.06.2002. 14:49 ] @
Samo 1 URL:

http://www.gnu.org/directory/Proxyloadbalance.html