node package manager


write to a single file from a cluster

Cluster file writer

This writter attemps to manage two backpressures / bottlenecks in a master / worker scenario where many workers send data to the master to be written to a file.

The first bottleneck is on the file written by the master and it is handled by sending a pause / resume message back to the workers, mimicing a normal stream backpressure behavior.

The second is backpressure from the underlying stream between each worker and master (Assuming the workers pump a lot of data to the master). Unfortunately there is no 'drain' event for communication channel used between the worker and the master (AFAIK it is not properly exposed), so this module tries its best to mimic it using timers.

npm install cluster-file-writer

in master

var ClusterFileWriter = require('../lib/ClusterFileWriter');
var master = new ClusterFileWriter.Master('test.log');

in worker

var ClusterFileWriter = require('../lib/ClusterFileWriter');
var worker = new ClusterFileWriter.Worker();

Data integrity tests are included

File name change mid flight needs a test

Backpressure in scenario where master pumps a lot of data to workers

Rewrite tests with mocha

Worker death tests need to be perfected