cancel
Showing results for 
Search instead for 
Did you mean: 

Alfresco is getting slow

shankhamajumdar
Champ on-the-rise
Champ on-the-rise

Hi,

I am using Alfresco Community 5.2.0. I have created a folder inside repository and uploaded around 5,35000 files. But whenever I am trying to access the folder using UI, Alfresco is getting very slow and becoming almost unassailable.  I have noticed there are some queries are running in the Postgres for infinite time whenever I am performing this activity.

Regards,

Shankha

4 REPLIES 4

angelborroy
Community Manager Community Manager
Community Manager

Alfresco recommendations for best performance include a 3,000 nodes limit on every level. If you have a folder including 5 Million files, then I recommend you to create subfolders to obtain a hierarchy where no level has more than 3,000 elements.

Hyland Developer Evangelist

Thanks a lot. But I am trying to understand how this will improve the performance. Is there anything which will improve the query performance in Postgres DB level. Can you please provide me some detail in this?

Regards,

Shankha

jpotts
World-Class Innovator
World-Class Innovator

It doesn't make any sense to try to optimize PostgreSQL when you are grossly abusing the limits recommended by the software vendor. It would be like cramming four elephants into a compact car and then asking how to tune the engine to get better gas mileage.

Here is a presentation from DevCon 2018 that considered putting only 100,000 files in a single folder to be a presentation-worthy accomplishment: Alfresco DevCon 2018: 100k Nodes in a Single Folder - YouTube 

First, get your number of objects in a single folder to be within the recommended limit, then, if you still need it, you can tune the DB.

"How this will improve the performance" = Better distribution of data so that a simple "list contents" operation will not need to perform a full table scan and process all 5 million files. Since permission checking is done after loading from the database, the database load itself cannot effectively use offset / pagination to reduce the amount of data loaded, since individual elements may not be accessible to the current user - so a simple list operation typically ends up being a "load all in this folder" operation on the DB layer, with the performance corresponding to the amount of data in that folder (and relative to the overall distribution).