An error occurred fetching the project authors.
- 05 Jun, 2020 1 commit
-
-
Jérome Perrin authored
-
- 25 May, 2020 1 commit
-
-
Vincent Pelletier authored
-
- 26 Dec, 2019 1 commit
-
-
Vincent Pelletier authored
uids are a way one can signal that different objects (from a ZODB point of view, and hence an oid point of view) are actually to be considered as the same objet (from a higher abstration point of view). For example, another variant of the same object, as imported over an older variant. In turn, this allows extending the protection to activities spawned from brains, and not just from live objects.
-
- 14 Nov, 2019 1 commit
-
-
Julien Muchembled authored
See commit a93ea5f1.
-
- 13 Nov, 2019 1 commit
-
-
Julien Muchembled authored
This is a mirror of the late import of getCurrentNode within product/ERP5Type/Core/Folder.py Both are required depending on which module is imported first.
-
- 13 Sep, 2019 2 commits
-
-
Vincent Pelletier authored
Simpler, and reduces the exposure of exc_info (which can be tricky to use in other contexts).
-
Vincent Pelletier authored
-
- 25 Jul, 2019 1 commit
-
-
Vincent Pelletier authored
This property is only conditionally set, which causes distracting error when something goes wrong. If we really want to check that the expected code path was followed there has to be a better check and a more debugging- friendly error than an AttributeError.
-
- 28 Jun, 2019 1 commit
-
-
Julien Muchembled authored
-
- 24 Jun, 2019 2 commits
-
-
Bryton Lacquement authored
-
Bryton Lacquement authored
zope.globalrequest is a new dependency of Zope 4 and it is already used by the backported WSGIPublisher.
-
- 24 May, 2019 1 commit
-
-
Vincent Pelletier authored
-
- 22 May, 2019 2 commits
-
-
Vincent Pelletier authored
Not all lock uses in this code fit context managers, but use them where it does.
-
Vincent Pelletier authored
Even though it should not raise, a stale lock would be a serious issue.
-
- 21 May, 2019 2 commits
-
-
Vincent Pelletier authored
-
Vincent Pelletier authored
The intent is to be able to tell that an independently-defined group of activity nodes may execute given activity, and no other node. This allows more flexible parallelism control than serialization_tag.
-
- 13 Mar, 2019 1 commit
-
-
Julien Muchembled authored
The fixes a missing rename in commit cee3e728.
-
- 21 Feb, 2019 2 commits
-
-
Julien Muchembled authored
-
Julien Muchembled authored
The goal is to make better use of the ZODB Storage cache. It is common to do processing on a data set in several sequential transactions: in such case, by continuing execution of these messages on the same node, data is loaded from ZODB only once. Without this, and if there are many other messages to process, processing always continue on a random node, causing much more load from ZODB. To prevent nodes from having too much work to do, or too little compared to other nodes, this new parameter is only a hint for CMFActivity. It remains possible for a node to execute a message that was intended for another node. Before this commit, a processing node selects the first message(s) according to the following ordering: priority, date and now: priority, node_preference, date where node_preference is: -1 -> same node 0 -> no preferred node 1 -> another node The implementation is tricky for 2 reasons: - MariaDB can't order this way in a single simple query, so we have 1 subquery for each case, potentially getting 3 times the wanted maximum of messages, then order/filter on the resulting union. - MariaDB also can't filter efficiently messages for other nodes, so the 3rd subquery returns messages for any node, potentially duplicating results from the first 2 subqueries. This works because they'll be ordered last. Unfortunately, this requires extra indices. In any case, message reservation must be very efficient, or MariaDB deadlocks quickly happen, and locking an activity table during reservation reduces parallelism too much. In addition to better cache efficiency, this new feature can be used as a workaround for a bug affecting serialiation_tag, causing IntegrityError when reindexing many new objects. If you have 2 recursive reindexations for both a document and one of its lines, and if you have so many messages than grouping is split between these 2 messages, then you end up with 2 nodes indexing the same line in parallel: for some tables, the pattern DELETE+INSERT conflicts since InnoDB does not take any lock when deleting a non-existent row. If you have many activities creating such documents, you can combine with grouping and appropriate priority to make sure that such pair of messages won't be executed on different nodes, except maybe at the end (when there's no document to create anymore; then activity reexecution may be enough). For example: from Products.CMFActivity.ActivityTool import getCurrentNode portal.setPlacelessDefaultReindexParameters( activate_kw={'node': 'same', 'priority': priority}, group_id=getCurrentNode()) where `priority` is the same as the activity containing the above code, which can also use grouping without increasing the probability of IntegrityError.
-
- 05 Feb, 2019 4 commits
-
-
Julien Muchembled authored
-
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.
-
Julien Muchembled authored
-
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).
-
- 18 Jan, 2019 2 commits
-
-
Julien Muchembled authored
-
Julien Muchembled authored
-
- 03 Jul, 2018 2 commits
-
-
Vincent Pelletier authored
Reduces code duplication.
-
Vincent Pelletier authored
portal_activities contains documents which need to be (and are) indexed. For consistency, the tool itself should be indexable.
-
- 20 Jun, 2018 1 commit
-
-
Vincent Pelletier authored
-
- 16 May, 2018 1 commit
-
-
Roque authored
-
- 26 Apr, 2018 1 commit
-
-
Roque authored
- getCurrentNode method can be directly imported from CMFActivity - corresponding unittests /reviewed-on nexedi/erp5!647
-
- 06 Mar, 2018 2 commits
-
-
Hardik Juneja authored
-
Hardik Juneja authored
This commit: - Adds a new Activity called "SQLJoblib" - Adds a Backend to be used by joblib - Uses OOBTree to store results instead of ConflictFreeLog - Adds a getResultDict API to fetch resut Dict It uses the original work from rafael@nexedi.com and loic.esteve@inria.fr
-
- 19 Feb, 2018 1 commit
-
-
Vincent Pelletier authored
-
- 29 Jun, 2017 1 commit
-
-
Kazuhiko Shiozaki authored
otherwise Localizer will not work in grouped activity.
-
- 21 Apr, 2017 1 commit
-
-
Vincent Pelletier authored
This makes a difference for SQLDict as not all messages are accepted for insertion.
-
- 23 Dec, 2016 1 commit
-
-
Vincent Pelletier authored
-
- 12 Jan, 2016 3 commits
-
-
Kazuhiko Shiozaki authored
-
Kazuhiko Shiozaki authored
-
Kazuhiko Shiozaki authored
-
- 28 Oct, 2015 1 commit
-
-
Kazuhiko Shiozaki authored
-