diff --git a/benchmarks/benchmark-add-go-ipfs.js b/benchmarks/benchmark-add-go-ipfs.js deleted file mode 100644 index 6f84f1b..0000000 --- a/benchmarks/benchmark-add-go-ipfs.js +++ /dev/null @@ -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() diff --git a/benchmarks/benchmark-add.js b/benchmarks/benchmark-add.js deleted file mode 100644 index d73daad..0000000 --- a/benchmarks/benchmark-add.js +++ /dev/null @@ -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() -}) diff --git a/benchmarks/benchmark-load.js b/benchmarks/benchmark-load.js deleted file mode 100644 index ae7dd23..0000000 --- a/benchmarks/benchmark-load.js +++ /dev/null @@ -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() -}) diff --git a/benchmarks/benchmark-replication-sender.js b/benchmarks/benchmark-replication-sender.js deleted file mode 100644 index b0b3cb7..0000000 --- a/benchmarks/benchmark-replication-sender.js +++ /dev/null @@ -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) - } - }) diff --git a/benchmarks/benchmark-replication.js b/benchmarks/benchmark-replication.js deleted file mode 100644 index 4039536..0000000 --- a/benchmarks/benchmark-replication.js +++ /dev/null @@ -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) - } - })