frostfs-node/CHANGELOG.md
Evgenii Stratonikov 7eac5fb18b
Release v0.44.0
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-11-25 14:41:36 +03:00

9.6 KiB

Changelog

Changelog for FrostFS Node

Unreleased

Added

Changed

Fixed

Removed

Updated

[v0.44.0] - 2024-25-11 - Rongbuk

Added

  • Allow to prioritize nodes during GET traversal via attributes (#1439)
  • Add metrics for the frostfsid cache (#1464)
  • Customize constant attributes attached to every tracing span (#1488)
  • Manage additional keys in the frostfsid contract (#1505)
  • Describe --rule flag in detail for frostfs-cli ape-manager subcommands (#1519)

Changed

  • Support richer interaction with the console in frostfs-cli container policy-playground (#1396)
  • Print address in base58 format in frostfs-adm morph policy set-admin (#1515)

Fixed

  • Fix EC object search (#1408)
  • Fix EC object put when one of the nodes is unavailable (#1427)

Removed

  • Drop most of the eACL-related code (#1425)
  • Remove --basic-acl flag from frostfs-cli container create (#1483)

Upgrading from v0.43.0

The metabase schema has changed completely, resync is required.

[v0.42.0]

Added

  • Add audit logs for gRPC requests (#1184)
  • Add CLI command to convert eACL to APE (#1189)
  • Add --await flag to control set-status (#60)
  • app_info metric for binary version (#1154)
  • --quiet flag for healthcheck command (#1209)

Changed

  • Deprecate Container.SetEACL RPC (#1219)

Fixed

  • Take groups into account during APE processing (#1190)
  • Handle double SIGHUP correctly (#1145)
  • Handle empty filenames in tree listing (#1074)
  • Handle duplicate tree nodes in the split-brain scenario (#1234, #1251)
  • Remove APE pre-check in Object.GET/HEAD/RANGE RPC (#1249)
  • Delete EC gc marks and split info (#1257)
  • Do not search for non-existent objects on deletion (#1261)

Updated

  • Make putting EC chunks more robust (#1233)

[v0.41.0]

Added

  • Support mTLS for morph client (#1170)

Fixed

  • Update shard state metric during shard init (#1174)
  • Handle ENOSPC in blobovnicza (#1166)
  • Handle multiple split-infos for EC objects (#1163)
  • Set Disabled mode as the default for components (#1168)

[v0.40.0]

Added

  • Support EC chunk reconstruction in policer (#1129)
  • Support LOCK, DELETE and SEARCH methods on EC objects (#1147, 1144)
  • apemanager service to manage APE chains (#1105)

Fixed

  • Properly verify GetRangeHash response (#1083)
  • Send MONOTONIC_USEC in sdnotify on reload (#1135)

Updated

  • neo-go to v0.106.0

[v0.39.0]

Added

  • Preliminary erasure coding support (#1065, #1112, #1103, #1120)
  • TTL cache for blobovnicza tree (#1004)
  • Cache for frostfsid and policy contracts (#1117)
  • Writecache path to metric labels (#966)
  • Documentation for authentication mechanisms (#1097, #1104)
  • Metrics for metabase resync status (#1029)

Changed

  • Speed up metabase resync (#1024)

Fixed

  • Possible panic in GET_RANGE (#1077)

Updated

  • Minimum required Go version to 1.21

[v0.38.0]

Added

  • Add trace_id to logs in frostfs-node (#146)
  • Allow to forcefully remove container from IR (#733)
  • LOKI support (#740)
  • Allow sealing writecache (#569)
  • Support tree service in data evacuation (#947)
  • Use new policy engine mechanism for access control (#770, #804)
  • Log about active notary deposit waiting (#963)

Changed

  • Sort output in frostfs-cli subcommands (#333)
  • Send bootstrap query at each epoch tick (#721)
  • Do not retain garbage in fstree on systems supporting O_TMPFILE (#970)

Fixed

  • Handle synchronization failures better in tree service (#741)
  • Fix invalid batch size for iterator traversal in morph (#1000)

Updated

  • neo-go to v0.105.0

[v0.37.0]

Added

  • Support impersonate bearer token (#229)
  • Change log level on SIGHUP for ir (#125)
  • Reload pprof and metrics on SIGHUP for ir (#125)
  • Support copies number parameter in frostfs-cli object put (#351)
  • Set extra wallets on SIGHUP for ir (#125)
  • Writecache metrics (#312)
  • Add tree service metrics (#370)

Changed

  • frostfs-cli util locode generate is now much faster (#309)

Fixed

  • Take network settings into account during netmap contract update (#100)
  • Read config files from dir even if config file not provided via --config for node (#238)
  • Notary requests parsing according to neo-go's updates (#268)
  • Tree service panic in its internal client cache (#322)
  • Iterate over endpoints when create ws client in morph's constructor (#304)
  • Delete complex objects with GC (#332)

Removed

Updated

  • neo-go to v0.101.1
  • google.golang.org/grpc to v1.55.0
  • paulmach/orb to v0.9.2
  • go.etcd.io/bbolt to v1.3.7
  • github.com/nats-io/nats.go to v1.25.0
  • golang.org/x/sync to v0.2.0
  • golang.org/x/term to v0.8.0
  • github.com/spf13/cobra to v1.7.0
  • github.com/panjf2000/ants/v2 v2.7.4
  • github.com/multiformats/go-multiaddr to v0.9.0
  • github.com/hashicorp/golang-lru/v2 to v2.0.2
  • go.uber.org/atomic to v1.11.0
  • Minimum go version to v1.20
  • github.com/prometheus/client_golang to v1.15.1
  • github.com/prometheus/client_model to v0.4.0
  • go.opentelemetry.io/otel to v1.15.1
  • go.opentelemetry.io/otel/trace to v1.15.1
  • github.com/spf13/cast to v1.5.1
  • git.frostfs.info/TrueCloudLab/hrw to v1.2.1

Updating from v0.36.0

[v0.36.0] - 2023-04-12 - Furtwängler

Added

  • Add GAS pouring mechanism for a configurable list of wallets (#128)
  • Separate batching for replicated operations over the same container in pilorama (#1621)
  • Doc for extended headers (#2128)
  • New frostfs_node_object_container_size metric for tracking size of reqular objects in a container (#2116)
  • New frostfs_node_object_payload_size metric for tracking size of reqular objects on a single shard (#1794)
  • Add command frostfs-adm morph netmap-candidates (#1889)
  • object.delete.tombstone_lifetime config parameter to set tombstone lifetime in the DELETE service (#2246)
  • Reload config for pprof and metrics on SIGHUP in neofs-node (#1868)
  • Multiple configs support (#44)
  • Parameters nns-name and nns-zone for command frostfs-cli container create (#37)
  • Tree service now saves the last synchronization height which persists across restarts (#82)
  • Add tracing support (#135)
  • Multiple (and a fix for single) copies number support for PUT requests (#221)

Changed

  • Change frostfs_node_engine_container_size to counting sizes of logical objects
  • common.PrintVerbose prints via cobra.Command.Printf (#1962)
  • Env prefix in configuration changed to FROSTFS_* (#43)
  • Link object is broadcast throughout the whole container now (#57)
  • Pilorama now can merge multiple batches into one (#2231)
  • Storage engine now can start even when some shard components are unavailable (#2238)
  • neofs-cli buffer for object put increased from 4 KiB to 3 MiB (#2243)
  • Expired locked object is available for reading (#56)
  • Initialize write-cache asynchronously (#32)
  • Update system attribute names (#159)

Fixed

  • Increase payload size metric on shards' put operation (#1794)
  • Big object removal with non-local parts (#1978)
  • Disable pilorama when moving to degraded mode (#2197)
  • Fetching blobovnicza objects that not found in write-cache (#2206)
  • Do not search for the small objects in FSTree (#2206)
  • Correct status error for expired session token (#2207)
  • Set flag mode required for frostfs-cli control shards set-mode (#8)
  • Fix dirty suffix in debian package version (#53)
  • Prevent node process from killing by systemd when shutting down (#1465)
  • Restore subscriptions correctly on morph client switch (#2212)
  • Expired objects could be returned if not marked with GC yet (#2213)
  • neofs-adm morph dump-hashes now properly iterates over custom domain (#2224)
  • Possible deadlock in write-cache (#2239)
  • Fix *_req_count and *_req_count_success metric values (#2241)
  • Storage ID update by write-cache (#2244)
  • neo-go client deadlock on subscription (#2244, #2272)
  • Possible panic during write-cache initialization (#2234)
  • Do not fetch an object if meta is missing it (#61)
  • Create contract wallet only by init and update-config command (#63)
  • Actually use object.put.pool_size_local and independent pool for local puts (#64).
  • Pretty printer of basic ACL in the NeoFS CLI (#2259)
  • Adding of public key for nns group group.frostfs at init step (#130)
  • Iterating over just removed files by FSTree (#98)
  • Parts of a locked object could not be removed anymore (#141)
  • Non-alphabet nodes do not try to handle alphabet events (#181)
  • Failing SN and IR transactions because of incorrect scopes (#2230, #2263)
  • Global scope used for some transactions (#2230, #2263)
  • Concurrent morph cache misses (#30)

Removed

Updated

  • neo-go to v0.100.1
  • github.com/klauspost/compress to v1.15.13
  • github.com/multiformats/go-multiaddr to v0.8.0
  • golang.org/x/term to v0.3.0
  • google.golang.org/grpc to v1.52.0
  • github.com/spf13/viper to v1.15.0
  • github.com/nats-io/nats.go to v1.22.1
  • github.com/TrueCloudLab/hrw to v.1.1.1
  • Minimum go version to v1.18

Updating from v0.35.0 (old NeoFS)

You need to change configuration environment variables to FROSTFS_* if you use any.

New config field object.delete.tombstone_lifetime allows to set tombstone lifetime more appropriate for a specific deployment.

Use __SYSTEM__ prefix for system attributes instead of __NEOFS__ (existed objects with old attributes will be treated as before, but for new objects new attributes will be used).

Older versions

This project is a fork of NeoFS from version v0.35.0. To see CHANGELOG for older versions, refer to https://github.com/nspcc-dev/neofs-node/blob/master/CHANGELOG.md.