mirror of
https://github.com/orbitdb/orbitdb.git
synced 2025-03-30 15:08:28 +00:00
add benchmark results to release notes
add offline mode info add explicit improvement factor edit formatting
This commit is contained in:
parent
f3388109c3
commit
dcdf343cec
68
CHANGELOG.md
68
CHANGELOG.md
@ -4,14 +4,70 @@ Note: OrbitDB follows [semver](https://semver.org/). We are currently in alpha:
|
||||
|
||||
## v0.23.0
|
||||
|
||||
### Performance
|
||||
Performance improvements have been made to writing and loading, as well as verification :tada:
|
||||
### Performance Improvements
|
||||
Performance improvements have been made to both writing and loading.
|
||||
|
||||
##### Write and Load
|
||||
- Each entry added now contains references to previous entries in powers of 2 distance apart up to a maximum distance of `referenceCount` (default 32) from it, speeding up both writing and loading and resulting in smaller entry sizes. [#275](https://github.com/orbitdb/ipfs-log/pull/275)
|
||||
Our benchmarks show an increase of 2-3x loading and writing speeds! :tada:
|
||||
|
||||
#### Signature Caching
|
||||
- The default keystore and identity-provider now have caches added to speed up verification of entry signtures and identities. See [#53](https://github.com/orbitdb/orbit-db-identity-provider/pull/53) and [#38](https://github.com/orbitdb/orbit-db-keystore/pull/38)
|
||||
```
|
||||
v0.22.0
|
||||
Starting IPFS...
|
||||
DB entries: 1000
|
||||
Writing DB...
|
||||
writing took 3586 ms
|
||||
Loading DB...
|
||||
load took 1777 ms
|
||||
|
||||
v0.23.0
|
||||
Starting IPFS...
|
||||
DB entries: 1000
|
||||
Writing DB...
|
||||
writing took 1434 ms
|
||||
Loading DB...
|
||||
load took 802 ms
|
||||
|
||||
// Writing improved: ~2.5x
|
||||
// Loading improved: ~2.2x
|
||||
```
|
||||
The speed-up between the versions is more pronounced as the size of the database increases:
|
||||
```
|
||||
v0.22.0
|
||||
Starting IPFS...
|
||||
DB entries: 10000
|
||||
Writing DB...
|
||||
writing took 31292 ms
|
||||
Loading DB...
|
||||
load took 26812 ms
|
||||
|
||||
v0.23.0
|
||||
Starting IPFS...
|
||||
DB entries: 10000
|
||||
Writing DB...
|
||||
writing took 10383 ms
|
||||
Loading DB...
|
||||
load took 5542 ms
|
||||
|
||||
// Writing improved: ~3x
|
||||
// Loading improved: ~4.8x
|
||||
```
|
||||
|
||||
To try out the benchmarks for yourself run `node benchmarks/benchmark-load.js`
|
||||
|
||||
### Entry references
|
||||
Each entry added now contains references to previous entries in powers of 2 distance apart up to a maximum distance of `referenceCount` (default 32) from it, speeding up both writing and loading and resulting in smaller entry sizes. [#275](https://github.com/orbitdb/ipfs-log/pull/275)
|
||||
|
||||
### Signature Caching
|
||||
The default keystore and identity-provider now have caches added to speed up verification of entry signtures and identities. See [#53](https://github.com/orbitdb/orbit-db-identity-provider/pull/53) and [#38](https://github.com/orbitdb/orbit-db-keystore/pull/38)
|
||||
|
||||
### Offline mode
|
||||
An optional `offline` flag has bee added which, when set to `true`, prevents pubsub from starting and messages from being exchanged. This is useful to speed up testing and for when you would like to use your database locally without networking enabled.
|
||||
To use offline mode, start your IPFS nodes offline (with `new IPFS({ start: false })`) and create your OrbitDB instance as follows:
|
||||
|
||||
```js
|
||||
const orbitdb = await OrbitDB.createInstance(ipfs, { offline: true, id: 'mylocalid' })
|
||||
```
|
||||
|
||||
Note that an `id` will need to be passed if your IPFS node is offline. If you would like to start replicating databases after starting OrbitDB in offline mode, the OrbitDB instance needs to be re-created. See [#726](https://github.com/orbitdb/orbit-db/pull/726)
|
||||
|
||||
## v0.22.1
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user