Am Freitag, 14. November 2003 13:47 schrieb Andy Redhead: > Hi all, > > I've been 'lurking' on this list for the last couple of months and its > really good to see that things are moving forward (especially as the last > time I used slide was nearly 2 years ago). > > I will (hopefully) be checking out and getting to grips with the latest CVS > version next week, working in a Tomcat/JBoss/Postgresql environment - so I > guess you will have another postgres tester ;) > > Just one comment on your proposals - I really don't think that having many > redundant copies of url strings lying around in the database is a good > idea! I would expect a single url table with a sensible index built on the > url string would work much better and be less costly to maintain overall...
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. 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. 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</para >m eter> > <parameter > name="driver">com.microsoft.jdbc.sqlserver.SQLServerDriver</parameter> > <parameter > name="url">jdbc:microsoft:sqlserver://moe.finix.de:1433;DatabaseName=Slide; >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</para >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]
