Skip to content

Releases: SiaFoundation/hostd

v2.11.0

Choose a tag to compare

@ChrisSchinnerl ChrisSchinnerl released this 21 Sep 15:52
973e0b2

Features

Index unreferenced sectors for pruning

Sectors now track how many contract and temp storage references they have, and
a location holds a lock while a sector is being written to it. The prune sweep
reads unreferenced sectors from an index instead of scanning every stored
sector, which on a 100 TiB host held the database for about six seconds every
five minutes. The last access timestamp is removed. The upgrade computes the
counts for existing sectors and rewrites the sector table, which takes about a
minute at that size.

Fixes

  • Allow concurrent database reads
  • Fix high CPU usage during sector pruning
  • Sector migration no longer holds the database lock while copying data
  • Removed the in-memory sector cache, the sectorCacheSize setting is now ignored
  • Reverted back to encoding/json from sonic.
  • The UI now requires all prices or none to be pinned
  • Update go.sia.tech/coreutils to v0.24.1

Fix the merkle cache bloating the stored sectors table

The cache kept 32 KiB of subtree roots inline on every sector row, which slowed
sector reads, pruning and contract root lookups. Cached roots are discarded on
upgrade and rebuilt on the next read.

This database migration will take a long time on large hosts. Plan accordingly.

Release cached sector roots of resolved and rejected contracts

Fixes a memory leak where the in-memory sector root cache kept the roots of every resolved, renewed, and rejected contract for the lifetime of the process.

v2.11.0-beta.2

v2.11.0-beta.2 Pre-release
Pre-release

Choose a tag to compare

@ChrisSchinnerl ChrisSchinnerl released this 18 Sep 08:32

Features

Index unreferenced sectors for pruning

Sectors now track how many contract and temp storage references they have, and
a location holds a lock while a sector is being written to it. The prune sweep
reads unreferenced sectors from an index instead of scanning every stored
sector, which on a 100 TiB host held the database for about six seconds every
five minutes. The last access timestamp is removed. The upgrade computes the
counts for existing sectors and rewrites the sector table, which takes about a
minute at that size.

Fixes

  • Allow concurrent database reads
  • Fix high CPU usage during sector pruning
  • Sector migration no longer holds the database lock while copying data
  • Removed the in-memory sector cache, the sectorCacheSize setting is now ignored
  • Reverted back to encoding/json from sonic.
  • The UI now requires all prices or none to be pinned
  • Update go.sia.tech/coreutils to v0.24.1

Fix the merkle cache bloating the stored sectors table

The cache kept 32 KiB of subtree roots inline on every sector row, which slowed
sector reads, pruning and contract root lookups. Cached roots are discarded on
upgrade and rebuilt on the next read.

This database migration will take a long time on large hosts. Plan accordingly.

Release cached sector roots of resolved and rejected contracts

Fixes a memory leak where the in-memory sector root cache kept the roots of every resolved, renewed, and rejected contract for the lifetime of the process.

v2.11.0-beta.1

v2.11.0-beta.1 Pre-release
Pre-release

Choose a tag to compare

@ChrisSchinnerl ChrisSchinnerl released this 15 Sep 15:23
10a2378

Features

Index unreferenced sectors for pruning

Sectors now track how many contract and temp storage references they have, and
a location holds a lock while a sector is being written to it. The prune sweep
reads unreferenced sectors from an index instead of scanning every stored
sector, which on a 100 TiB host held the database for about six seconds every
five minutes. The last access timestamp is removed. The upgrade computes the
counts for existing sectors and rewrites the sector table, which takes about a
minute at that size.

Fixes

  • Allow concurrent database reads
  • Fix high CPU usage during sector pruning
  • Sector migration no longer holds the database lock while copying data
  • Removed the in-memory sector cache, the sectorCacheSize setting is now ignored
  • Reverted back to encoding/json from sonic.
  • Update go.sia.tech/coreutils to v0.24.1

Fix the merkle cache bloating the stored sectors table

The cache kept 32 KiB of subtree roots inline on every sector row, which slowed
sector reads, pruning and contract root lookups. Cached roots are discarded on
upgrade and rebuilt on the next read.

v2.10.3

Choose a tag to compare

@ChrisSchinnerl ChrisSchinnerl released this 01 Sep 13:15

Fixes

  • Fix deleting hosted data at the end of a contract blocking downloading

Fix volume usage accounting going negative

Fixed two paths that could leave a volume's used_sectors counter below the
number of sectors actually stored in it. Once the counter went negative the
background sector pruner panicked, which exited the daemon without writing
anything to the log and recurred on every restart.

Also fixed hostd recalculate skipping volumes that have no sectors left,
which meant it could report success without repairing a volume whose rows had
all been deleted by an interrupted removal.

Hosts already affected have their counters repaired automatically by a database
migration on the next startup.

v2.10.2

Choose a tag to compare

@n8mgr n8mgr released this 12 Jul 23:28
v2.10.2
9f5b4de

Fixes

  • Fixed nomad cert issuance failing due to provider API change.
  • Fixed issue with time to refresh not taking into account failures.

v2.10.1

Choose a tag to compare

@n8mgr n8mgr released this 06 Jul 14:34
v2.10.1
aec62d3

Fixes

  • Updated coreutils to v0.23.3 and core to v0.21.4

v2.10.0

Choose a tag to compare

@n8mgr n8mgr released this 03 Jul 17:48
v2.10.0
f9a920a

Features

  • Added detection of corrupt sectors on read and alert to surface it.

Fixes

  • Generate alert when we can't write to host system

Repair v2 contracts stuck "active" after renewal.

Adds a database migration that corrects v2 contracts whose renewal landed in the same block as a revision and was therefore never recorded against the parent. Affected contracts are flipped from active to renewed, their resolution index is populated from the renewed contract's confirmation index, and contract count, sector, revenue and collateral metrics are recalculated. Existing deployments no longer need a chain rescan to clear the stuck rows reported in #912.

v2.9.1-beta.1

v2.9.1-beta.1 Pre-release
Pre-release

Choose a tag to compare

@ChrisSchinnerl ChrisSchinnerl released this 30 Jun 08:32

Fixes

  • Generate alert when we can't write to host system

Repair v2 contracts stuck "active" after renewal.

Adds a database migration that corrects v2 contracts whose renewal landed in the same block as a revision and was therefore never recorded against the parent. Affected contracts are flipped from active to renewed, their resolution index is populated from the renewed contract's confirmation index, and contract count, sector, revenue and collateral metrics are recalculated. Existing deployments no longer need a chain rescan to clear the stuck rows reported in #912.

v2.9.0

Choose a tag to compare

@n8mgr n8mgr released this 03 Jun 17:59
deaec70

Features

  • Add support for RHP4 account pools.

Fixes

  • Suppress irrelevant errors until host is announced

Apply syncer rate limits to inbound peer connections.

The syncerIngressLimit and syncerEgressLimit settings now correctly throttle inbound peer connections in addition to outbound ones.

v2.9.0-beta.1

v2.9.0-beta.1 Pre-release
Pre-release

Choose a tag to compare

@ChrisSchinnerl ChrisSchinnerl released this 29 May 10:52

Features

  • Add support for RHP4 account pools.

Fixes

  • Suppress irrelevant errors until host is announced

Apply syncer rate limits to inbound peer connections.

The syncerIngressLimit and syncerEgressLimit settings now correctly throttle inbound peer connections in addition to outbound ones.