1. 14 Jan, 2022 3 commits
    • Jérome Perrin's avatar
      ERP5Type: make TempBase use TemporaryDocumentMixin · 86951172
      Jérome Perrin authored
      Now that TemporaryDocumentMixin and TempBase implementation details have
      been made consistent, there's no reason to duplicate code.
      
      This also make TempBase uses TemporaryDocumentMixin of __setstate__, so
      TempBase have more sane behaviour when being pickled.
      86951172
    • Jérome Perrin's avatar
      ERP5Type: Normalize the implementations of TemporaryDocumentMixin and TempBase · b2e03135
      Jérome Perrin authored
      Products.ERP5Type.mixin.temporary.TemporaryDocumentMixin and
      Products.ERP5Type.Base.TempBase implementations were a bit different:
      
       - getTitle was acquiring title in TemporaryDocumentMixin, although this
       was probably never acquiring in practice because most documents have
       a title.
       - isIndexable was an int and not a PropertyConstantGetter like it is
       supposed to be.
      
      Change TemporaryDocumentMixin to behave like TempBase here.
      
      =
      b2e03135
    • Jérome Perrin's avatar
      core: support storing collections of ERP5 documents in session · 490a56ba
      Jérome Perrin authored
      Before f359f267 (Use Distributed Cache for Session, 2021-07-19)
      when we were using RAM cache for sessions, it was possible to store
      collections (eg. dicts or lists) with reference to ERP5 documents in
      session, but after this change, using such collections was refused
      with error:
      
          TypeError: Can't pickle objects in acquisition wrappers.
      
      This change restore the possibility of using collections, by being
      more clever when we store and retrieve collections
      490a56ba
  2. 13 Jan, 2022 9 commits
  3. 12 Jan, 2022 2 commits
  4. 11 Jan, 2022 1 commit
  5. 07 Jan, 2022 9 commits
  6. 06 Jan, 2022 2 commits
  7. 04 Jan, 2022 1 commit
  8. 03 Jan, 2022 4 commits
  9. 31 Dec, 2021 4 commits
  10. 28 Dec, 2021 3 commits
  11. 27 Dec, 2021 1 commit
  12. 23 Dec, 2021 1 commit
    • Vincent Pelletier's avatar
      Products.CMFActivity.ActivityTool: Improve behaviour on single-node instances. · 041642d0
      Vincent Pelletier authored
      - Ignore node preference when spawning activities.
        Otherwise, activities which are not spawned with a preferred node will
        get an effective priority penalty compared to same-priority activities
        spawned *with* a node preference, despite both being to execute by the
        same processing node.
      - Break activity processing loop when the current processing node is also
        the activity validation node.
        This avoids pathological cases of activity accumulation, for example when
        reindexing an entire site: _recurseCallMethod is spawned in
        processing_node=0, but immediateReindexObject is spawned in
        processing_node=-1 because of serialization_tag dependency, so with such
        loop _recurseCallMethod will be executed over and over, piling indexation
        activities up until _recurseCallMethod does not self-respawn.
        In turn, such activity accumulation lead to an increased overhead, and
        decreased activity processing efficiency.
        This may also allow multi-node instances to more reliably use the
        validation node as a processing node.
      
      The cost for multi-node instances of these changes should be absolutely
      minimal (no extra IO necessary, minimal extra code).
      A possible drawback on single-node instances is that tic period may become
      more important because process_timer will return more often.
      041642d0