EcomDev breaks Magento speed record!

POSTED ON Oct 8, 2011 IN in Extensions

I am happy to announce that we released a new FREE Magento extension that will help merchants with huge product databases make their stores SEO friendly by keeping url rewrite index up to date! I think everyone knows that URL rewrite index is the slowest one in Magento, but not anymore… Now it appears to be one of the fastest!

Numbers

Before talking about features of this extension, I’d like to give some benchmark results for our extension.

Hardware used for benchmarks: AMD Athlon(tm) 64 X2 Dual Core Processor 6000+ 3GHz, 8GB DDR2

Magento instances used for calculation of performance:

  • Simple: 120 Skus, 27 Categories, 3 store
  • Usual: 3,912 Skus, 17 Categories, 1 store
  • Large: 31,124 Skus, 197 Categories, 5 stores
  • Huge: 202,628 Skus, 401 Category, 1 store

I tried to measure four full reindex processes for core rewrite indexer, but for Large and Huge instances I was too bored after waiting an hour for first run to complete, so I just killed a process. If someone wants perform such benchmarks on similar server machine, I will add results to the table.

1st run was made on clean url rewrite table, e.g. without any prepared index data.
2nd, 3rd and 4th are reindex process on existing data.

Results

Instance CodeCoreEcomDev
1st2nd3rd4th1st2nd3rd4th
Simple17,13 sec6.48 sec3.13 sec2.52 sec5.03 sec3.93 sec2.88 sec3.72 sec
Usual107.55 sec116.76 sec18.06 sec22.43 sec14.72 sec7.41 sec4.56 sec6.22 sec
Largetoo longN/AN/AN/A169.19 sec111.67 sec91.42 sec84.38 sec
Hugetoo longN/AN/AN/A346.90 sec178.27 sec196.10 sec192.73 sec

As you see in the result table, difference in performance between our and core implementation is more noticeable on databases with more then 600 Skus.

Features

So does our indexer support all the features of core url rewrite one? Sure, it has such features:

  • Transliteration of accented latin, German, Hebrew, Russian, Ukrainian characters to default latin characters range ([a-z]).
  • Multi-store (language based) url paths for products & categories
  • Nested url paths for categories & categories
  • Nested url path for products that are in anchor categories and not assigned directly (Not supported by Core)
  • Handling duplicated url path with adding index to it (unique-key, unique-key-1, unique-key-2, unique-key-3, etc)

System Requirements

MDBS is not supported for now.

  • MySQL5.0 or higher
  • Magento CE1.4.2,1.5.x,1.6.x

Installation

For now you can obtain this extension only via Git repository:
https://github.com/EcomDev/EcomDev_UrlRewrite

I will upload an extension to Magento Connect when come back from my Vacation, that will be from Oct 10th till Oct 14th.

If you have any ideas or features you would like to add to the extension, you can use Issue Tracker on GitHub.

Ivan Chepurnyi
Magento guru / System architect
Ivan started as Magento Core developer in early 2007, since that time he already has 6 years of experience in different areas of Magento development. During all that time he developed enormous amount of modules and customizations, so now almost every dark corner in Magento functionality is investigated by him. He can’t keep that knowledge in secret, that why he's sharing it with the community and helps finding the way out of Magento complexity maze.

6 Responses to “EcomDev breaks Magento speed record!”

  1. i’ll try that out :) in a sec

  2. Nice! Looking forward to try it.

  3. I gave this extension a try on 1.4.1.1 and realize it was not supported, moved to test it on 1.6.0.0 I get this error during installation.

    Moved as an issue to github. All the error trace were removed from the comment. Ivan

  4. Another thing I noticed is that installation script doesnt have drop table if not exist, which means if someone want to reinstall the extension he has to run:

    DROP TABLE `ecomdev_urlrewrite_category_relation`, `ecomdev_urlrewrite_category_request_path`, `ecomdev_urlrewrite_category_url_key`, `ecomdev_urlrewrite_duplicate`, `ecomdev_urlrewrite_duplicate_aggregate`, `ecomdev_urlrewrite_duplicate_increment`, `ecomdev_urlrewrite_duplicate_key`, `ecomdev_urlrewrite_duplicate_updated`, `ecomdev_urlrewrite_product_relation`, `ecomdev_urlrewrite_product_request_path`, `ecomdev_urlrewrite_product_url_key`, `ecomdev_urlrewrite_rewrite`, `ecomdev_urlrewrite_root_category`, `ecomdev_urlrewrite_transliterate`;
    
  5. Apart from that the extension has good potential, keep up the good work!