Re: Git's database structure

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Julian Phillips <julian@...>
Cc: Jon Smirl <jonsmirl@...>, Andreas Ericsson <ae@...>, Theodore Tso <tytso@...>, Junio C Hamano <gitster@...>, Git Mailing List <git@...>
Date: Wednesday, September 5, 2007 - 9:27 pm

On Sep 05, 2007, at 13:31:43, Julian Phillips wrote:

The only possible reason I can think of for moving data into the blob  
would be to make a POSIX-compliant git-like filesystem, and EVEN THEN  
you would NOT move the path out of the tree objects.  In order to  
have somewhat consistent inodes (and also for performance when  
changing 4 bytes in a 40GB file) you would want to have 3 different  
types of "inode" objects:

1)  4-64k of (metadata + filedata)
2)  4-64k of (metadata + list of 4-64k filedata blobs)
3)  4-64k of (metadata + list of 4-64k lists of filedata blobs)

On the other hand... that isn't GIT, it's something completely  
different with a very different usage pattern and set of  
requirements.  And you still don't put the path name in the objects,  
just the permissions and other attributes/metadata.

<Random Thought Experiment>
You would of course want to better define those 4-64k limits for  
allocation and performance reasons, but a double-indirect table of  
SHA128s with 64kb chunks lets you address up to 1TB of file data, and  
for each additional power-of-two increase in the chunk size you get 8  
times the storage space.  Furthermore, the actual double-indirect  
tables for an 8TB file using 128k chunks would be all of 64MB, for a  
more reasonable 4GB file with 32k tables (max of 128GB) it would be  
maybe 128kB of indirect SHA1 hash tables.
</Random Thought Experiment>

Cheers,
Kyle Moffett

-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Git's database structure, Jon Smirl, (Tue Sep 4, 11:23 am)
Re: Git's database structure, Julian Phillips, (Tue Sep 4, 1:19 pm)
Re: Git's database structure, Jon Smirl, (Tue Sep 4, 1:30 pm)
Re: Git's database structure, Andreas Ericsson, (Tue Sep 4, 2:51 pm)
Re: Git's database structure, Jon Smirl, (Tue Sep 4, 12:28 pm)
Re: Git's database structure, Junio C Hamano, (Tue Sep 4, 1:25 pm)
Re: Git's database structure, Jon Smirl, (Tue Sep 4, 1:44 pm)
Re: Git's database structure, Theodore Tso, (Tue Sep 4, 5:25 pm)
Re: Git's database structure, Jon Smirl, (Tue Sep 4, 5:54 pm)
Re: Git's database structure, Andreas Ericsson, (Wed Sep 5, 3:18 am)
Re: Git's database structure, Jon Smirl, (Wed Sep 5, 9:41 am)
Re: Git's database structure, Andy Parkins, (Wed Sep 5, 3:52 pm)
Re: Git's database structure, Andreas Ericsson, (Wed Sep 5, 10:51 am)
Re: Git's database structure, Jon Smirl, (Wed Sep 5, 11:37 am)
Re: Git's database structure, Julian Phillips, (Wed Sep 5, 11:54 am)
Re: Git's database structure, Jon Smirl, (Wed Sep 5, 12:12 pm)
Re: Git's database structure, Martin Langhoff, (Thu Sep 6, 8:33 pm)
Re: Git's database structure, Johannes Schindelin, (Thu Sep 6, 8:56 am)
Re: Git's database structure, Steven Grimm, (Thu Sep 6, 2:14 pm)
Re: Git's database structure, Andreas Ericsson, (Thu Sep 6, 4:49 am)
Re: Git's database structure, Junio C Hamano, (Thu Sep 6, 5:09 am)
Re: Git's database structure, Wincent Colaiuta, (Thu Sep 6, 7:03 am)
Re: Git's database structure, Mike Hommey, (Wed Sep 5, 1:39 pm)
Re: Git's database structure, Julian Phillips, (Wed Sep 5, 1:31 pm)
Re: Git's database structure, Kyle Moffett, (Wed Sep 5, 9:27 pm)
Re: Git's database structure, Junio C Hamano, (Tue Sep 4, 2:06 pm)
Re: Git's database structure, Mike Hommey, (Tue Sep 4, 2:04 pm)
Re: Git's database structure, Reece Dunn, (Tue Sep 4, 3:44 pm)
Re: Git's database structure, Andreas Ericsson, (Tue Sep 4, 12:31 pm)
Re: Git's database structure, Jon Smirl, (Tue Sep 4, 12:47 pm)
Re: Git's database structure, Andreas Ericsson, (Tue Sep 4, 12:51 pm)
Re: Git's database structure, Andreas Ericsson, (Tue Sep 4, 11:55 am)
Re: Git's database structure, Junio C Hamano, (Tue Sep 4, 1:21 pm)
Re: Git's database structure, Jon Smirl, (Tue Sep 4, 12:19 pm)
Re: Git's database structure, David Tweed, (Tue Sep 4, 4:17 pm)
Re: Git's database structure, Jeff King, (Tue Sep 4, 1:09 pm)
Re: Git's database structure, Andreas Ericsson, (Tue Sep 4, 12:29 pm)
Re: Git's database structure, Mike Hommey, (Tue Sep 4, 12:07 pm)
Re: Git's database structure, Andreas Ericsson, (Tue Sep 4, 12:10 pm)