mirror of
https://github.com/orbitdb/orbitdb.git
synced 2025-03-30 15:08:28 +00:00
Remove old benchmarks
This commit is contained in:
parent
1250f34c3d
commit
79e3487bfe
@ -1,54 +0,0 @@
|
||||
'use strict'
|
||||
|
||||
const IPFS = require('ipfs-http-client')
|
||||
const OrbitDB = require('../src/OrbitDB')
|
||||
|
||||
// Metrics
|
||||
let totalQueries = 0
|
||||
let seconds = 0
|
||||
let queriesPerSecond = 0
|
||||
let lastTenSeconds = 0
|
||||
|
||||
// Main loop
|
||||
const queryLoop = async (db) => {
|
||||
await db.add(totalQueries)
|
||||
totalQueries ++
|
||||
lastTenSeconds ++
|
||||
queriesPerSecond ++
|
||||
setImmediate(() => queryLoop(db))
|
||||
}
|
||||
|
||||
// Start
|
||||
console.log("Starting...")
|
||||
|
||||
// Make sure you have a local IPFS daemon running!
|
||||
const ipfs = IPFS('127.0.0.1')
|
||||
|
||||
const run = async () => {
|
||||
try {
|
||||
const orbit = await OrbitDB.createInstance(ipfs, { directory: './orbitdb/benchmarks' })
|
||||
const db = await orbit.eventlog('orbit-db.benchmark', {
|
||||
replicate: false,
|
||||
})
|
||||
|
||||
// Metrics output
|
||||
setInterval(() => {
|
||||
seconds ++
|
||||
if(seconds % 10 === 0) {
|
||||
console.log(`--> Average of ${lastTenSeconds/10} q/s in the last 10 seconds`)
|
||||
if(lastTenSeconds === 0)
|
||||
throw new Error("Problems!")
|
||||
lastTenSeconds = 0
|
||||
}
|
||||
console.log(`${queriesPerSecond} queries per second, ${totalQueries} queries in ${seconds} seconds (Oplog: ${db._oplog.length})`)
|
||||
queriesPerSecond = 0
|
||||
}, 1000)
|
||||
// Start the main loop
|
||||
queryLoop(db)
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
process.exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
run()
|
@ -1,72 +0,0 @@
|
||||
'use strict'
|
||||
|
||||
const IPFS = require('ipfs')
|
||||
const IPFSRepo = require('ipfs-repo')
|
||||
const DatastoreLevel = require('datastore-level')
|
||||
const OrbitDB = require('../src/OrbitDB')
|
||||
|
||||
// Metrics
|
||||
let totalQueries = 0
|
||||
let seconds = 0
|
||||
let queriesPerSecond = 0
|
||||
let lastTenSeconds = 0
|
||||
|
||||
// Main loop
|
||||
const queryLoop = async (db) => {
|
||||
await db.add(totalQueries, { pin: false })
|
||||
totalQueries ++
|
||||
lastTenSeconds ++
|
||||
queriesPerSecond ++
|
||||
setImmediate(() => queryLoop(db))
|
||||
}
|
||||
|
||||
// Start
|
||||
console.log("Starting IPFS daemon...")
|
||||
|
||||
const repoConf = {
|
||||
storageBackends: {
|
||||
blocks: DatastoreLevel,
|
||||
},
|
||||
}
|
||||
|
||||
const ipfs = new IPFS({
|
||||
repo: new IPFSRepo.createRepo('./orbitdb/benchmarks/ipfs', repoConf),
|
||||
start: false,
|
||||
EXPERIMENTAL: {
|
||||
sharding: false,
|
||||
dht: false,
|
||||
},
|
||||
})
|
||||
|
||||
ipfs.on('error', (err) => console.error(err))
|
||||
|
||||
ipfs.on('ready', async () => {
|
||||
const run = async () => {
|
||||
try {
|
||||
const orbit = await OrbitDB.createInstance(ipfs,{ directory: './orbitdb/benchmarks' })
|
||||
const db = await orbit.eventlog('orbit-db.benchmark', {
|
||||
replicate: false,
|
||||
})
|
||||
|
||||
// Metrics output
|
||||
setInterval(() => {
|
||||
seconds ++
|
||||
if(seconds % 10 === 0) {
|
||||
console.log(`--> Average of ${lastTenSeconds/10} q/s in the last 10 seconds`)
|
||||
if(lastTenSeconds === 0)
|
||||
throw new Error("Problems!")
|
||||
lastTenSeconds = 0
|
||||
}
|
||||
console.log(`${queriesPerSecond} queries per second, ${totalQueries} queries in ${seconds} seconds (Oplog: ${db._oplog.length})`)
|
||||
queriesPerSecond = 0
|
||||
}, 1000)
|
||||
// Start the main loop
|
||||
queryLoop(db)
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
process.exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
run()
|
||||
})
|
@ -1,54 +0,0 @@
|
||||
'use strict'
|
||||
|
||||
const IPFS = require('ipfs')
|
||||
const IPFSRepo = require('ipfs-repo')
|
||||
const DatastoreLevel = require('datastore-level')
|
||||
const OrbitDB = require('../src/OrbitDB')
|
||||
|
||||
console.log("Starting IPFS...")
|
||||
|
||||
const repoConf = {
|
||||
storageBackends: {
|
||||
blocks: DatastoreLevel
|
||||
}
|
||||
}
|
||||
|
||||
const ipfs = new IPFS({
|
||||
repo: new IPFSRepo('./orbitdb/benchmarks/load/ipfs', repoConf),
|
||||
start: false
|
||||
})
|
||||
|
||||
ipfs.on('error', (err) => console.error(err))
|
||||
|
||||
ipfs.on('ready', async () => {
|
||||
const run = async () => {
|
||||
try {
|
||||
const orbit = await OrbitDB.createInstance(ipfs, { directory: './orbitdb/benchmarks' })
|
||||
const db = await orbit.eventlog('orbit-db.benchmark', { replicate: false })
|
||||
|
||||
const amount = 1000
|
||||
console.log('DB entries:', amount)
|
||||
|
||||
console.log('Writing DB...')
|
||||
const st1 = new Date().getTime()
|
||||
for (let i = 0; i < amount; i++) {
|
||||
await db.add('a' + i)
|
||||
}
|
||||
const et1 = new Date().getTime()
|
||||
console.log('writing took', (et1 - st1), 'ms')
|
||||
await db.close()
|
||||
|
||||
const db2 = await orbit.eventlog('orbit-db.benchmark', { replicate: false })
|
||||
console.log('Loading DB...')
|
||||
const st2 = new Date().getTime()
|
||||
await db2.load()
|
||||
const et2 = new Date().getTime()
|
||||
console.log('load took', (et2 - st2), 'ms')
|
||||
process.exit(0)
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
process.exit(1)
|
||||
}
|
||||
}
|
||||
run()
|
||||
})
|
@ -1,124 +0,0 @@
|
||||
'use strict'
|
||||
|
||||
const IPFS = require('ipfs')
|
||||
const IPFSRepo = require('ipfs-repo')
|
||||
const DatastoreLevel = require('datastore-level')
|
||||
const OrbitDB = require('../src/OrbitDB')
|
||||
const startIpfs = require('../test/utils/start-ipfs')
|
||||
const pMapSeries = require('p-map-series')
|
||||
|
||||
// Metrics
|
||||
let metrics1 = {
|
||||
totalQueries: 0,
|
||||
seconds: 0,
|
||||
queriesPerSecond: 0,
|
||||
lastTenSeconds: 0,
|
||||
}
|
||||
|
||||
const ipfsConf = {
|
||||
Addresses: {
|
||||
API: '/ip4/127.0.0.1/tcp/0',
|
||||
Swarm: ['/ip4/0.0.0.0/tcp/0'],
|
||||
Gateway: '/ip4/0.0.0.0/tcp/0'
|
||||
},
|
||||
Bootstrap: [],
|
||||
Discovery: {
|
||||
MDNS: {
|
||||
Enabled: true,
|
||||
Interval: 1
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
const repoConf = {
|
||||
storageBackends: {
|
||||
blocks: DatastoreLevel,
|
||||
},
|
||||
}
|
||||
|
||||
const defaultConfig = Object.assign({}, {
|
||||
start: true,
|
||||
preload: {
|
||||
enabled: false
|
||||
},
|
||||
EXPERIMENTAL: {
|
||||
sharding: false,
|
||||
dht: false,
|
||||
},
|
||||
config: ipfsConf
|
||||
})
|
||||
|
||||
const conf1 = Object.assign({}, defaultConfig, {
|
||||
repo: new IPFSRepo('./orbitdb/benchmarks/replication/client1/ipfs', repoConf)
|
||||
})
|
||||
|
||||
// Write loop
|
||||
const queryLoop = async (db) => {
|
||||
if (metrics1.totalQueries < updateCount) {
|
||||
try {
|
||||
await db.add(metrics1.totalQueries)
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
}
|
||||
metrics1.totalQueries ++
|
||||
metrics1.lastTenSeconds ++
|
||||
metrics1.queriesPerSecond ++
|
||||
setImmediate(() => queryLoop(db))
|
||||
}
|
||||
}
|
||||
|
||||
// Metrics output function
|
||||
const outputMetrics = (name, db, metrics) => {
|
||||
metrics.seconds ++
|
||||
console.log(`[${name}] ${metrics.queriesPerSecond} queries per second, ${metrics.totalQueries} queries in ${metrics.seconds} seconds (Oplog: ${db._oplog.length})`)
|
||||
metrics.queriesPerSecond = 0
|
||||
|
||||
if(metrics.seconds % 10 === 0) {
|
||||
console.log(`[${name}] --> Average of ${metrics.lastTenSeconds/10} q/s in the last 10 seconds`)
|
||||
metrics.lastTenSeconds = 0
|
||||
}
|
||||
}
|
||||
|
||||
const database = 'benchmark-replication'
|
||||
const updateCount = 20000
|
||||
|
||||
// Start
|
||||
console.log("Starting IPFS daemons...")
|
||||
|
||||
pMapSeries([conf1,], d => startIpfs('js-ipfs', d))
|
||||
.then(async ([ipfs1]) => {
|
||||
try {
|
||||
// Create the databases
|
||||
const orbit1 = await OrbitDB.createInstance(ipfs1.api, { directory: './orbitdb/benchmarks/replication/client1' })
|
||||
const db1 = await orbit1.eventlog(database, { overwrite: true })
|
||||
console.log(db1.address.toString())
|
||||
|
||||
let db1Connected = false
|
||||
|
||||
console.log('Waiting for peers to connect...')
|
||||
|
||||
db1.events.on('peer', () => {
|
||||
db1Connected = true
|
||||
console.log('Peer 1 connected')
|
||||
})
|
||||
|
||||
const startInterval = setInterval(() => {
|
||||
if (db1Connected) {
|
||||
clearInterval(startInterval)
|
||||
// Start the write loop
|
||||
queryLoop(db1)
|
||||
|
||||
// Metrics output for the writer, once/sec
|
||||
const writeInterval = setInterval(() => {
|
||||
outputMetrics("WRITE", db1, metrics1)
|
||||
if (metrics1.totalQueries === updateCount) {
|
||||
clearInterval(writeInterval)
|
||||
}
|
||||
}, 1000)
|
||||
}
|
||||
}, 100)
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
process.exit(1)
|
||||
}
|
||||
})
|
@ -1,118 +0,0 @@
|
||||
'use strict'
|
||||
|
||||
const IPFS = require('ipfs')
|
||||
const IPFSRepo = require('ipfs-repo')
|
||||
const DatastoreLevel = require('datastore-level')
|
||||
const OrbitDB = require('../src/OrbitDB')
|
||||
const startIpfs = require('../test/utils/start-ipfs')
|
||||
const pMapSeries = require('p-map-series')
|
||||
|
||||
// Metrics
|
||||
let metrics2 = {
|
||||
totalQueries: 0,
|
||||
seconds: 0,
|
||||
queriesPerSecond: 0,
|
||||
lastTenSeconds: 0,
|
||||
}
|
||||
|
||||
const ipfsConf = {
|
||||
Addresses: {
|
||||
API: '/ip4/127.0.0.1/tcp/0',
|
||||
Swarm: ['/ip4/0.0.0.0/tcp/0'],
|
||||
Gateway: '/ip4/0.0.0.0/tcp/0'
|
||||
},
|
||||
Bootstrap: [],
|
||||
Discovery: {
|
||||
MDNS: {
|
||||
Enabled: true,
|
||||
Interval: 0
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
const repoConf = {
|
||||
storageBackends: {
|
||||
blocks: DatastoreLevel,
|
||||
},
|
||||
}
|
||||
|
||||
const defaultConfig = Object.assign({}, {
|
||||
start: true,
|
||||
preload:{
|
||||
enabled: false
|
||||
},
|
||||
EXPERIMENTAL: {
|
||||
sharding: false,
|
||||
dht: false,
|
||||
},
|
||||
config: ipfsConf
|
||||
})
|
||||
|
||||
const conf2 = Object.assign({}, defaultConfig, {
|
||||
repo: new IPFSRepo('./orbitdb/benchmarks/replication/client2/ipfs', repoConf)
|
||||
})
|
||||
|
||||
// Metrics output function
|
||||
const outputMetrics = (name, db, metrics) => {
|
||||
metrics.seconds ++
|
||||
console.log(`[${name}] ${metrics.queriesPerSecond} queries per second, ${metrics.totalQueries} queries in ${metrics.seconds} seconds (Oplog: ${db._oplog.length})`)
|
||||
metrics.queriesPerSecond = 0
|
||||
|
||||
if(metrics.seconds % 10 === 0) {
|
||||
console.log(`[${name}] --> Average of ${metrics.lastTenSeconds/10} q/s in the last 10 seconds`)
|
||||
metrics.lastTenSeconds = 0
|
||||
}
|
||||
}
|
||||
|
||||
const database = 'benchmark-replication'
|
||||
const updateCount = 20000
|
||||
|
||||
// Start
|
||||
console.log("Starting IPFS daemons...")
|
||||
|
||||
pMapSeries([conf2], d => startIpfs('js-ipfs', d))
|
||||
.then(async ([ipfs2]) => {
|
||||
try {
|
||||
// Create the databases
|
||||
const orbit2 = await OrbitDB.createInstance(ipfs2.api, { directory: './orbitdb/benchmarks/replication/client2' })
|
||||
const address = process.argv[2]
|
||||
const db2 = await orbit2.eventlog(address)
|
||||
|
||||
let db2Connected = false
|
||||
|
||||
console.log('Waiting for peers to connect...')
|
||||
|
||||
db2.events.on('peer', () => {
|
||||
db2Connected = true
|
||||
console.log('Peer 2 connected')
|
||||
})
|
||||
|
||||
const startInterval = setInterval(() => {
|
||||
if (db2Connected) {
|
||||
clearInterval(startInterval)
|
||||
// Metrics output for the reader
|
||||
let prevCount = 0
|
||||
setInterval(() => {
|
||||
try {
|
||||
metrics2.totalQueries = db2._oplog.length
|
||||
metrics2.queriesPerSecond = metrics2.totalQueries - prevCount
|
||||
metrics2.lastTenSeconds += metrics2.queriesPerSecond
|
||||
prevCount = metrics2.totalQueries
|
||||
|
||||
outputMetrics("READ", db2, metrics2)
|
||||
|
||||
if (db2._oplog.length === updateCount) {
|
||||
console.log("Finished")
|
||||
process.exit(0)
|
||||
}
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
}
|
||||
}, 1000)
|
||||
}
|
||||
}, 100)
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
process.exit(1)
|
||||
}
|
||||
})
|
Loading…
x
Reference in New Issue
Block a user