This will guide you through setting up a replica set in a docker environment using.
- Docker Compose
- MongoDB Replica Sets
- Mongoose
- Mongoose Transactions
Thanks to https://gist.github.com/asoorm for helping with their docker-compose file!
/* | |
this needs replicaSet to work | |
*/ | |
const mongoose = require('mongoose'); | |
async function runTransaction(transactionFunction, ...args) { | |
let session = null; | |
try { | |
session = await mongoose.startSession(); |
This will guide you through setting up a replica set in a docker environment using.
Thanks to https://gist.github.com/asoorm for helping with their docker-compose file!
// This was basically ripped straight from http://en.wikipedia.org/wiki/Multiply-with-carry, just javscriptified. | |
var CMWCRand = function(seed) { | |
var i, PHI = 0x9e3779b9; | |
if(!seed) { seed = Date.now(); } | |
var Q = this.Q = new Uint32Array(4096); | |
this.c = 362436; | |
this.i = 4095; | |
Q[0] = seed; |
#!/bin/bash | |
if [ "$#" -ne 2 ]; then | |
echo "Usage: $0 <process_name> <cores_list>" | |
echo "Example: $0 swoole_server 0,1,2" | |
exit 1 | |
fi | |
----------------------------------------------------------------------------------------------------- | |
Read Test | |
fio --name=randread --ioengine=libaio --iodepth=16 --rw=randread --bs=4k --direct=0 --size=512M --numjobs=4 --runtime=240 --group_reporting | |
----------------------------------------------------------------------------------------------------- | |
writes a total 2GB files [4 jobs x 512 MB = 2GB] running 4 processes at a time: | |
fio --name=randwrite --ioengine=libaio --iodepth=1 --rw=randwrite --bs=4k --direct=0 --size=512M --numjobs=4 --runtime=240 --group_reporting | |
----------------------------------------------------------------------------------------------------- | |
Read Write Performance Test | |
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=random_read_write.fio --bs=4k --iodepth=64 --size=4G --readwrite=randrw --rwmixread=75 |