Releases: open-io/oio-sds
Releases · open-io/oio-sds
4.2.10
4.6.0
New features
- Set container versioning mode with an object operation #1804 #1813
- Allow to configure event-agent connection pool #1810
- Send event when changing container properties #1817
- oio-blob-mover: implement concurrency #1822
Improvements
- CI: allow to configure event-agent for asynchronous object replication #1812
- Retry failed rebuild jobs, with a delay #1824
Bug fixes
4.5.3
4.5.2
4.5.1
4.2.9
Bug fixes
- blob-indexer: do not warn on pending or just deleted chunks #1692
- Load old xattr when deleting chunk #1705
- No dump if database is corrupt #1710
- Make sure that meta1 are started before assigning rdir services #1715
- oio-reset.sh: Fix openio command #1719
- Fix container snapshot feature #1721
- Python API: do not use the legacy 'meta1_digits' parameter #1730
- Prevent installation of urllib3 1.25 #1764
- Do not lock/unlock meta1 scores before bootstrap #1773
- C API: Use the same retry policy as the Python API #1796
- Take precautions to prevent "double master" situations #1801
4.5.0
Improvements:
- Investigate load-balancing issues #1762
- Improve the service resolver #1776
- Wait for events when testing the account service #1783
- Python API: enable TCP_CORK, avoid buffer copies #1785
- meta1: resolve account and cname only when asked #1786
- Python API: better eventlet coordination #1787
- Enrich performance data display #1790
- Python API: ramp up upload buffer size #1791
- Python API: replace
Queue
class byLightQueue
#1792 - Set appropriate TCP flags (and other small improvements) #1793
Bug fixes:
- Do not read conscience persistence file if a hub is running #1778
- sqliterepo: reset MASTER elections on ZOO_SESSION_EVENT #1782
- Python API: fix get_pool_manager parameters #1794
- C API: Use the same retry policy as the Python API #1796 (from 4.2.x branch)
- Python API: fix exception reraise function #1797
- Take precautions to prevent "double master" situations #1801 (from 4.2.x branch)
5.0.0
New features
- Python API: Add hour-based rate limiting policies utilities #1632
- core: allow to send logs to syslog via UDP port 514 #1649
- Multi-Tube: specialize the queues of events per event kind #1659 #1763
- Move
openio election
commands toopenio-admin election
commands #1679 - Register oioproxy and beanstalkd services into conscience #1691 #1720
- CLI: implement
openio-admin <item_type> check
commands #1697 - CLI: implement
openio-admin <item_type> locate
commands #1704 - CLI: implement
openio-admin container repair
command #1716 #1743 #1760 - CLI: implement
openio-admin <service_type> decache
commands #1717 - rawx: allow to check chunk hash with HEAD requests #1724
- CLI: list containers that would be affected by the loss of a rawx or meta2 service #1729
- Python API: allow to dispatch tasks locally or across the platform #1736
- CLI: implement directory services checks #1737
- CLI: implement 'openio-admin object repair' command #1739
- CLI: implement 'openio-admin rebuild' commands #1740 #1748
- CLI: implement get-config and set-config commands #1744
- CLI: implement 'openio-admin account-service rebuild' command #1745
- CLI: implement 'openio-admin check rawx' command #1747
- CLI: implement 'openio-admin info' #1753
- CLI: implement 'openio-admin chunk [distributed-]rebuild' #1779
Improvements
- tools: deduplicate code from bootstrap scripts #1650 (see Breaking changes)
- Limit length of request IDs to 63 characters #1653
- Remove the
user_is_a_service
verruca #1656 - sqliterepo: faster exit of services #1661
- oio-reset: stop calling zk-reset.py #1695
- sqliterepo: be more consistent with sharded/multiplied ZK #1696
- Simplify the management of metrics #1698
- Replicate container snapshots #1722
- CLI: display nicer KeyError messages #1725
- rawx: performance improvements #1746
- CI: make curl silent when there is no error #1749
- CI: use a travis pipeline #1750
- tests: accelerate some shell scripts #1752
- Improve Admin CLI #1755
- Remove obsolete legacy tools | BREAKING CHANGE #1759
- crawler: provide informations from rdir to integrity crawler #1768
- Integrity crawler improvements #1761
- CLI: Repair corrupted chunk #1772
Bug fixes
- Workaround and fix flaky tests #1672
- sqliterepo: fix an ugly but harmless memory management #1694
- CI: enhance wait_for_event #1756
- Rdir: Free error on missing options #1766
- Few fixes around x-oio-req-id #1767
- Do not use stdout within the commands #1789
- Python API: fix import of eventlet.Semaphore #1798
- Revert "Admin CLI: Set the default verbose level to INFO" #1799
- event-agent: Always spawn workers #1800
Tests
- Add some more tests to check chunk hash #1765
- Test 'openio-admin check' #1774
- Add tests to container repair #1777
- CLI: test 'meta2 list containers' and 'rawx list containers' #1781
- Add some tests for 'openio-admin account-service rebuild' #1784
Miscellaneous
- Rename all-requirements.txt to requirements.txt #1758
- Revert "Rename all-requirements.txt to requirements.txt" #1795
Breaking changes
Integration of Zookeeper and election commands
zk-bootstrap.py
becomesopenio zk bootstrap
;zk-reset.py
becomesopenio zk armageddon
;oio-election-dump.py
andoio-election-stat.py
becomeopenio zk stat
;oio-election-reset.py
becomesopenio zk reset
;oio-election-smudge.py
becomesopenio zk smudge
.
Other tools replaced by CLI subcommands
oio-check-directory
replaced byopenio-admin directory check
.oio-cluster
replaced byopenio cluster list
.oio-unlock-all
replaced byopenio cluster unlockall
.
New dependencies
- The golang implementation of rawx has a build requirement on
golang.org/x/sys/unix
.
Upgrade procedure
beanstalkd
andoioproxy
service type must be declared in conscience configuration file. Example:
[type:beanstalkd]
# 1000000 ready jobs -> score = 0
score_expr=root(3, (num stat.cpu) * (num stat.space) * (100 - root(3, (num stat.jobs_ready))))
score_timeout=120
lock_at_first_register=false
[type:oioproxy]
score_expr=(num stat.cpu)
score_timeout=120
lock_at_first_register=false
beanstalkd
andoioproxy
services must be watched by conscience-agent. Refer to the sample configuration file for the available options. Examples:
[...]
checks:
- {type: tcp}
stats:
- {type: beanstalkd}
- {type: system}
- {type: volume, path: /var/lib/oio/OPENIO/beanstalkd-1}
[...]
checks:
- {type: tcp}
stats:
- {type: oioproxy}
- {type: system}