1. 15 Feb, 2019 12 commits
  2. 14 Feb, 2019 4 commits
  3. 13 Feb, 2019 5 commits
  4. 12 Feb, 2019 1 commit
    • Arnaud Fontaine's avatar
      ZODB Components: Likewise Document, add Mixin (erp5.component.mixin) and... · e84d2b51
      Arnaud Fontaine authored
      ZODB Components: Likewise Document, add Mixin (erp5.component.mixin) and Interface (erp5.component.interface).
      
      * One Mixin/Interface class per ZODB Component.
        => Already the case for FS Mixin, not for Interfaces.
      * ZODB Components module name ('reference' property) and class name:
        + Mixin: FooMixin.
        + Interface: IFoo.
      
      Rationale:
        + Avoid current FS hacks: registry (Mixins, mixin_class_registry) or import
          all classes explicitly in __init__.py (Products.ERP5Type.interfaces).
        + Consistent naming.
        + Consistent with ZODB Documents Components.
      
      Also, modify pylint checker to handle Zope Interfaces:
        + E: 4, 0: Inheriting 'Interface', which is not a class. (inherit-non-class)
        + E: 5, 2: Method has no argument (no-method-argument)
      e84d2b51
  5. 11 Feb, 2019 3 commits
  6. 08 Feb, 2019 1 commit
  7. 07 Feb, 2019 4 commits
  8. 05 Feb, 2019 8 commits
    • Julien Muchembled's avatar
      4b7acaa7
    • Julien Muchembled's avatar
      CMFActivity: remove old skin if any · afaa9d19
      Julien Muchembled authored
      afaa9d19
    • Julien Muchembled's avatar
      CMFActivity: drop DTML completely and use consecutive uids when possible · d64887cb
      Julien Muchembled authored
      This moves the remaining DTML queries to Python, dropping the 'activity' skin.
      
      Dealing with conflicts of uids is easier if the inserted uids are consecutive:
      now, only 1 random value is generated, as base uid. This also preserves the
      order of insertion, which is wanted for performance reasons:
      - No more random write in the primary index.
      - When modifying several lines of several documents, 1 document being processed
        at a time, we'd like that any grouped activity (usually indexation) follows
        the same order, so that a processing node prefer many lines from a few
        documents instead of mixing lines from too many documents at the same time.
        This is usually better for caches.
      d64887cb
    • Julien Muchembled's avatar
      CMFActivity: speed up console activity watcher · bcaf44a4
      Julien Muchembled authored
      Average age of activities is dropped because it would become
      too complicated to implement and it's useless information.
      bcaf44a4
    • Julien Muchembled's avatar
      CMFActivity: remove processing/processing_date columns and improve watchers · 499d8f8b
      Julien Muchembled authored
      The original goal was to improve performance by removing the
      `processing_node_processing` index and the queries that modified
      these 2 useless columns.
      499d8f8b
    • Julien Muchembled's avatar
      CMFActivity: do not refresh view too often when checking messages dependencies · a32c8a42
      Julien Muchembled authored
      The root call to getExecutableMessageList (i.e. the one from distribute)
      is fast enough and won't hold old revisions of the database for too long.
      It is also completely read-only so it won't lock anything.
      
      This caused useless communication with the server.
      a32c8a42
    • Julien Muchembled's avatar
    • Julien Muchembled's avatar
      CMFActivity: validate a message with a single SQL request per queue · 7e387bcb
      Julien Muchembled authored
      As shown in the following example, on a big catalog table,
      MariaDB is able to use several indices at the same time
      ('...' are obfuscated unique values):
      
        > analyze select SQL_NO_CACHE uid, relative_url from catalog where reference='...' OR relative_url='...';
        +------+-------------+---------+-------------+------------------------+------------------------+---------+------+------+--------+----------+------------+--------------------------------------------------+
        | id   | select_type | table   | type        | possible_keys          | key                    | key_len | ref  | rows | r_rows | filtered | r_filtered | Extra                                            |
        +------+-------------+---------+-------------+------------------------+------------------------+---------+------+------+--------+----------+------------+--------------------------------------------------+
        |    1 | SIMPLE      | catalog | index_merge | Reference,relative_url | Reference,relative_url | 768,767 | NULL |    2 |   2.00 |   100.00 |     100.00 | Using union(Reference,relative_url); Using where |
        +------+-------------+---------+-------------+------------------------+------------------------+---------+------+------+--------+----------+------------+--------------------------------------------------+
        1 row in set (0.00 sec)
      
      So mixing different dependency types with OR should be fine
      (no need to split into more subqueries and join with UNION).
      7e387bcb
  9. 04 Feb, 2019 2 commits