Re: [Zope] ZEO with Multiple Storages

2006-09-14 Thread Martijn Pieters

On 9/14/06, Jonathan [EMAIL PROTECTED] wrote:

If you mean having zope commit a single transaction to multiple storages,
then 'vanilla' zope won't do it (Zope Corp has a commercial product called
ZRS which does this type of thing).


No, that's not true. ZRS is used to create hot read-only or stand-by
copies of a ZEO server (and all storages within such a server are
copied).

One ZEO server can deal with multiple storages just fine. Transactions
involving multiple storages commit just fine.


First off, does this make any sense? Is it worth pursuing?


I think so.

I would think, but do not know for sure, that transactions only
involving one storage should not delay transactions involving other
storages.


Secondly, I
assume that where an object is stored does not limit what other objects it
can access in a transaction (e.g. object A could add a property to object
B if they were in different storages) because all changes would occur in a
client. (this ties into the single transaction committing to multiple
storages)


You assume correctly.

Note that a stock Zope install already runs multiple storages; one for
Session data (tempstorage) and one for all other data.


Lastly, any thoughts on how we could split up our existing data.fs file?
One thought I had was to attempt to import/export data.


Either before or after upgrading to 2.9 (probably best after to take
advantage of the more robust ZODB), export and import.


--
Martijn Pieters
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] ZEO with Multiple Storages

2006-09-14 Thread Jens Vagelpohl

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


On 14 Sep 2006, at 08:54, Martijn Pieters wrote:

One ZEO server can deal with multiple storages just fine. Transactions
involving multiple storages commit just fine.


Caveat: You buy nothing by having a single ZEO process serve several  
ZODBs when you're trying to decrease commit times. You should run a  
ZEO process per ZODB you're serving out, that way the writes can be  
segregated and parallelized. That also makes it easier to move  
processes/databases around disks/hosts to spread I/O load.


jens



-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.1 (Darwin)

iD8DBQFFCQSiRAx5nvEhZLIRAhihAKC7V0lCz3deSz0vN/0RhvdWmFAj0ACgoguT
I8NDYcUbz5t25xniZZ1akfo=
=63My
-END PGP SIGNATURE-
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] ZEO with Multiple Storages

2006-09-14 Thread Jonathan


- Original Message - 
From: Martijn Pieters [EMAIL PROTECTED]

To: Jonathan [EMAIL PROTECTED]
Cc: Brian Brinegar [EMAIL PROTECTED]; zope@zope.org
Sent: Thursday, September 14, 2006 2:54 AM
Subject: Re: [Zope] ZEO with Multiple Storages



On 9/14/06, Jonathan [EMAIL PROTECTED] wrote:

If you mean having zope commit a single transaction to multiple storages,
then 'vanilla' zope won't do it (Zope Corp has a commercial product 
called

ZRS which does this type of thing).


No, that's not true. ZRS is used to create hot read-only or stand-by
copies of a ZEO server (and all storages within such a server are
copied).

One ZEO server can deal with multiple storages just fine. Transactions
involving multiple storages commit just fine.


Yes and No!

Yes: a single zeo server can deal with multiple storages (ie. a storage can 
contain mount points to other storages)


Yes: if a single transaction creates/modifies multiple objects and each of 
those objects is stored in a different storage (all storages 'served up' by 
a single zeo server), then the single transaction will commit those objects 
to their respective storages with no problem. (however, there are little/no 
performance improvements in this scenario)


No:  if a single transaction creates/modifies a single object, that single 
object can not be stored over multiple storages (ie. you cannot achieve RAID 
'disk striping' type of performance improvements)



However, that being said there may be some improvement, if the application 
is disk-bound, by giving each storage its own disk subsystem (never tried 
this myself, but it may buy some small performance improvement).  For the 
cost/effort involved I would stick to having a single zeo server 'serve up' 
a single storage, and have each zeo server on its own hardware platform 
(much more scalable, easy to implement).



Jonathan 



___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] ZEO with Multiple Storages

2006-09-14 Thread Jens Vagelpohl

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


On 14 Sep 2006, at 13:56, Jonathan wrote:

Yes: a single zeo server can deal with multiple storages (ie. a  
storage can contain mount points to other storages)


That's misleading wording, a storage knows nothing at all about  
mounts. The storage server can't do anything except for reading from  
and writing to ZODB databases. Mounting is a client concept only.


jens



-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.1 (Darwin)

iD8DBQFFCVdQRAx5nvEhZLIRAkACAJwM7Cv0+dmnjgtsGsnYhYb6Vzl8BwCgqO8Y
z4WxwoWO/XOrRkW8FwLZx9k=
=4Lax
-END PGP SIGNATURE-
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] ZEO with Multiple Storages

2006-09-14 Thread Jonathan


- Original Message - 
From: Jens Vagelpohl [EMAIL PROTECTED]

To: [Zope] List Mailing zope@zope.org
Sent: Thursday, September 14, 2006 9:21 AM
Subject: Re: [Zope] ZEO with Multiple Storages



-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


On 14 Sep 2006, at 13:56, Jonathan wrote:

Yes: a single zeo server can deal with multiple storages (ie. a  storage 
can contain mount points to other storages)


That's misleading wording, a storage knows nothing at all about  mounts. 
The storage server can't do anything except for reading from  and writing 
to ZODB databases. Mounting is a client concept only.


P.S.  Or is the mount point  totally controlled by zope.conf and nothing 
relating to the 'mount point' is stored in the storage?



Jonathan 



___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] ZEO with Multiple Storages

2006-09-14 Thread Jens Vagelpohl

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


On 14 Sep 2006, at 15:34, Jonathan wrote:
Yes: a single zeo server can deal with multiple storages (ie. a   
storage can contain mount points to other storages)


That's misleading wording, a storage knows nothing at all about   
mounts. The storage server can't do anything except for reading  
from  and writing to ZODB databases. Mounting is a client concept  
only.


P.S.  Or is the mount point  totally controlled by zope.conf and  
nothing relating to the 'mount point' is stored in the storage?


You got it.

jens


-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.1 (Darwin)

iD8DBQFFCV48RAx5nvEhZLIRAsLWAKCIYC9D+/QpX6oq3QvHvWSBtMMCGQCfY5fS
LLsShBUeXJI+O6FSZRiYqxw=
=/czT
-END PGP SIGNATURE-
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] ZEO with Multiple Storages

2006-09-14 Thread Jonathan


- Original Message - 
From: Jens Vagelpohl [EMAIL PROTECTED]

To: [Zope] List Mailing zope@zope.org
Sent: Thursday, September 14, 2006 9:21 AM
Subject: Re: [Zope] ZEO with Multiple Storages



-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


On 14 Sep 2006, at 13:56, Jonathan wrote:

Yes: a single zeo server can deal with multiple storages (ie. a  storage 
can contain mount points to other storages)


That's misleading wording, a storage knows nothing at all about  mounts. 
The storage server can't do anything except for reading from  and writing 
to ZODB databases. Mounting is a client concept only.


I didn't say that the storage 'knew' anything about mount points.  I simply 
stated that a storage can contain mount points to other storages (storages 
contain objects, if one of those objects happens to be a mount point to 
another storage the storage containing the 'mount point' object doesn't 
care).


So the wording is not misleading (if the storage doesn't contain the mount 
point object, where is it stored?)



Jonathan



___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] ZEO with Multiple Storages

2006-09-14 Thread Dieter Maurer
Brian Brinegar wrote at 2006-9-13 21:22 -0400:
 ... partioning large data sets onto different storages ...
First off, does this make any sense?

I makes sense and we do it successfully with our large editorial
system.


However, ensure that each storage is self contained data wise:

  e.g. do not put data in one storage and have them catalogued
  in a different one.

Otherwise, selective backup of individual storages will introduce
inconsistencies.

Is it worth pursuing?

Yes.

Secondly, I 
assume that where an object is stored does not limit what other objects 
it can access in a transaction (e.g. object A could add a property to 
object B if they were in different storages) because all changes would 
occur in a client. (this ties into the single transaction committing to 
multiple storages)

Right.



-- 
Dieter
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] ZEO with Multiple Storages

2006-09-14 Thread Dieter Maurer
Jens Vagelpohl wrote at 2006-9-14 15:50 +0200:
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


On 14 Sep 2006, at 15:34, Jonathan wrote:
 Yes: a single zeo server can deal with multiple storages (ie. a   
 storage can contain mount points to other storages)

 That's misleading wording, a storage knows nothing at all about   
 mounts. The storage server can't do anything except for reading  
 from  and writing to ZODB databases. Mounting is a client concept  
 only.

 P.S.  Or is the mount point  totally controlled by zope.conf and  
 nothing relating to the 'mount point' is stored in the storage?

You got it.

I am not sure about the most recent Zope/ZODB versions.

But, up to Zope 2.8/ZODB 3.4, Jonathan was right:

  Beside configuration, there have been MountPoint objects
  in the ZODB that handled the mounting magic.

  While not completely impossible, I would be very surprised if the need
  for MountPoint objects were dropped in newer Zope versions...



-- 
Dieter
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )


[Zope] ZEO with Multiple Storages

2006-09-13 Thread Brian Brinegar
We currently have a ZEO environment with FileStorage (data.fs) over 100 
gigs, which continues to grow. Currently we are approaching a major 
hardware and software upgrade. All new hardware and moving from Zope 2.6 
to Zope 2.9.


Our server hosts sites for several different schools and departments 
within our college, what I have considered doing is trying to split up 
the data.fs into multiple smaller storages, possibly one per school. I 
suspect if this is possible it could potentially have several benefits. 
The first being that we would not have to deal with 100 gig files which 
are very difficult to move around backup/restore, etc. Secondly, we 
often have a very large number of users updating content at a given time 
and will run into slowdowns where a transaction is blocked while another 
commits. I hope that multiple storages could allow for a transaction to 
commit to one storage at the same time as another, though I am not sure. 
Along this line can a single transaction commit to multiple storages?


First off, does this make any sense? Is it worth pursuing? Secondly, I 
assume that where an object is stored does not limit what other objects 
it can access in a transaction (e.g. object A could add a property to 
object B if they were in different storages) because all changes would 
occur in a client. (this ties into the single transaction committing to 
multiple storages)


If this does makes sense is there any documentation, recommendations, 
best practices for how to set something like this up?


Lastly, any thoughts on how we could split up our existing data.fs file? 
One thought I had was to attempt to import/export data.


Thank you,

Brian Brinegar
Web Systems Developer
Engineering Computer Network
Purdue University
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] ZEO with Multiple Storages

2006-09-13 Thread Jonathan


- Original Message - 
From: Brian Brinegar [EMAIL PROTECTED]

To: zope@zope.org
Sent: Wednesday, September 13, 2006 9:22 PM
Subject: [Zope] ZEO with Multiple Storages


We currently have a ZEO environment with FileStorage (data.fs) over 100 
gigs, which continues to grow. Currently we are approaching a major 
hardware and software upgrade. All new hardware and moving from Zope 2.6 
to Zope 2.9.


Our server hosts sites for several different schools and departments 
within our college, what I have considered doing is trying to split up the 
data.fs into multiple smaller storages, possibly one per school. I suspect 
if this is possible it could potentially have several benefits. The first 
being that we would not have to deal with 100 gig files which are very 
difficult to move around backup/restore, etc. Secondly, we often have a 
very large number of users updating content at a given time and will run 
into slowdowns where a transaction is blocked while another commits. I 
hope that multiple storages could allow for a transaction to commit to one 
storage at the same time as another, though I am not sure. Along this line 
can a single transaction commit to multiple storages?


If you mean having zope commit a single transaction to multiple storages, 
then 'vanilla' zope won't do it (Zope Corp has a commercial product called 
ZRS which does this type of thing).


Alternatively, if your server is disk-bound then you could look into RAID 
disk striping to try to improve performance.



First off, does this make any sense? Is it worth pursuing? Secondly, I 
assume that where an object is stored does not limit what other objects it 
can access in a transaction (e.g. object A could add a property to object 
B if they were in different storages) because all changes would occur in a 
client. (this ties into the single transaction committing to multiple 
storages)


If this does makes sense is there any documentation, recommendations, best 
practices for how to set something like this up?


Lastly, any thoughts on how we could split up our existing data.fs file? 
One thought I had was to attempt to import/export data.



If you have the time and hardware you could easily set up several zeo 
servers on different 'back-end' hardware servers (ie. put each zeo server on 
its on computer) to improve performance, increase reliability/robustness, 
etc.  Your 'use case' in which you have different schools and departments 
would lend itself to this kind of distribution (put the biggest/heaviest 
users on their own servers, group together smaller/lighter users on shared 
servers).


You just need to define a mount point (in zope.conf) for each different zeo 
server (and set up each zeo server of course).


If you already have the data for the various schools  depts stored in 
separate folders, it would be easy to export each 'school' folder and then 
import it into the new configuration.



hth

Jonathan 



___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope-dev )