Am Freitag, 14. November 2003 14:15 schrieb Andy Redhead:
> > I think having redundant copies could be very helpful to increase
> > performance
> > of the rdbms-store. Nearly every statement uses joins to get the URI-id.
> > If
> > you use a db that only allows table locking (like the free version of
> > sybase)
> > you'll quickly run into serious performance problems.
>
> Fair point, though if a relational database doesn't let you use
> relationships then I start to question its value... ;)
>
> > I agree that the db-layout will look a bit ugly by adding this
> > (redundant) columns but i think the gained performance and better
> > scalability will be worth this price.
>
> I'm not particularly concerned with the 'aesthetics' of the data model ;) I
> am concerned with how to keep all these redundant urls up-to-date when
> things get moved around within the repository, you would only have to
> forget to update one copy for all sorts of strange and hard to find
> problems to start.

That's true but should be possible to implement, because the data model is 
still quite simple ;-)

>
> On top of that, if you are indexing the url string field (which I think
> would be reasonable if you had a lot of entries in the repository) then the
> db will be rebuilding that index for each redundant url several times
> over... though this probably isn't as frequent an occurrence as a "read",
> it will affect "insert new" and "move" operations.

This is a good point. We are going to use slide as a CMS that will serve and 
compose web pages in real time, so read-performance is much more important 
for us than write/copy/move-performance. If you are using slide as a 
versioning system (to replace cvs or something like that) this might be 
different. 
So this is a point that should be discussed.

Daniel

>
> Cheers
>
> Andy
>
> > Daniel
> >
> > > Cheers
> > >
> > > Andy
> > >
> > > -----Original Message-----
> > > From: Oliver Zeigermann [mailto:[EMAIL PROTECTED]
> > > Sent: 14 November 2003 12:27
> > > To: Slide Developers Mailing List
> > > Subject: Merged RDBMS store
> > >
> > > Hi!
> > >
> > > I have just committed the initial proposal for the merged RBDMS store
> > > into the proposal section of the CVS. It should work with the current
> > > ACL-12 implementation, although no extensive testing has been done yet.
> > >
> > > To sum things up:
> > >
> > > - Adapter concept has been taken over from the work initally done by
> > > Christopher Lenz to enable usage both with datasources configured in a
> > > J2EE container and connections configured in Domain.xml. J2EE and JDBC
> > > store share a common code base that mainly differs in the way a new
> > > connection is created.
> > > - Added some code from Christophe Lombart to allow for connection
> > > pooling with the JDBC store using DBCP.
> > > - The database schema and most of the SQL has been taken over from the
> > > store provided by Ashok in this list. It should still be compatible to
> > > the old schema:
> > >    - Ordering of ACEs has been added using an added row
> > >    - Some really minor stuff changed to make tables work with Sybase as
> > > well - Statements have been combined and turned into prepared ones
> > > (with substantial contribution from my collegue Daniel Florey :)
> > >    - Removed minor "myRevisionDescriptor"-hack
> > > - The proposal should work with MS SQLServer and Sybase
> > >
> > > Open issues:
> > >
> > > - Some sort of deadlocks occur on delete and insert when having an
> > > isolation level higher than read committed. This happens even with a
> > > single request. Maybe this is problem with reads outside of
> > > transactions? Have to check this.
> > > - When looking at the database schema we noticed allmost all requests
> > > use the URI table to map URI to ID. This very likely will limit
> > > scalability under concurrent access. I'd propose to change the DB
> > > schema to have redundant URI strings in all tables that have foreign
> > > key to the URI table. Keys and foreign keys would still be IDs.
> > > Drawback would be redundancy and imcompatibility to the old schema.
> > > - Ports to other major databases: I can do Oracle, but will need help
> > > with others. I think we already found volunteers to do MySQL and
> > > Postgres. DB2 volunteers would be nice...
> > > - This implmentation still lacks reasonable performance in my very
> > > simple test scenario. What do you folks say?
> > > - There still is some confusion about how to handle branches and
> >
> > revisions
> >
> > > - Tests need to be run
> > >
> > > Configuration:
> > >
> > > When using the standalone variant, the respective fragment in your
> > > Domain.xml might look like. Be sure to have the "SelectMethod=cursor"
> > > property set in the JDBC url.
> > >
> > > ...
> > > <store name="SQLServerStore"
> > > classname="org.apache.slide.store.ExtendedStore">
> > >    <nodestore classname="org.apache.slide.store.impl.rdbms.JDBCStore">
> > >    <parameter
> >
> > name="adapter">org.apache.slide.store.impl.rdbms.StandardRDBMSAdapter</pa
> >r a
> >
> > >m eter>
> > >     <parameter
> > > name="driver">com.microsoft.jdbc.sqlserver.SQLServerDriver</parameter>
> > >     <parameter
> >
> > name="url">jdbc:microsoft:sqlserver://moe.finix.de:1433;DatabaseName=Slid
> >e ;
> >
> > >S electMethod=cursor</parameter>
> > >     <parameter name="user">[user]</parameter>
> > >     <parameter name="password">[password]</parameter>
> > >     <parameter name="dbcpPooling">true</parameter>
> > >     <parameter name="maxPooledConnections">10</parameter>
> > >     <parameter name="isolation">READ_COMMITTED</parameter>
> > >     <!-- adapter parameters -->
> > >     <parameter name="compress">true</parameter>
> > >     ...
> > >   </store>
> > > ...
> > >
> > > When using the J2EE variant you only have to configure the JNDI name
> > > for the datasource (e.g. jdbc/datasource):
> > >
> > > ...
> > > <store name="SQLServerStore"
> > > classname="org.apache.slide.store.ExtendedStore">
> > >    <nodestore classname="org.apache.slide.store.impl.rdbms.J2EEStore">
> > >    <parameter
> >
> > name="adapter">org.apache.slide.store.impl.rdbms.StandardRDBMSAdapter</pa
> >r a
> >
> > >m eter>
> > >     <parameter name="datasource">jdbc/datasource</parameter>
> > >     <!-- adapter parameters -->
> > >     <parameter name="compress">true</parameter>
> > >     ...
> > >   </store>
> > > ...
> > >
> > > Certainly I have forgotten something ;)
> > >
> > > Oliver
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to