Details
-
Suggestion
-
Resolution: Fixed
-
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
Description
Confluence reindexing currently runs each indexing thread in its own giant transaction, meaning that for large sites there are 10 transactions that run for several hours that require transaction conflict detection & resolution, which may be a performance issue for the DB server.
On environments where database connection leaks are known to happen, administrators will enable options to enforce a transaction timeout to help the JDBC driver reclaim and close leaked connections. However, indexing threads as they stand will almost always exceed any useful timeout period, and so indexing will never complete.
This should change so that reindexing runs in a series of much smaller transactions. Smaller transactions will require less time and memory for the DB to validate, but with higher overhead for each extra transaction commit. We will need to investigate whether switching to small transactions affects indexing speed at all, and if so, what the best size is for each indexing transaction.
Attachments
Issue Links
- is incorporated by
-
CONFSERVER-23028 Improve error handling when rebuilding index
- Closed
- relates to
-
CONFSERVER-22808 Improve reindex performance by not retrieving previous versions unnecessarily
- Closed