From: Ben Peart <email@example.com> To: firstname.lastname@example.org Cc: email@example.com, firstname.lastname@example.org, email@example.com, firstname.lastname@example.org, email@example.com, firstname.lastname@example.org Subject: [RFC/PATCH v2 0/1] Add support for downloading blobs on demand Date: Fri, 14 Jul 2017 09:26:50 -0400 [thread overview] Message-ID: <email@example.com> (raw) [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain; charset=UTF-8, Size: 3131 bytes --] This patch series enables git to request missing objects when they are not found in the object store. This is a fault-in model where the "read-object" sub-process will fetch the missing object and store it in the object store as a loose, alternate, or pack file. On success, git will retry the operation and find the requested object. It utilizes the recent sub-process refactoring to spawn a "read-object" hook as a sub-process on the first request and then all subsequent requests are made to that existing sub-process. This significantly reduces the cost of making multiple request within a single git command. An earlier version  of this patch series is pulled into  which enables registering multiple ODB handlers which can be a simple command or a sub-process. My hope is that this patch series can be completed to meet the needs of the various efforts where faulting in missing objects is required. In the meantime, now that the sub-process refactoring has made it to master, Ive refactored this patch series to be as small and focused as possible so it can be easily incorporated in other patch series where it makes sense.  has a need for faulting in missing objects and will be reworked to take advantage of this patch series for its next iteration.  has a similar function that uses a registered command instead of a sub-process. Spawning a separate process for every missing object only works if there are very few missing objects. It does not scale well when there are many missing objects (especially small objects like commits and trees). Patch is available here: https://github.com/benpeart/git-for-windows/commits/read-object-process [RFC] Add support for downloading blobs on demand  https://firstname.lastname@example.org/ [RFC/PATCH v4 00/49] Add initial experimental external ODB support  https://email@example.com/ [PATCH v2 00/19] WIP object filtering for partial clone  https://firstname.lastname@example.org/ [RFC PATCH 0/3] Partial clone: promised blobs (formerly "missing blobs")  https://email@example.com/ Ben Peart (1): sha1_file: Add support for downloading blobs on demand Documentation/technical/read-object-protocol.txt | 102 ++++++++++++ cache.h | 1 + config.c | 5 + contrib/long-running-read-object/example.pl | 114 +++++++++++++ environment.c | 1 + sha1_file.c | 193 ++++++++++++++++++++++- t/t0410-read-object.sh | 27 ++++ t/t0410/read-object | 114 +++++++++++++ 8 files changed, 550 insertions(+), 7 deletions(-) create mode 100644 Documentation/technical/read-object-protocol.txt create mode 100755 contrib/long-running-read-object/example.pl create mode 100755 t/t0410-read-object.sh create mode 100755 t/t0410/read-object -- 2.13.2.windows.1
next reply other threads:[~2017-07-14 13:27 UTC|newest] Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-07-14 13:26 Ben Peart [this message] 2017-07-14 13:26 ` [PATCH v2 1/1] sha1_file: " Ben Peart 2017-07-14 15:18 ` Christian Couder 2017-07-17 18:06 ` Jonathan Tan 2017-07-17 20:09 ` Ben Peart 2017-07-17 23:24 ` Jonathan Tan
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 List information: http://vger.kernel.org/majordomo-info.html * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --subject='Re: [RFC/PATCH v2 0/1] Add support for downloading blobs on demand' \ /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
Code repositories for project(s) associated with this inbox: https://80x24.org/mirrors/git.git 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 read-only IMAP folder(s) and NNTP newsgroup(s).