Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 31 Mar 2010 09:57:18 +0200] rev 5094
[optimization] traced_selection is used very intensively in debug mode
optimizing it is worth the pain. Basically : don't do stuff unnecessary
when we don't trace anything.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 31 Mar 2010 09:55:19 +0200] rev 5093
[optimization] improve massive write performance by optimizing hooks selection
profiling on some massive deletion showed up that 2/3 of the time was spent
in hooks selection. Those changes make it much more acceptable (through
selection is still not negligeable):
* use one registry for each event, so we've much less hooks to check
when emiting an event as well as no more need for the match_event
selector. This required ability to put one appobject
into several registries, using a __registries__ class attribute.
* check for deprecated .enabled at registry initialization time instead
of at selection time
A very simple HooksManager class has been reintroduce to choose the
right registry on call_hooks.
Those optimisations leads to a ~x3 factor of time necessary to delete
16000 entities.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 31 Mar 2010 09:45:14 +0200] rev 5092
[upgrade] after upgrade, fork command to start instance avoid grave uicfg pb (explicit rules all removed...)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 19:59:56 +0200] rev 5091
merge
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 19:55:20 +0200] rev 5090
[repo creation] removing existing entities of 'single' cardinality relatino should be considered as 'activeintegrity' hook. Also don't disable that category during repo creation to avoid pb such as two default workflows for one entity types
Alexandre Fayolle <alexandre.fayolle@logilab.fr> [Tue, 30 Mar 2010 18:41:17 +0200] rev 5089
merge
Alexandre Fayolle <alexandre.fayolle@logilab.fr> [Tue, 30 Mar 2010 16:29:32 +0200] rev 5088
handle Service Close request correctly (closes #736039)
The windows event self._stop_event was not used, and twisted was not getting a
chance of terminating cleanly by calling its shutdown event handlers (which
would eventually call pyro_unregister). Fixed by calling reactor.stop()
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 17:59:18 +0200] rev 5087
[js form validation] fix case where we've None/null keys in the errors dictionnary
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 17:56:10 +0200] rev 5086
[cleanup] exists imported, use it
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 17:54:28 +0200] rev 5085
[form] CompoundField should not return itself in actual_fields, this avoid error on iliane with 3.7.2 where it's marked as required (from the schema) while value are provided by subfields
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 17:50:09 +0200] rev 5084
[repo] we want a hooks manager and hooks initialized event on quick start (we trigger events such as server_backup / server_restore for instance)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 17:29:03 +0200] rev 5083
[distribution] sql extensions files now have proper extension, fix manifest file
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 14:32:03 +0200] rev 5082
backport stable
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 13:32:01 +0200] rev 5081
[events manager] onevent decorator may be given extra arguments to give to em.bind
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 13:31:21 +0200] rev 5080
[cleanup] some notes
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 13:29:55 +0200] rev 5079
[reload] on registry reloading, we should change class of users of opened session
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 13:28:19 +0200] rev 5078
[appobject imports] don't include __init__ in package's name. See comment for more info
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 13:27:30 +0200] rev 5077
[rset] cubes such as iliane hi-jack rset description by poping some lines from it. Handle this on RepeatList
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 11:18:31 +0200] rev 5076
[undo] basic support for undoing of entity creation / relation addition
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 11:17:50 +0200] rev 5075
[undo] init entity cache when undoing an entity deletion
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 11:17:21 +0200] rev 5074
[undo] consistent is/is_instance_of processing
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 11:15:57 +0200] rev 5073
[repo] don't need rset description on those queries
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 11:15:08 +0200] rev 5072
[cleanup] style fixes, add nodes, 0.2 cents refactorings
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 11:06:13 +0200] rev 5071
[undo] during undoing, call hooks in the [active]integrity and undo categories
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 11:01:34 +0200] rev 5070
[repo] refactor fti operation to use set_operation and a single operation whatever the number of entities to ft index
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 10:57:42 +0200] rev 5069
[querier] introduce RepeatList class, used to optimize size of data returned for result set description
When rql query has no ambiguity, we used to return the same description * N
where N is the size of the result set. Returning RepeatList class avoid
that multiplication.
According to quick benchmark this improve performance for result set whose
size is ~ > 50, has very small penalty for rset < 50, and in any case improve
the size of data to be transfered over the network through pyro connection.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 10:50:46 +0200] rev 5068
[repo] on add entity, set cache as soon as possible + fill type/source cache
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 10:39:16 +0200] rev 5067
[repo] more efficient eid cache operations handling based on set_operation; refactor
* split CleanupEidTypeCache operation into one operation for deleted eids
and another for added eids, and put them in cw.server.hook
* for consistency, move fti unindexing handling from the repository
to the system source
* handling of deleted eids is done in plan execution (ssplanner), no
needs to redo it in *delete_info
-> no more need for _prepare_delete_info method, killed