- 29 Jun, 2015 1 commit
-
-
Julien Muchembled authored
-
- 24 Jun, 2015 8 commits
-
-
Julien Muchembled authored
When the connection to the primary master node is lost, the node manager does not have anymore a reliable list of running nodes, so iterateForObject() must not retry any cell.
-
Julien Muchembled authored
-
Julien Muchembled authored
-
Julien Muchembled authored
-
Julien Muchembled authored
-
Julien Muchembled authored
-
Julien Muchembled authored
Since transactions have metadata like a description, it may not be useless to allow them. But the behaviour of FileStorage is to silently drop them, so we may have to do the same in the future. An application that is not supposed to commit empty transactions should write its own unit test to prevent this.
-
Julien Muchembled authored
This happened between storage nodes of different clusters because they're not informed about their state, e.g. a dead upstream storage node. In any case, logs were flooded at 100% cpu usage.
-
- 23 Jun, 2015 3 commits
-
-
Julien Muchembled authored
Binding a port actually does not reserve it. And on the other side, a bound socket can't be bound again. So it could bind a port twice, warn about this, and then raise EINVAL when trying to bind again. Apart from this, the global lock didn't even prevent conflict with another NEO test run when tests restart nodes. So better keep it simple.
-
Julien Muchembled authored
-
Julien Muchembled authored
-
- 15 Jun, 2015 1 commit
-
-
Julien Muchembled authored
Limiting the size of data.value column to 16 MB saves 1 byte by switching to MEDIUMBLOB, and it avoid the need of big redo logs in InnoDB.
-
- 09 Jun, 2015 3 commits
-
-
Julien Muchembled authored
-
Julien Muchembled authored
-
Julien Muchembled authored
This fixes the case of an application that would store 2 values X & Y where NEO internally compresses X into a value identical to Y.
-
- 21 May, 2015 1 commit
-
-
Julien Muchembled authored
-
- 05 May, 2015 1 commit
-
-
Julien Muchembled authored
-
- 26 Apr, 2015 2 commits
-
-
Julien Muchembled authored
-
Julien Muchembled authored
This speeds up 2 operations that were horribly slow (linear scan of source database, from the beginning or from the end): - read access to not yet migrated data - resumption (restart of storage node whereas import was not finshed) Testing will tell if this patch is enough, or if more efficient solutions are required, like: - building a preliminary {tid->file_pos} index while the source DB is still in use (in this case, NEO may have to deal with a small gap at the end) - disabling ZODB features requiring data_serial (undo)
-
- 13 Jan, 2015 1 commit
-
-
Julien Muchembled authored
-
- 09 Dec, 2014 1 commit
-
-
Julien Muchembled authored
Before it was only possible to specify them in a configuration file.
-
- 05 Dec, 2014 6 commits
-
-
Julien Muchembled authored
Value must be cast as integer. The whole configuration part should be reviewed to use argparse and avoid duplicated code.
-
Julien Muchembled authored
-
Julien Muchembled authored
They're decompressed automatically to temporary files.
-
Julien Muchembled authored
The use of ZODB.broken was completely wrong so previous code only worked if NEO could import all classes used by the application.
-
Julien Muchembled authored
-
Julien Muchembled authored
-
- 07 Nov, 2014 5 commits
-
-
Julien Muchembled authored
-
Julien Muchembled authored
-
Julien Muchembled authored
-
Julien Muchembled authored
-
Julien Muchembled authored
RTMIN+1 & RTMIN+2 signals, which were previously used for debugging, have been remapped to RTMIN+2 & RTMIN+3 No journal on disk anymore because this is incompatible with the rename+reopen way to rotate logs, and we want to support logrotate. Of course in case of crash the log may be corrupt or entries may be lost, but we currenty don't think NEO logs would be useful to debug such failure.
-
- 27 Oct, 2014 1 commit
-
-
Julien Muchembled authored
This commit only moves code from setup() to _setup()
-
- 30 Jul, 2014 5 commits
-
-
Julien Muchembled authored
-
Julien Muchembled authored
-
Julien Muchembled authored
The only purpose of committing during import is to not restart from the beginning in case of interruption.
-
Julien Muchembled authored
If not implemented, this should not result in a fatal error that kills the storage. Instead of that, a new error packet is sent so that the exception is raised in the client.
-
Julien Muchembled authored
-
- 25 Jul, 2014 1 commit
-
-
Julien Muchembled authored
-