Skip to content

v0.44.0 - Oedo

Compare
Choose a tag to compare
@roman-khimov roman-khimov released this 28 Nov 11:44
· 170 commits to master since this release
918307b

Added

  • More effective FSTree writer for HDDs, new configuration options for it (#2814)
  • New health status INITIALIZING_NETWORK in inner ring (#2934)
  • IR health status to Prometheus metrics (#2934)
  • neofs-cli control object list command (#2853)
  • node config option storage.ignore_uninited_shards (#2953)
  • --global-name flag for neofs-cli container create to save container name into __NEOFS__NAME and subsequently register it in NNS contract (#2954)
  • The last metabase resynchronization epoch into metabase (#2966)
  • neofs-lens meta last-resync-epoch command (#2966)
  • neofs-lens fstree cleanup-tmp command (#2967)
  • neofs-cli control object revive command (#2968)
  • --disable-auto-gen-tag flag for gendoc command (#2983)
  • CLI commands documentation to the docs/cli-commands folder (#2983)
  • logger.encoding config option (#2999)
  • Reloading morph endpoints with SIGHUP (#2998)
  • New peapod-to-fstree tool providing peapod-to-fstree data migration (#3013)
  • Reloading node attributes with SIGHUP (#3005)
  • Reloading pool sizes with SIGHUP (#3018)
  • Reloading pprof/metrics services with SIGHUP (#3016)
  • Metrics for shard capacity (#3021)

Fixed

  • Searching (network-wide) for tombstones when handling their expiration, local indexes are used now instead (#2929)
  • Unathorized container ops accepted by the IR (#2947)
  • Structure table in the SN-configuration document (#2974)
  • False negative connection to NeoFS chain in multi-endpoint setup with at least one live node (#2986)
  • Overriding the default container and object attributes only with the appropriate flags (#2985)
  • RPC client reconnection failures leading to complete SN failure (#2797)
  • meta.DB.Open(readOnly) moves metabase in RO mode (#3000)
  • Panic in event listener related to inability to switch RPC node (#2970)
  • Non-container nodes never check placement policy on PUT, SEARCH requests (#3014)
  • If shards are overloaded with PUT requests, operation is not skipped but waits for 30 seconds (#2871)
  • Data corruption if PUT is done too concurrently (#2978)

Changed

  • ObjectService's Put RPC handler caches up to 10K lists of per-object sorted container nodes (#2901)
  • Metabase graveyard scheme (#2929)
  • When an error is returned, no additional help output is displayed in cobra-based programs (#2942)
  • Timestamps are no longer produced in logs if not running with TTY (#2964)
  • In inner ring config, default ports for TCP addresses are used if they are missing (#2969)
  • Metabase is refilled if an object exists in write-cache but is missing in metabase (#2977)
  • Pprof and metrics services stop at the end of SN's application lifecycle (#2976)
  • Reject configuration with unknown fields (#2981)
  • Log sampling is disabled by default now (#3011)
  • EACL is no longer considered for system role (#2972)
  • Deprecate peapod substorage (#3013)
  • Node does not stop trying to PUT an object if there are more PUT tasks than configured (#3027)
  • morph configuration section renamed to fschain both in IR and SN (#3028)
  • FSTree is limited to depth 8 max now (#3031)

Removed

  • Support for node.key configuration (#2959)
  • contracts.alphabet.amount from inner ring config (#2960)

Updated

Updating from v0.43.0

Metabase version has been increased, auto migration will be performed once v0.44.0 Storage Node is started with a v0.43.0 metabase. This action can not be undone. No additional work should be done.

The new storage.put_retry_timeout config value added. If an object cannot be PUT to storage, node tries to PUT it to the best shard for it (according to placement sorting) and only to it for this long before operation error is returned.

Binary keys are no longer supported by storage node, NEP-6 wallet support was introduced in version 0.22.3 and support for binary keys was removed from other components in 0.33.0 and 0.37.0. Please migrate to wallets (see 0.37.0 notes) if you've not done it previously.

The section morph in the config has been renamed to fschain. This version still supports the old section name, but this compatibility code will be removed in the next release. Please rename morph to fschain in your configuration files.

To migrate data from Peapods to FSTree:

$ peapod-to-fstree -config </path/to/storage/node/config>

For any shard, the data from the configured Peapod is copied into an FSTree that must be already configured. Notice that peapod DB is not deleted during migration. An updated (peapod-free) configuration file is also created with ".migrated" suffix (for example, /etc/neofs/config.yaml -> /etc/neofs/config.yaml.migrated). WARN: carefully review the updated config before using it in the application!

FSTree storage provided with this version is more efficient for small files than the Peapod in most cases. We support both fstree and peapod sub-storages, but peapod can be removed in future versions. We recommend using fstree. If you want to use only fstree and storage node already stores some data, don't forget to perform data migration described above.