Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
neoppod
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Iliya Manolov
neoppod
Commits
f180b00e
Commit
f180b00e
authored
Dec 02, 2015
by
Julien Muchembled
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release version 1.6
parent
cd669221
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
77 additions
and
1 deletion
+77
-1
CHANGES
CHANGES
+58
-0
UPGRADE
UPGRADE
+18
-0
setup.py
setup.py
+1
-1
No files found.
CHANGES
View file @
f180b00e
Change History
Change History
==============
==============
1.6 (2015-12-02)
----------------
This release has changes in storage format. The upgrade is done automatically,
but only if the cluster was stopped cleanly: see UPGRADE notes for more
information.
- NEO did not ensure that all data and metadata were written on disk before
tpc_finish, and it was for example vulnerable to ENOSPC errors. In order to
minimize the risk of failures during tpc_finish, the writing of metadata to
temporary tables is now done in tpc_vote. See commit `7eb7cf1`_ for more
information about possible changes on performance side.
This change comes with a new algorithm to verify unfinished data, which also
fixes a bug discarding transactions with objects for which readCurrent was
called.
- The RECOVERING/VERIFYING phases, as well as transitions from/to other states,
have been completely reviewed, to fix many bugs:
- Possible corruption of partition table.
- The cluster could be stuck in RECOVERING or VERIFYING state.
- The probability to have cells out-of-date when restarting several storage
nodes simultaneously has been reduced.
- During recovery, a newly elected master now always waits all the storage
nodes with readable cells to be pending, in order to avoid a split of the
database.
- The last tid/oid could be wrong in several cases, for example after
transactions are recovered during VERIFYING phase.
- neoctl gets a new command to truncate the database at an arbitrary TID.
Internally, NEO was already able to truncate the database, because this was
necessary to make the database consistent when leaving the backup mode.
However, there were several bugs that caused the database to be partially
truncated:
- The master now first stores persistently the decision to truncate,
so that it can recover from any kind of connection failure.
- The cluster goes back to RUNNING state only after an acknowledgment from
all storage nodes (including those without any readable cell) that they
truncated.
- Storage:
- As a workaround to fix holes if replication is interrupted after new data
is committed, outdated cells always restart to replicate from the beginning.
- The deletion of partial transactions during verification didn't try to free
the associated raw data.
- The MySQL backend didn't drop the 'bigdata' table when erasing the database.
- Handshaking SSL connections could be stuck when they're aborted.
- 'neoctl print ids' displays a new value in backup mode: the higher common TID
up to which all readable cells have replicated, i.e. the TID at which the
database would be truncated when leaving the backup mode.
.. _7eb7cf1: http://git.erp5.org/gitweb/neoppod.git/commit/7eb7cf1?js=1
1.5.1 (2015-10-26)
1.5.1 (2015-10-26)
------------------
------------------
...
...
UPGRADE
View file @
f180b00e
NEO 1.6
=======
The `ttrans` table in MySQL/SQLite backends is automatically upgraded at
startup.
However, because the algorithm to verify unfinished data has changed in a way
that such data can not be migrated, a storage node will refuse to start to
if either `ttrans` or `tobj` are not empty.
Therefore, you must first stop NEO cleanly, before upgrading the code. If any
temporary table is not empty, you are requested to restart with an older
version of NEO.
The change in `ttrans` is such that NEO < 1.6 is still usable after a
successful upgrade to NEO >= 1.6, provided you always make sure that `ttrans`
and `tobj` are empty when switching from one to another.
NEO 1.4
NEO 1.4
=======
=======
...
...
setup.py
View file @
f180b00e
...
@@ -54,7 +54,7 @@ else:
...
@@ -54,7 +54,7 @@ else:
setup
(
setup
(
name
=
'neoppod'
,
name
=
'neoppod'
,
version
=
'1.
5.1
'
,
version
=
'1.
6
'
,
description
=
__doc__
.
strip
(),
description
=
__doc__
.
strip
(),
author
=
'NEOPPOD'
,
author
=
'NEOPPOD'
,
author_email
=
'neo-dev@erp5.org'
,
author_email
=
'neo-dev@erp5.org'
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment