Hacker News new | past | comments | ask | show | jobs | submit login

I did the ops-side of a large Magento site. It was a fucking nightmare... and I handled .NET and Java once too.

We had 3 cache servers with 128GB of ram EACH just to cache the complete shit out of Magento pages. Each user had their own keyspace in the cache. _that's_ how bad Magento is.

When cache would go down because of a network partition or something, Magento would fallback to rendering and our application web servers would melt.




Each user... So one for "not logged in" and one for each known id? That's the laziest possible implementation that can provide any variety of benefit. Caching on a per-actual-visitor basis is just a waste of ram.

Fwiw we partial view cache on our platform and achieve a 90%+ hit rate on most sites. Some run many user-variable-specific (referrer,cookie,stored data) site versions which drops the cache hit rate, but is worth the extra cpu and cost for the conversions. Little performance hit as the object data to render is already in memcached usually, pre-warmed by queued parallel processes.

Of course, we evolved this in response to "oh crap the web tier is burning", but I just can't comprehend how magento haven't come up with something better than what you describe. Perhaps they haven't experienced the pain of clients bearing down hard on you while Rome burns first hand, and don't understand the importance.


Their answer was "oh shit, EAV is cool until it sucks, lets make flat tables".

Those flat tables really don't help much... (just profile the a request made to them and you still see the insanity that kcachegrind can generate).

They also didn't think about stores that have a lot of attributes. We had over 650. That means we had MySQL tables with 650+ columns.

Then there are SKUs. We had hundreds of thousands. Now there are HUGE tables with LOTS of columns that needs to be indexed on a regular basis because products and more attributes are being added. Reindexing takes hours.

Magento is a mess and that's all I have to say about it.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: