[
https://jira.jboss.org/jira/browse/JBSEAM-4499?page=com.atlassian.jira.pl...
]
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