Details
-
Type:
Improvement
-
Status:
Resolved
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 6.1.0 CE RC1, 6.1.0 CE GA1
-
Fix Version/s: --Sprint 12/11, 6.1.0 CE RC1, 6.1.1 CE GA2, 6.0.X EE, 6.1.X EE, 6.2.0 CE M2
-
Component/s: Search, Search > Search Portlet, WCM, WCM > Asset Publisher
-
Labels:
-
Branch Version/s:6.1.x, 6.0.x
-
Backported to Branch:Committed
-
Similar Issues:
Description
When I have about 10 000 AssetEntry and one asset publisher in my page and I want display all of them - Asset Publisher sends 30 000 queries to database in one request.
I've written about it here: http://liferaycms.wordpress.com/2011/10/11/one-of-bottleneck-in-liferay-6-1/ and here: http://liferaycms.wordpress.com/2011/10/17/asset-publisher-and-queries-count/
Issue Links
- causes
-
LPS-26062
Asset publisher portlet with enabled permissions shows or not depending on first asset permissions
-

Guys, I thought on this topic a lot. Maybe we should modify PermissionChecker implementation. My inspiration was Lucene index. IMHO we can do that by adding new table AssetEntry_ViewPermission with 4 columns:
If we want to add groupRoleId we put groupId and roleId values otherwise if we want to add roleId - the value of groupId will be zero.
Thus we can check View permission using SQL query by join our new table (lucene indexer do that thing).
Advantages:
Second way is a full PermissionChecker refactoring and link it with AssetEntries.
Third way is to change AssetPublisher implementation and use LuceneIndexer to pick records. We'll try to test this solution and measure the performance.