Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

SS Efficiency - working with huge amount of content


Go to End


3 Posts   1536 Views

Avatar
maciszek

Community Member, 4 Posts

25 February 2011 at 3:30am

I would like to recive some information/expirience about dealing with huge amount of content in SilverStripe (in CMS). I'm starting a project that is not just simple information page - it may contain lot of pages after some time.

Let's assume that there is a page with NEWS section. Daily editors can add about 10 news-es (news is just a few paragraph - standard content). After a year we can assume that we might have no more then 3650 newses.

I wonder if SS will face it with no problems. I did some test and I added 10000 newses to simple page (I did it via database inserting rows to table SiteTree and to table NewsPage - this was table made by SS for my data structure). After that SS stuck. I crop rows to 5000. Still stuck. After cropping to 2000 newses SS started to replay (it was on localhost). The errors that I did recived during tests was pritty obvious, Allowed memory size bytes exhausted in sapphire/core/model/DataObject.php, sapphire/core/model/Translatable.php, sapphire/core/Object.php etc...

Those errors do not worried me. I understend them and I know why the occured.

Question is how to deal in such case when page will have more then 2k newses, maby some more articles or some other pages in amount greater then 2k. I think there have to be a way to configure CMS in such way that it will deal with that.

I wonder what are your throughts / expiriences / advice in that case.

Pawel

Avatar
Ryan M.

Community Member, 309 Posts

25 February 2011 at 10:47am

You'll probably want to look into ModelAdmin then.

http://doc.silverstripe.org/sapphire/en/reference/modeladmin

Avatar
Willr

Forum Moderator, 5523 Posts

25 February 2011 at 4:58pm

The errors that I did recived during tests was pritty obvious, Allowed memory size bytes exhausted in sapphire/core/model/DataObject.php, sapphire/core/model/Translatable.php, sapphire/core/Object.php etc...

Is this in the front end or the backend? The front end has been tested to scale to 100,000 and performs fine under that sort of scale. Of course you would avoid using DataObject::get('Page'); without any filters since SS will gather all 100,000 pages into 1 object.

The backends a different story, the tree is rather suboptimal at dealing with that many records. Like Ryan M. mentioned ModelAdmin to manage the pages is a good way to go. You can add in versioned to your dataobject so you don't lose any functionality (some widgets and plugins may not work). Scalability is something that is top of the list for 3.0