1. 06 Feb, 2018 14 commits
  2. 05 Feb, 2018 18 commits
  3. 02 Feb, 2018 8 commits
    • Vincent Pelletier's avatar
      testRule: Instead of (unreliably) preventing indexation, just unindex. · 483bcf62
      Vincent Pelletier authored
      Intercepting an indexation activity is not reliable, as multiple indexation
      activities may have been spawned, and the wrong may be intercepted here.
      So instead, explicitly unindex the document intended to not exist in
      catalog.
      483bcf62
    • Vincent Pelletier's avatar
      CMFActivity: Make "flush" support ActivityRuntimeEnvironment. · 3be9e1c3
      Vincent Pelletier authored
      This is a very minimal support, as "flush" is kind of deprecated, only
      surviving because tests need to be able to tell which activity may
      execute, and there is currently no other way to support this.
      3be9e1c3
    • Vincent Pelletier's avatar
      ActivityRuntimeEnvironment: Become a context manager. · 248c3a2b
      Vincent Pelletier authored
      Avoids logic duplication on how to store the environment.
      Avoids relying on ERP5 products (for whatever it's worth anyway).
      248c3a2b
    • Vincent Pelletier's avatar
      4985f1ae
    • Vincent Pelletier's avatar
      Person: Fix _setReference modification detection. · 19dc4415
      Vincent Pelletier authored
      Also, simplify docstring.
      19dc4415
    • Vincent Pelletier's avatar
      Person: Do not hide import errors on ERP5Security. · 969972ca
      Vincent Pelletier authored
      Only PluggableAuthService import may not be importable, and is decisive
      in importing from ERP5Security, which must then work.
      969972ca
    • Vincent Pelletier's avatar
      CMFActivity: Take activity age in queue priority. · 9ec2259e
      Vincent Pelletier authored
      Just like age is taken into account inside each activity queue.
      9ec2259e
    • Vincent Pelletier's avatar
      ERP5Type.Core.Folder.recurseCallMethod: Do not change priority for re-call · 24df3ec5
      Vincent Pelletier authored
      Increasing priority value (hence making the activity execution priority
      lower) means that all previously-spawned activities will have at least
      started execution before the next batch of activities begins being
      prepared. During that preparation, more activities will end, meaning there
      is then unused processing node time, decreasing processing efficiency.
      
      By making re-call activity have the same priority as spawned activities
      will reduce this delay by making the re-call activity candidate for
      execution at the same time as the latest activity batch, without leading
      to activity queue size increase: older activities within a given priority
      range still get precedence, so any older group will tend to finish before
      more batches get spawned.
      
      Measures on indexing 700k documents with 20 activity nodes:
      - priority + 1: 84k documents indexed in the first 5 minutes,
        47k in the last 5 minutes. Average: 64k/5 minutes
      - priority: 101k documents indexed in the first 5 minutes,
        97k in the last 5 minutes. Average: 99k/5 minutes
      Peak speed (which is the initial speed) is 20% higher.
      As the slowdown rate (likely coming from lower-priority activities piling
      up in the message_queue table) is also much lower in the second case
      (900 fewer documents indexed on each 5 minutes increment instead of 4k),
      the overall average speed improves by 54%.
      24df3ec5