4

After using EE 1.12 for a while I migrate to EE 1.13.1, using the default new backend Mage_Cache_Backend_File.

After a new order or a catalog modification, the whole FPC expire completely (all categories and products).

I understand that after an order or catalog modification the related product and categories's cache should be refresh or invalidated, but not the entire FPC.

Any idea what i'm doing wrong?

Thanks

UPDATE

Looking in Enterprise/PageCache/etc/config.xml

The adminhtml event "catalogrule_after_apply" trigger "cleanCache()" which delete my FPC. By removing this event my FPC is not deleted after I update a product from the admin. Only the corresponding cache are correctly deleted.

Still have the issue, for new order that invalidate my whole FPC.

  • Do you have xdebug available for testing? I did some tests on a vanilla 1.13.1 install and did not see any flushing of the whole FPC upon a new order placement (used checkmo as payment). The tags that are being flushed are those related to the quote. And, but only if the last item of a product is sold, the tags for the productId and its related categories. Perhaps some 3rd party module isn't playing nice? A good way to debug this is to set a debug point in the clean method of Mage_Cache_Backend_File. This will generate information about which tags are being purged from the cache. – Tim Hofman Mar 1 '14 at 21:49
  • Use memcache or preferably redis (since its now supported in 1.13) github.com/colinmollenhour/Cm_Cache_Backend_Redis keep in mind of enterprise.xml instead of local.xml for FPC data store. "Uses transactions to prevent race conditions between saves, cleans or removes causing unexpected results." – B00MER Mar 22 '14 at 1:26
1

I assume the clearing happens when an order is placed because the inventroy is updated.

If you look at the config.xml for enterprise_pagecache you will see the following.

<cataloginventory_stock_full_reindex>
    <observers>
        <enterprise_pagecache>
            <class>enterprise_pagecache/observer_index</class>
            <method>invalidateCacheAfterFullReindex</method>
        </enterprise_pagecache>
    </observers>
</cataloginventory_stock_full_reindex>

It would appear that when the stock is updated after an order the the over ridding of the indexer for enterprise takes over.

<index>
    <indexer>
        <cataloginventory_stock>
            <model>enterprise_cataloginventory/index_dummy</model>
            <action_model>
                <changelog>enterprise_cataloginventory/index_action_refresh_changelog</changelog>
                <all>enterprise_cataloginventory/index_action_refresh</all>
            </action_model>
            <index_table>cataloginventory_stock_status</index_table>
            <sort_order>30</sort_order>
        </cataloginventory_stock>
    </indexer>
</index>

It looks like the event and method that actually call the reindex processes and this the cache clearing is sales_model_service_quote_submit_success -> reindexQuoteInventory

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.