An error occurred fetching the project authors.
- 20 Dec, 2011 1 commit
-
-
Vincent Pelletier authored
-
- 26 Oct, 2011 1 commit
-
-
Julien Muchembled authored
-
- 03 Sep, 2011 1 commit
-
-
Julien Muchembled authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2816 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 27 May, 2011 2 commits
-
-
Julien Muchembled authored
- Previous implementation was not able to import transactions with many small objects, the client for faster to send a store request than to process its answer. If X is the difference of time for these 2 operations, the maximum number of objects a transaction could contain was CRITICAL_TIMEOUT / X. And HasLock feature can't act as a workaround because it is not working yet. - Change API of 'on_timeout', which currently only used by HasLock. - Stop pinging when we wait for an answer. This wastes resources and would never recover any bad state. - Make client connections send pings when they are idle instead. This implements keep-alive feature for high availability. Start with an non-configurable period of 60 seconds. - Move processing of ping/pong to handlers. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2762 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Julien Muchembled authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2761 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 29 Apr, 2011 1 commit
-
-
Julien Muchembled authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2746 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 27 Apr, 2011 1 commit
-
-
Julien Muchembled authored
Main reason is that it's difficult to know in advance which side really closes the connection. Network events can be chaotic and this could lead to many race conditions. Thus, handler can be used to update any database that is somewhat redundant to the connection status, i.e. node status usually. Safely and less duplicated code. This change is motivated by recurrent random failures during election. An example of race condition was that 2 fully connected master could close the extra connection (the primary -> secondary one) at the same time. In order to stabilize lower-level code and start with reliable election process, code has also been simplified to not care about node states. All connections without exception are closed at the end of the election and states are then updated 1 by 1 by identification handler. Note that during election, there may be 2 connection per node, which makes difficult to update node states by connectionFailed/connectionClosed events. timeoutExpired & peerBroken are dropped as they are unused for the moment. A new API should be designed so that connectionClosed know the reason of the close. BROKEN state becomes unused. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2732 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 21 Apr, 2011 1 commit
-
-
Julien Muchembled authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2729 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 24 Mar, 2011 3 commits
-
-
Julien Muchembled authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2695 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Julien Muchembled authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2694 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Julien Muchembled authored
This fixes tests on Python 2.7 git-svn-id: https://svn.erp5.org/repos/neo/trunk@2693 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 23 Mar, 2011 1 commit
-
-
Julien Muchembled authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2685 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 21 Mar, 2011 1 commit
-
-
Julien Muchembled authored
- remove useless calls to 'bool' - small optimizations in lib.protocol.Packet.__init__ - code simplification in IdentificationHandler - fix typo in docstring - neo/tests/__init__.py: 2 lines were indented with 2-spaces instead of 4-spaces git-svn-id: https://svn.erp5.org/repos/neo/trunk@2671 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 17 Jan, 2011 1 commit
-
-
Olivier Cros authored
In order to prepare the eggification of the different neo parts, we created a new neo/lib module, containing all of the main neo's functions. It allows to make neo a virtual namespace, and so not containing module code anymore. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2615 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 02 Nov, 2010 2 commits
-
-
Vincent Pelletier authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2399 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Vincent Pelletier authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2397 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 01 Nov, 2010 1 commit
-
-
Vincent Pelletier authored
There is no reason why we wouldn't see this when runing individual tests, I think. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2392 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 27 Aug, 2010 1 commit
-
-
Grégory Wisniewski authored
Master transactions objects are instanciated during the finish phase only, which means that any transaction known by the master is being committed. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2237 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 24 Aug, 2010 1 commit
-
-
Vincent Pelletier authored
This causes garbage collection problems, as BaseConnection instances also hold a reference to HandlerSwitcher instance. It is unclear why it fails, as microbenchs show this should not be a problem for gc. Also, move loggers out of HandlerSwitcher.setHandler to avoid passing a connection parameter just for them. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2222 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 07 Jun, 2010 1 commit
-
-
Vincent Pelletier authored
Make it optional, to suit "ping" use, but check that it's always passed except in that special case. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2143 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 13 May, 2010 1 commit
-
-
Vincent Pelletier authored
Such function is provided when message is queued for send when an answer is expected, and is called when the answer is not arrived after expiration of the timeout delay. Depending on the return value of this callback, the timeout is ignored (True) or passed through (False). Also, move code to refresh next timeout value to a separate function, for reusability. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2106 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 28 Apr, 2010 2 commits
-
-
Vincent Pelletier authored
This simplifies code (and I should have done it this way from the beginning). Keep the lock check wrapper in MT subclass as it should have been added in r2025 anyway. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2036 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Vincent Pelletier authored
When a handler sends a request, always queue the response for handling within the same handler, possibly delaying further a pending handler switch. This is for example required to properly complete identification between master nodes, as the connecting master node might exit election phase before receiving peer's AnswerPrimary when peer happens to be the primary. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2035 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 27 Apr, 2010 3 commits
-
-
Vincent Pelletier authored
If a first packet is sent and its answer received in time, then a second packet is sent after more than PING_DELAY seconds, a ping will be emitted right after that second packet, because _ping_time was still set. This change resets it when there is no pending requests. Also, as required to have a consistent view of _handlers, check that lock is properly held in the MT variant of the class. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2033 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Vincent Pelletier authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2032 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Vincent Pelletier authored
If this check fails, hard and soft checks will produce different results. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2031 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 23 Apr, 2010 1 commit
-
-
Vincent Pelletier authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2011 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 22 Apr, 2010 1 commit
-
-
Vincent Pelletier authored
There are 2 distinct kinds of timeout events: - an unresponsive node This is a connection-level timeout. This is handled by the Timeout class, triggering pings and monitoring incoming data to decide when remote node is considered dead. - a "too long" processing from an otherwise responsive node This is a per-request timeout. This is handled by the HandlerSwitcher class, triggering only disconnections when an answer takes too long to arrive (historical behaviour, not so useful when exchanging with a single-threaded peer). Previous implementation mixed both, and had shortcomings (ping would timeout almost immediately, it was not possible to tell which message caused a timeout). Update tests. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2009 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 19 Apr, 2010 1 commit
-
-
Vincent Pelletier authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2002 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 26 Mar, 2010 1 commit
-
-
Grégory Wisniewski authored
ReadBuffer join received strings only when all requested data is available. This avoid many useless data copies in case of big packets. The gain factor is about 50x for a 25MB packet. git-svn-id: https://svn.erp5.org/repos/neo/trunk@1962 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 08 Mar, 2010 1 commit
-
-
Grégory Wisniewski authored
This class is not used as the only multithreaded node does not accept incoming connections. git-svn-id: https://svn.erp5.org/repos/neo/trunk@1929 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 05 Mar, 2010 1 commit
-
-
Grégory Wisniewski authored
- Rename IdleEvent to IdleTimeout from event.py to connection.py - Move connection-related logic in Connection itself and keep only time-related logic in IdleTimeout - Clarify differences between hard and soft timeouts. - Remove (unused) 'additional_timeout' from ask() - Remove (now useless) event_dict attribute from Connection. - Remove external ping support, as the answer can not be handled at application level. - Expectation after a new incoming connection moved from Handler to Connection. - Fix (and clean) related tests. git-svn-id: https://svn.erp5.org/repos/neo/trunk@1895 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 01 Mar, 2010 3 commits
-
-
Grégory Wisniewski authored
Remove MT* tests as then are just copy/paste of non-MT tests. git-svn-id: https://svn.erp5.org/repos/neo/trunk@1885 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Vincent Pelletier authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@1879 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Grégory Wisniewski authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@1875 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 26 Feb, 2010 1 commit
-
-
Vincent Pelletier authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@1869 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 23 Feb, 2010 2 commits
-
-
Grégory Wisniewski authored
- Allow a fine-grained test suite. - Avoid shadow internal method definitions. - Remove some meaningless checks git-svn-id: https://svn.erp5.org/repos/neo/trunk@1846 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Grégory Wisniewski authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@1842 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 10 Feb, 2010 1 commit
-
-
Grégory Wisniewski authored
Fix related tests. git-svn-id: https://svn.erp5.org/repos/neo/trunk@1699 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 01 Feb, 2010 1 commit
-
-
Grégory Wisniewski authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@1576 71dcc9de-d417-0410-9af5-da40c76e7ee4
-