Discussion on P2Portage and other ways to lower mirror bandwidth problem

Stéphane Loeuillet <[email protected]> Thu, 14 Aug 2003 00:59:00 +0200
Newsgroups gmane.linux.zynot.devel
Message-ID <001601c361ee$7c434540$567424d5@a7n8xdeluxego>
This is a multi-part message in MIME format.

------=_NextPart_000_0013_01C361FF.3F2A08E0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

hi,

yesterday night, we have a quite long brainstorming time on the very prob=
lem
any distribution knows : the bandwidth problem (on #zynot freenode chan)

full log attached

contains ideas about P2Portage (like in Wiki) and diff download

have fun reading it

++

St=E9phane LOEUILLET / LeRoutier

------=_NextPart_000_0013_01C361FF.3F2A08E0
Content-Type: text/plain;
	name="P2Portage.txt"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="P2Portage.txt"

<LeRoutier> any of the guy interrested in the P2Portage idea around ?
<Lovechild> LeRoutier, shoot !
<LeRoutier> Lovechild: if you're one of those people, i suppose you =
already took a look at existing P2P FileSharing protocols, right ?
<Lovechild> not really in detail - I'm more interested if it can be done =
safely - I had an idea involving FreeNet
<Lovechild> but if you have an idea I would be more than willing to lend =
an ear.
<LeRoutier> FreeNet is secured, encrypted (good points),  it is also =
damn slow and only implementation (reference implementation is in java
<Lovechild> nothing wrong with java as such, it's portable and it =
works..=20
<LeRoutier> but we'll depend on a VM
<Lovechild> only if the user elects to use that feature in Porteus - if =
there's any reason not pick it (who knows...) we have fall backs in =
Porteus' getFile commands.
<DieMumiee> afai understood the users of freenet do not know what they =
share ..
<DieMumiee> so zynot users would mostly share foreign data ..
<DieMumiee> or we create our own zynot only freenet.. =20
<DieMumiee> but as LeRoutier mentioned it is slow ..=20
<Lovechild> yes they do, but they don't know who's sharing it, and =
there's protection for bogus files - as a Zynot users would would search =
for a keyfrase (and string of ints as I recall) and that would be the =
file you need and there's no way of faking it
<Lovechild> of course the builds are signed by developers, so we already =
know the frase to search for.
<LeRoutier> the reliability point, we have to know digests by another =
way than the P2P network.
<LeRoutier> as far as we have the MD5 (or any other reliable digest), we =
can fetch the file from the P2P network
<DieMumiee> .. still corruption is possible
<DieMumiee> u just have to implement a client that sends corrupted data =
.. and the end user will have to delete the download ..
<LeRoutier> no prob, every recent P2P protocol handles it (via the =
global digest of the file and also via subparts)
<DieMumiee> yes..=20
<LeRoutier> in fact, the "partionning" of shared files has 2 goals : =
help with corruption (as seen before), help at fast spreading of files =
too
<LeRoutier> another thing it helps : you can download parts from =
different people and the same time
<LeRoutier> s/and/at/
<LeRoutier> BitTorrent is very fast, reference implementation in python, =
but there is no BitTorrent network. no server is connected to another =
one
<DieMumiee> what network / system would you suggest?
<LeRoutier> in fact, one of the more feature-full is eDonkey/OverNet but =
its design (protocol i mean) sucks
<Lovechild> bittorrent scales better for files >100 megs - I doubt many =
of Zynots packages are that big.
<LeRoutier> in fact, most actual P2P systems are good for big files, =
because their main purpose is to share albums, films, games, ISO, ...
<DieMumiee> hmm the big ones are between 20 - 120 mb ..=20
<Lovechild> I have a package of OOo ximian edition 1.1rc2 and that's =
about the biggest our packages get - it's about 70megs
<LeRoutier> our big ones have those sizes, usual edonkey/bittorrent/... =
ones are 700MB up to 2GB
<LeRoutier> first P2P implementations where usually only dealing with =
small files under 10MB, (mostly MP3 and so), but they were unreliable, =
no CRC/digest check and the like
<DieMumiee> so we will have to write our own impl?=20
<Lovechild> but I think it would be hard to adapt BT to our use.
<Lovechild> but it's a good protocol, I really enjoy it.
<LeRoutier> yep, BitTorrent is fast but is a bad one for us, because it =
lacks the 'rsync like' part between official mirrors
<DieMumiee> why is the size so important for bitorent?
<LeRoutier> because it works with some kind of credit system
<DieMumiee> oh
<LeRoutier> if you UP, you can DL
<Lovechild> so which protocol gives us the things we need?
<LeRoutier> those that don't UP can somehow DL but at really poor speed
<LeRoutier> in fact, we need edonkey features, but with little tweaks, =
like a better chunk/block size
<Lovechild> I max out my upload and get only 30kb/s down on BT - and =
it's kinda annoying to see t3 users disconnect after having leeched
<DieMumiee> and maybe user auth
<LeRoutier> only few P2P systems have user auth
<LeRoutier> proprietary ones (where you pay) have it
<DieMumiee> if we find corrupted files it would be nice to find the =
users=20
<DieMumiee> that share it
<LeRoutier> also new 'private' P2P networks, which are small groups and =
auth via a key/certificate system
<Lovechild> Well, it would be really nice to be able to track people so =
we can kick off people who trick the network into sharing warez - those =
idiots deserve what's coming
<DieMumiee> well we can define what files get shared ...=20
<DieMumiee> if we have servers for the "rsync" stuff we can define what =
files maybe searched and redistributed ..
<LeRoutier> in fact, MD5 lists have to be fetched via a direct protocol, =
from a trusted host
<Lovechild> trusted host - that just sounds so... spoofable.
<DieMumiee> :)
<LeRoutier> you always have to trust at least someone
<Lovechild> I would like to see a ring of trust - if 2-3 devs have =
signed a package then I'll trust it... if only one did then I would be =
kinda scared.
<LeRoutier> for the warez problem, a mandatory auth system would make =
them go away. what they are looking for nowadays is anonymous P2P with =
encryption all over the place
<Lovechild> unless it's thorbjorn in which case I'll worship the package =
like it was god
<LeRoutier> but where do you fetch this digest from ? you have to trust =
the website where it is stored
<LeRoutier> what we need too is a protocol that handle both IPv4 and =
IPv6
<LeRoutier> a good feature should be also to redirect users to their =
nearest peer/mirror, using the free geoiplib for example
<LeRoutier> seems a large piece of cake to cook
<DieMumiee> well we have time ..=20
<LeRoutier> yep
<DieMumiee> and meanwhile other sources of dowload can be used
<LeRoutier> and it won't be for us alone, other distro/sites would be =
pleased if their user would lower their bandwitdth costs by using P2P
<LeRoutier> lets dream, SourceForge, Savanah, kernel.org, gnome.org =
using it
<DieMumiee> yap
<DieMumiee> we could reduce a lot of costs=20
<Lovechild> nice.. and then if someone would figure out a clever way to =
download tarballs and patches up to the current version instead of =
getting the entire thing ecah time... that would be SO nice.
<LeRoutier> the main problem with P2P those days comes that most =
broadband users have an async connexion, so they could say, download at =
1MB/s and only upload at 128KB/s
<LeRoutier> like a auto-diff system ?
<Lovechild> yeah, but forcing people to use it is the hard bit
<LeRoutier> say, i have kernel vanilla 2.4.21; i want 2.4.22, give me =
the diff
<Lovechild> yeah...
<Lovechild> that would save SO much bw, mirror maintainers would be =
thankful
<LeRoutier> yep, just with kernel, we only DL around 1MB or such instead =
of what, 26MB or more (bz2, not gz or .Z)
<Lovechild> that's how many procent saved... just think about it... and =
people say it's not worth the time developing such technologies????????
<LeRoutier> such diffs between, say 4 latest versions, should be =
available on every 'big' package
<LeRoutier> (kernel, mozilla, evolution, openoffice, xfree, ...)
<Lovechild> OpenOffice diffs would be so great...
<Lovechild> that would be like 50megs saved.. try that on 56k bastards
<LeRoutier> big too, even for a diff, openoffice release arent that =
often as kernel releases
<LeRoutier> i know it, i have 56k here (hum, lets say 48k)
<Lovechild> who cares would you rather download 50megs or 110 ?
<Lovechild> or kernels for that matter - 1 meg or 26 ?
<DieMumiee> yap .. gentoo never was an option for small bandwidth dialup =
users
<LeRoutier> only possible (but hard) with tricks like installing stage3 =
from another running distro
<Lovechild> and I must say diff downloads is one of my main priorities =
for zynot, I want that to happen, even if I have to learn how to code =
python just to do it.
<DieMumiee> :)
<Lovechild> I would like to do it in C# and .NET though, since I started =
looking at it and found it very nice.. but no matter what we need that =
feature.
<LeRoutier> diffs =3D more disk space required / far less bandwidth, and =
nowadays, disks are cheap, bandwidth is not
<Lovechild> even if I have to be nall's obdian servant for the rest of =
my natural life
<Lovechild> 120gb HDs are cheap as candy these days..
<Lovechild> trasferring 120gb ain't
<LeRoutier> kernel.org now : Current bandwidth utilization 84.53 Mbit/s=20
<Lovechild> and that's just the main site, the mirrors probably have =
some nice loads too
<LeRoutier> 120Gb is what kernel.org transfers in ... 25 minutes
<LeRoutier> 120GB=3D3h
<LeRoutier> i don't want such a telco bill
<Lovechild> OUCH!!!
<LeRoutier> yep, better take some vaseline
<Lovechild> mommy mommy, why do the aliens keep probing my ass... man =
that's insane, who knew Linux was that popular - I don't want to see =
SF.net's bw usage graphs
<LeRoutier> should be amazing
<LeRoutier> but on sf.net, you can have to choose a mirror to DL, on =
kernel.org, must people don't mind looking for a mirror
<Lovechild> just think how much $$$ we could save people by enforcing =
diff downloading...
<LeRoutier> s/can/
<LeRoutier> in fact, if this diff download is transparent, it is better
<Lovechild> yeah, it should be...
<LeRoutier> oh, i saw kernel-2.4.21.tar.bz2 in your shared file, MD5 is =
ok, you want 2.4.22, i fetch the diff, uncompress both, patch and check =
new manifest/digest
<LeRoutier> s/file/directory/
<Lovechild> that could work - but the Disk IO could be avoided if we =
simply signed the patches as well
<LeRoutier> yep, trusting the patch is one thing, but better have a =
clean old-version installed
<Lovechild> unpacking 2 kernels and packing the second again to check =
md5, just to unpack it afterwards - and then deleting them both...
<LeRoutier> havy IO, true
<LeRoutier> heavy
<Lovechild> we should avoid that approach I think
<LeRoutier> other proposition : download a patch which we know the =
digest, then downloading the full version on,ly if patching fails
<Lovechild> but of course, unpacking the old tarball and patching it to =
the new version and packing it would allow us to have the newest tarball =
in the DISTFILES dir - so we could then delete the old package and thus =
saving diskspace
<LeRoutier> and in the case of P2P, automatically share the new version
<Lovechild> yup
<LeRoutier> or without the repacking, share the patch
<Lovechild> or both
<Lovechild> what ever the result will be shifting the load from the =
server to the client which is endlessly more fair
<LeRoutier> at least, one thing we all agree tonight : beeing able to =
download diffs/patches instead of full heavy tarballs is far more a =
priority than using any P2P layer as the DL protocol


------=_NextPart_000_0013_01C361FF.3F2A08E0
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Zynot-dev mailing list
[email protected]
http://lists.zynot.org/mailman/listinfo/zynot-dev

------=_NextPart_000_0013_01C361FF.3F2A08E0--