From: Enrico Weigelt <enrico.weigelt@vnc.biz>
To: Michael J Gruber <git@drmicha.warpmail.net>
Cc: Andrew Ardill <andrew.ardill@gmail.com>,
Javier Domingo <javierdo1@gmail.com>,
git@vger.kernel.org, Sitaram Chamarty <sitaramc@gmail.com>
Subject: Re: Local clones aka forks disk size optimization
Date: Fri, 16 Nov 2012 19:04:35 +0100 (CET) [thread overview]
Message-ID: <ccb8680a-97ad-4cf8-95d0-5e21f60494f4@zcs> (raw)
In-Reply-To: <50A622A9.4040709@drmicha.warpmail.net>
> Provide one "main" clone which is bare, pulls automatically, and is
> there to stay (no pruning), so that all others can use that as a
> reliable alternates source.
The problem here, IMHO, is the assumption, that the main repo will
never be cleaned up. But what to do if you dont wanna let it grow
forever ?
hmm, distributed GC is a tricky problem.
maybe it could be easier having two kind of alternates:
a) classical: gc+friends will drop local objects that are
already there
b) fallback: normal operations fetch objects if not accessible
from anywhere else, but gc+friends do not skip objects from there.
And extend prune machinery to put some backup of the dropped objects
to some separate store.
This way we could use some kind of rotating archive:
* GC'ed objects will be stored in the backup repo for some while
* there are multiple active (rotating) backups kept for some time,
each cycle, only the oldest one is dropped (and maybe objects
in a newer backup are removed from the older ones)
* downstream repos must be synced often enough, so removed objects
are fetched back from the backups early enough
You could see this as some heap:
* the currently active objects (directly referenced) are always
on the top
* once they're not referenced, they sink a lever deeper
* when the're referenced again, they immediately jump up to the top
* at some point in time unreferenced objects sink too deep that
they're dropped completely
cu
--
Mit freundlichen Grüßen / Kind regards
Enrico Weigelt
VNC - Virtual Network Consult GmbH
Head Of Development
Pariser Platz 4a, D-10117 Berlin
Tel.: +49 (30) 3464615-20
Fax: +49 (30) 3464615-59
enrico.weigelt@vnc.biz; www.vnc.de
next prev parent reply other threads:[~2012-11-16 18:04 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CALZVapmG+HL0SQx8zx=Cfz5pWv84hJq90x-7VdjA0m2Z4dC34A@mail.gmail.com>
2012-11-14 23:42 ` Fwd: Local clones aka forks disk size optimization Javier Domingo
2012-11-15 0:18 ` Andrew Ardill
2012-11-15 0:40 ` Javier Domingo
2012-11-15 0:53 ` Andrew Ardill
2012-11-15 1:15 ` Javier Domingo
2012-11-15 1:34 ` Andrew Ardill
2012-11-15 3:44 ` Sitaram Chamarty
2012-11-16 11:25 ` Michael J Gruber
2012-11-16 18:04 ` Enrico Weigelt [this message]
2012-11-18 10:42 ` Sitaram Chamarty
2012-11-18 17:02 ` Enrico Weigelt
2012-11-16 14:55 ` Pyeron, Jason J CTR (US)
[not found] ` <CAKs0BQ7RyLZr+ZU=hAC4U7xXpE0+xvORTrvfzFYb6muA2TgM4Q@mail.gmail.com>
2012-11-18 17:18 ` Jörg Rosenkranz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ccb8680a-97ad-4cf8-95d0-5e21f60494f4@zcs \
--to=enrico.weigelt@vnc.biz \
--cc=andrew.ardill@gmail.com \
--cc=git@drmicha.warpmail.net \
--cc=git@vger.kernel.org \
--cc=javierdo1@gmail.com \
--cc=sitaramc@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).