Re: [ZODB-Dev] Blob directory structure scalability limits

2008-06-21 Thread Christian Theune
On Fri, Jun 20, 2008 at 07:35:10PM +0200, Christian Theune wrote:
> [...] and I'm working on an offline migration script that should be
> completed by tomorrow.

The offline migration script is completed.

I'm currently trying to make the tests run on windows. The code probably does
run, but I get lots of errors due to path names in doctests and bogus
permission information.

Christian

-- 
Christian Theune · [EMAIL PROTECTED]
gocept gmbh & co. kg · forsterstraße 29 · 06112 halle (saale) · germany
http://gocept.com · tel +49 345 1229889 7 · fax +49 345 1229889 1
Zope and Plone consulting and development
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] Blob directory structure scalability limits

2008-06-20 Thread Christian Theune
Hi,

On Fri, Jun 20, 2008 at 07:55:17PM +0200, Andreas Jung wrote:
>
>
> --On 19. Juni 2008 14:31:47 +0200 Martijn Faassen 
> <[EMAIL PROTECTED]> wrote:
>
>> Hi there,
>>
>> On Thu, Jun 19, 2008 at 1:38 PM, Christian Theune <[EMAIL PROTECTED]> wrote:
>> [snip]
>>> We propose to keep both implementations around and allow to select which
>>> one to use. We would extend the FileSystemHelper to abstract the two
>>> strategies.
>>
>> Could the default be to choose the more scalable one, or would this
>> lead to backwards compatibility issues?
>>
>>
>
> Good point especially because Zope 2.11 is now inofficially released and  
> people will start using blobs based on the limited directory layout...so  
> how would a migration look like when people do encounter the current  
> limitations?

It's 100% backwards compatible. When the old layout is used a warning is
issued with a hint to migrate but I continue to fully support the old data
structures. When a new directory is started, the new layout becomes the
default.

Migration comes in the form of a command line script that can convert the old
structure to the new one. It requires the database to be offline, but I'm
working hard to make it reasonably fast. The script will be available ...
later today.


Christian


-- 
Christian Theune · [EMAIL PROTECTED]
gocept gmbh & co. kg · forsterstraße 29 · 06112 halle (saale) · germany
http://gocept.com · tel +49 345 1229889 7 · fax +49 345 1229889 1
Zope and Plone consulting and development
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] Blob directory structure scalability limits

2008-06-20 Thread Andreas Jung



--On 19. Juni 2008 14:31:47 +0200 Martijn Faassen <[EMAIL PROTECTED]> 
wrote:



Hi there,

On Thu, Jun 19, 2008 at 1:38 PM, Christian Theune <[EMAIL PROTECTED]> wrote:
[snip]

We propose to keep both implementations around and allow to select which
one to use. We would extend the FileSystemHelper to abstract the two
strategies.


Could the default be to choose the more scalable one, or would this
lead to backwards compatibility issues?




Good point especially because Zope 2.11 is now inofficially released and 
people will start using blobs based on the limited directory layout...so 
how would a migration look like when people do encounter the current 
limitations?


Andreas

pgpSPnMGLkDpH.pgp
Description: PGP signature
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] Blob directory structure scalability limits

2008-06-20 Thread Christian Theune
Me again,

On Thu, Jun 19, 2008 at 01:38:38PM +0200, Christian Theune wrote:
> Hi,
>
> We propose to introduce a new mode for the blob storage which breaks the
> directory structure into one level per byte of the oid. This would lead to
> directories 0x00-0xFF nested in 8 levels. 

I implemented a `bushy` layout and started calling the old layout `lawn` in
reference to the DirectoryStorage terminology.

The branch is 'ctheune-bushy-directory`.

The layouts are pluggable now, provide 100% compatibility to the current
implementation and I'm working on an offline migration script that should be
completed by tomorrow.

I'd like to get feedback and eventually the allowance to merge this into the
trunk, we need this rather urgently so I'd be happy to fix any issues quickly
that hinder the merge if they get pointed out.

Christian

-- 
Christian Theune · [EMAIL PROTECTED]
gocept gmbh & co. kg · forsterstraße 29 · 06112 halle (saale) · germany
http://gocept.com · tel +49 345 1229889 7 · fax +49 345 1229889 1
Zope and Plone consulting and development
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] Blob directory structure scalability limits

2008-06-19 Thread Christian Theune
Hi,

On Thu, Jun 19, 2008 at 09:29:13AM -0400, Jim Fulton wrote:
>> We propose to introduce a new mode for the blob storage which breaks  
>> the
>> directory structure into one level per byte of the oid. This would  
>> lead to
>> directories 0x00-0xFF nested in 8 levels.
>
> +1
>
> ...
>
>> We propose to keep both implementations around and allow to select  
>> which one
>> to use. We would extend the FileSystemHelper to abstract the two  
>> strategies.
>
> -1 to making this selectable.
>
>> We would also provide a migration tool that can convert the old format 
>> to the
>> new format.
>
> Maybe we can support, but deprecate the old layout and provide a  
> conversion scriptt.

Good for me as well.

-- 
Christian Theune · [EMAIL PROTECTED]
gocept gmbh & co. kg · forsterstraße 29 · 06112 halle (saale) · germany
http://gocept.com · tel +49 345 1229889 7 · fax +49 345 1229889 1
Zope and Plone consulting and development
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] Blob directory structure scalability limits

2008-06-19 Thread Jim Fulton


On Jun 19, 2008, at 7:38 AM, Christian Theune wrote:


Hi,

one of our installations hit a scalability limits with the current  
blob

directory structure.

The current structure looks like:

\blobs\
   \
   .blob
   .blob
   ...
   \
   ...
   ...\

We hit a limit with a database that contains more than 32k blob  
objects

because ext3 doesn't allow more than 32k entries in a directory.

We propose to introduce a new mode for the blob storage which breaks  
the
directory structure into one level per byte of the oid. This would  
lead to

directories 0x00-0xFF nested in 8 levels.


+1

...

We propose to keep both implementations around and allow to select  
which one
to use. We would extend the FileSystemHelper to abstract the two  
strategies.


-1 to making this selectable.

We would also provide a migration tool that can convert the old  
format to the

new format.


Maybe we can support, but deprecate the old layout and provide a  
conversion scriptt.


Jim

--
Jim Fulton
Zope Corporation


___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] Blob directory structure scalability limits

2008-06-19 Thread Martijn Faassen
Hi there,

On Thu, Jun 19, 2008 at 1:38 PM, Christian Theune <[EMAIL PROTECTED]> wrote:
[snip]
> We propose to keep both implementations around and allow to select which one
> to use. We would extend the FileSystemHelper to abstract the two strategies.

Could the default be to choose the more scalable one, or would this
lead to backwards compatibility issues?

Regards,

Martijn
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] Blob directory structure scalability limits

2008-06-19 Thread Christian Theune
On Thu, Jun 19, 2008 at 08:00:27AM -0400, Benji York wrote:
> On Thu, Jun 19, 2008 at 7:38 AM, Christian Theune <[EMAIL PROTECTED]> wrote:
> > We propose to introduce a new mode for the blob storage which breaks the
> > directory structure into one level per byte of the oid. This would lead to
> > directories 0x00-0xFF nested in 8 levels.
> 
> I suppose the directories would be built on-demand, right?

Right.

-- 
Christian Theune · [EMAIL PROTECTED]
gocept gmbh & co. kg · forsterstraße 29 · 06112 halle (saale) · germany
http://gocept.com · tel +49 345 1229889 7 · fax +49 345 1229889 1
Zope and Plone consulting and development
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] Blob directory structure scalability limits

2008-06-19 Thread Benji York
On Thu, Jun 19, 2008 at 7:38 AM, Christian Theune <[EMAIL PROTECTED]> wrote:
> We propose to introduce a new mode for the blob storage which breaks the
> directory structure into one level per byte of the oid. This would lead to
> directories 0x00-0xFF nested in 8 levels.

I suppose the directories would be built on-demand, right?
-- 
Benji York
Senior Software Engineer
Zope Corporation
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev


[ZODB-Dev] Blob directory structure scalability limits

2008-06-19 Thread Christian Theune
Hi,

one of our installations hit a scalability limits with the current blob
directory structure.

The current structure looks like:

\blobs\
\
.blob
.blob
...
\
...
...\

We hit a limit with a database that contains more than 32k blob objects
because ext3 doesn't allow more than 32k entries in a directory.

We propose to introduce a new mode for the blob storage which breaks the
directory structure into one level per byte of the oid. This would lead to
directories 0x00-0xFF nested in 8 levels. 

The last directory denotes the blob itself and looks like the current
directory: a list of blob files named by the tids they were committed for.

We propose to keep both implementations around and allow to select which one
to use. We would extend the FileSystemHelper to abstract the two strategies.

We would also provide a migration tool that can convert the old format to the
new format.

Comments?

Christian


-- 
Christian Theune · [EMAIL PROTECTED]
gocept gmbh & co. kg · forsterstraße 29 · 06112 halle (saale) · germany
http://gocept.com · tel +49 345 1229889 7 · fax +49 345 1229889 1
Zope and Plone consulting and development
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev