[seam-issues] [JBoss JIRA] Closed: (JBSEAM-4499) Improve wiki data model/schema

Christian Bauer (JIRA) jira-events at lists.jboss.org
Wed Jan 27 12:19:19 EST 2010


     [ https://jira.jboss.org/jira/browse/JBSEAM-4499?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Christian Bauer closed JBSEAM-4499.
-----------------------------------

    Fix Version/s: 2.2.1.CR1
       Resolution: Done


Removed the nested set model, results are:

- Queries show better scalability and performance, however, on MySQL and PostgreSQL a simple nested loop join is still the limiting factor. Most likely, further optimization will be necessary in the future. We will however be able to survive for a while even without denormalized data (tables will be dropped).

- Discarded the "threaded comments" feature. Although threads could be displayed with the current adjacency list (each node has id and parent id), this would require a real DBMS (which MySQL is not) or recursive querying (which is a bad idea). So the absolutely necessary threaded display of data (main menu, directory tree in table-of-contents plugin, "parent feed" search) has been implemented with recursive querying. Luckily, our datasets are small.

- As a consequence, the directory browser no longer offers a tree view of folders, this has to be re-implemented.


> Improve wiki data model/schema
> ------------------------------
>
>                 Key: JBSEAM-4499
>                 URL: https://jira.jboss.org/jira/browse/JBSEAM-4499
>             Project: Seam
>          Issue Type: Task
>          Components: Wiki
>            Reporter: Christian Bauer
>            Assignee: Christian Bauer
>             Fix For: 2.2.1.CR1
>
>
> Motivation: The current data model based on nested sets has few advantages compared to a traditional schema. It complicates ad-hoc queries and it is more difficult to understand. The locking requirements of the nested set approach are in conflict with stateful persistence context management and bugs are extremely hard to detect and fix. Also, some of the problematic query performance we observed might be related to the nested set schema, however, that is not clear at this point as alternative schemas have not been compared with the same queries.
> Goal: A simpler schema and removal of all query performance bottlenecks.
> Steps:
> 1. Create a dummy traditional schema that reflects the domain and create dummy data (Benerator).
> 2. Write and analyze the most costly queries against that schema.
> 3. Once proven that the nested set schema is indeed the cause of these performance issues, replace the nested set schema with the traditional schema and write data migration scripts.
> 4. Consider replacing the nested set schema anyway, for reasons other than performance (simplicity, bugfixing, locking problems).

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the seam-issues mailing list