22975 Posts in 11620 Topics by 2826 members
|Go to End|
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.
25 February 2011 at 10:47am
You'll probably want to look into ModelAdmin then.
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
|Go to Top|