git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Shawn O. Pearce" <spearce@spearce.org>
To: Charles Earl <charles.cearl@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: Appropriateness of git for digital video production versioning
Date: Thu, 29 Jan 2009 07:45:36 -0800	[thread overview]
Message-ID: <20090129154536.GC26880@spearce.org> (raw)
In-Reply-To: <8c4a72800901290736p4952e53byddca243f300dd8af@mail.gmail.com>

Charles Earl <charles.cearl@gmail.com> wrote:
> Are there past instances of git having been adapted to support version
> control of digital media production workflow?

You are going to run into scaling problems.  Git works under the
assumption that it can malloc() at least 2 complete copies of a
file at once, in the same process.

Last time I mucked around with digital media production, the volume
of data in a video file was *huge*.  Its workable on modern systems
with terabyte disk arrays and so forth, but modern systems still
can't afford the 100 GB of RAM necessary to allow Git to malloc()
up two blocks of a single 40 GB video file.

Also, since clients pretty much grab the entire repository when they
clone it for working access, its going to suck down the entire media
archive, *all* versions.  That could be well into the hundreds of
TB range and may never complete.

> The bulk of content stored is binary data -- there have been posts on
> this about integration of various binary diff implemetations with git.

You mention later about using S3 or BlockStore to hold the binary
content.  Maybe the large binary data should be stored in S3, and
the Git repository just holds the metadata and scripts, including
scripts to perform downloads/uploads through S3.

> The versioning of metadata, scripts, project structure seems to argue
> for applicability of system such as git -- these fit the paradigm of
> traditional scm.

Yea, that's more typical of what Git was designed and built to store.

> Example content is from media production suites such as Adobe After
> Effects/Premier: video, compositions, etc.
> I'd also like the object storage to be in S3/Amazon BlockStore or
> similar remote stores.

My suggestion?

Use Git for your metadata and scripts.  Include a few scripts that
can download the large media files from S3 when they are needed,
and upload new versions when they are modified.

If you want to store versions over time of the files, sha1sum
the media file and use that as the key name in the S3 bucket,
and store the output of sha1sum into a file within Git.  E.g. a
".media" text file just listing out sha1sum and path names:

  ceba7222551c722836564535697947e8a9b3e7ce big_file.mpg
  75c8f5ecb97ec67c1ec949b16c72e6ba1361a528 other_file.mpg

and use a simple script to edit/read that file, accessing S3 as
necessary for the operations.

-- 
Shawn.

  reply	other threads:[~2009-01-29 15:47 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-29 15:36 Appropriateness of git for digital video production versioning Charles Earl
2009-01-29 15:45 ` Shawn O. Pearce [this message]
2009-01-29 15:48 ` Pau Garcia i Quiles
2009-01-30 10:13 ` Christian MICHON

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=20090129154536.GC26880@spearce.org \
    --to=spearce@spearce.org \
    --cc=charles.cearl@gmail.com \
    --cc=git@vger.kernel.org \
    /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).