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]

Reply via email to