github ipfs-cluster/ipfs-cluster v1.0.1

latest releases: v1.1.1, v1.1.0, v1.0.8...
2 years ago

IPFS Cluster v1.0.1 is a maintenance release ironing out some issues and
bringing a couple of improvements around observability of cluster performance:

  • We have fixed the ipfscluster_pins metric and added a few new ones that
    help determine how fast the cluster can pin and add blocks.
  • We have added a new Informer that broadcasts current pinning-queue size,
    which means we can take this information into account when making
    allocations, essentially allowing peers with big pinning queues to be
    relieved by peers with smaller pinning queues.

Please read below for a list of changes and things to watch out for.

List of changes

Breaking changes

Peers running IPFS Cluster v1.0.0 will not be able to read the pin's user-set
metadata fields for pins submitted by peers in later versions, since metadata
is now stored on a different protobuf field. If this is an issue, all peers in
the cluster should upgrade.

Features
Bug fixes
Other changes

Upgrading notices

Configuration changes

There is a new pinqueue configuration object inside the informer section on newly initialized configurations:

  "informer": {
    ...
    "pinqueue": {
      "metric_ttl": "30s",
      "weight_bucket_size": 100000
    },
	...

This enables the Pinqueue Informer, which broadcasts metrics containing the size of the pinqueue with the metric weight divided by weight_bucket_size. The new metric is not used for allocations by default, and it needs to be manually added to the allocate_by option in the allocator, usually like:

"allocator": {
   "balanced": {
     "allocate_by": [
       "tag:group",
       "pinqueue",
       "freespace"
     ]
   }
REST API

No changes to REST API.

IPFS Proxy API

No changes to IPFS Proxy API.

Go APIs

No relevant changes to Go APIs, other than the PinTracker interface now requiring a PinQueueSize method.

Other

The following metrics are now available in the Prometheus endpoint when enabled:

ipfscluster_pins_ipfs_pins gauge
ipfscluster_pins_pin_add counter
ipfscluster_pins_pin_add_errors counter
ipfscluster_blocks_put counter
ipfscluster_blocks_added_size counter
ipfscluster_blocks_added counter
ipfscluster_blocks_put_error counter

The following metrics were converted from counter to gauge:

ipfscluster_pins_pin_queued
ipfscluster_pins_pinning
ipfscluster_pins_pin_error

Peers that are reporting freespace as 0 and which use this metric to
allocate pins, will no longer be available for allocations (they stop
broadcasting this metric). This means setting StorageMax on IPFS to 0
effectively prevents any pins from being explicitly allocated to a peer
(that is, when replication_factor != everywhere).

Don't miss a new ipfs-cluster release

NewReleases is sending notifications on new releases.