- Compatible XF Versions
- 1.4
- 1.5
This addon is aimed at large forum with tens of thousands to hundreds of thousands or more threads in a single forum. Smaller forum do not gain much benefit from this add-on.
Node List Caching:
As the number of forum nodes grow, the front page will take longer to compute the node tree for rendering. This allows caching of the node list for members/guests for either just the root-node or any node with sub-nodes.
Members Online list:
This add-on introduces a faster 'members online' list designed to scale well to thousands of users online. However, this will not show users who are not staff or not followed in the list.
This lost of functionality may be undesirable so can be configured under the Performance options configuration.
Note; converting the xf_session_activity table from MEMORY to InnoDB is likely a good idea if you want to use the Members Online query tuning. As MEMORY table has MyISAM locking behaviour, and this causes lock escalations when joins touch the a MEMORY table.
Forum/conversation/Likes Received lists:
MySQL implements 'early row lookup', when combined with LIMIT & OFFSET with a large offset, results in the large select statement pulling in more data than is required. Maybe one day MySQL will fix this. Maybe.
This causes an issue as this is how likes, conversations and threads implement paging.
This addon provides some optimized query for getting threads in a forum with large number of threads, or for conversations with a very high page count.
Ideally conversations would implement the position system like posts do, which would be even faster than using sub-selects to force 'late row lookup'.
Configuration
Under "Performance":
Node List Caching:
As the number of forum nodes grow, the front page will take longer to compute the node tree for rendering. This allows caching of the node list for members/guests for either just the root-node or any node with sub-nodes.
Members Online list:
This add-on introduces a faster 'members online' list designed to scale well to thousands of users online. However, this will not show users who are not staff or not followed in the list.
This lost of functionality may be undesirable so can be configured under the Performance options configuration.
Note; converting the xf_session_activity table from MEMORY to InnoDB is likely a good idea if you want to use the Members Online query tuning. As MEMORY table has MyISAM locking behaviour, and this causes lock escalations when joins touch the a MEMORY table.
Forum/conversation/Likes Received lists:
MySQL implements 'early row lookup', when combined with LIMIT & OFFSET with a large offset, results in the large select statement pulling in more data than is required. Maybe one day MySQL will fix this. Maybe.
This causes an issue as this is how likes, conversations and threads implement paging.
This addon provides some optimized query for getting threads in a forum with large number of threads, or for conversations with a very high page count.
Ideally conversations would implement the position system like posts do, which would be even faster than using sub-selects to force 'late row lookup'.
Configuration
Under "Performance":