On one larger project have been using dev version of search_api_solr (checkout at this commit specifically ).
Decided to switch to a stable release and make an upgrade to 8.x-2.3.

Index info:
* Using direct indexing (when entity are created, immediately are tracked and indexed - on web request)
* 4 indexes (smallest 100k, largest 6+ million entries)

With dev version and small tweaks real-time indexing had performed OK (no performance drawbacks, even with biggest indexe)

With version 2.3 and the introduction of search_api_solr_search_api_items_indexed
* Each call off "search_api_solr_search_api_items_indexed" create query between 1-2 seconds.
* With that MySQL query times doubled on average as NewRelic data suggest (it's high traffic site, so this is significant usage increase)

Temporary fix: disable immediate Index - using only cron indexing.

But seems rather large performance drawback - https://www.drupal.org/node/3009282
I will definitely take a closer look tomorrow on search_api_solr_search_api_items_indexed (a little bit late here :-D).

It's possible to make a different approach there? what exactly is fixed with the introduction of this hook, haven't got a full grasp of the problem from the linked issue?

CommentFileSizeAuthor
#3 3021067.patch2 KBmkalkbrenner
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

valic created an issue. See original summary.

mkalkbrenner’s picture

Thanks for pointing this out. We should add a config option to disable the feature (if you don't use streaming expressions) or to set a hardcoded limit or to do it at query time if required or to do it as cron task.

mkalkbrenner’s picture

Priority: Critical » Major
Status: Active » Needs review
FileSize
2 KB

  • mkalkbrenner committed b410a21 on 8.x-3.x
    Issue #3021067 by mkalkbrenner, valic: Performance penalties on larger...
mkalkbrenner’s picture

Status: Needs review » Fixed
mkalkbrenner’s picture

Version: 8.x-2.3 » 8.x-3.x-dev

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.