Skip to content

Commit 4c80584

Browse files
committed
docs(changelog): add go-ds-flatfs atomic batch writes
documents the new flatfs batch implementation that uses atomic operations via temp directory, preventing orphan blocks on interrupted imports and reducing memory usage.
1 parent 153c870 commit 4c80584

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

docs/changelogs/v0.40.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,26 @@ This release was brought to you by the [Shipyard](https://ipshipyard.com/) team.
1010

1111
- [Overview](#overview)
1212
- [🔦 Highlights](#-highlights)
13+
- [Atomic batch writes in flatfs datastore](#atomic-batch-writes-in-flatfs-datastore)
1314
- [Routing V1 HTTP API now exposed by default](#routing-v1-http-api-now-exposed-by-default)
14-
- [Track total size when adding pins](#track-total-size-when-adding-pins]
15+
- [Track total size when adding pins](#track-total-size-when-adding-pins)
1516
- [📝 Changelog](#-changelog)
1617
- [👨‍👩‍👧‍👦 Contributors](#-contributors)
1718

1819
### Overview
1920

2021
### 🔦 Highlights
2122

23+
#### Atomic batch writes in flatfs datastore
24+
25+
The flatfs datastore batch implementation has been rewritten to use atomic operations. Blocks are now written to a temporary directory first and renamed to their final locations only on commit.
26+
27+
If kubo is interrupted during `ipfs add` or `ipfs dag import`, uncommitted blocks are automatically cleaned up on the next start, preventing orphan blocks from polluting the datastore. Previously, interrupted imports could leave partial data behind that was difficult to identify and clean up.
28+
29+
This also reduces memory usage during batch operations, as blocks are written to disk asynchronously instead of being buffered in RAM.
30+
31+
See [go-ds-flatfs#142](https://github.com/ipfs/go-ds-flatfs/pull/142) for implementation details.
32+
2233
#### Routing V1 HTTP API now exposed by default
2334

2435
The [Routing V1 HTTP API](https://specs.ipfs.tech/routing/http-routing-v1/) is now exposed by default at `http://127.0.0.1:8080/routing/v1`. This allows light clients in browsers to use Kubo Gateway as a delegated routing backend instead of running a full DHT client. Support for [IPIP-476: Delegated Routing DHT Closest Peers API](https://github.com/ipfs/specs/pull/476) is included. Can be disabled via [`Gateway.ExposeRoutingAPI`](https://github.com/ipfs/kubo/blob/master/docs/config.md#gatewayexposeroutingapi).

0 commit comments

Comments
 (0)