Skip to content

Instantly share code, notes, and snippets.

@bkw
Created November 20, 2015 16:03
Show Gist options
  • Save bkw/6c8d6d80e2d382ced59d to your computer and use it in GitHub Desktop.
Save bkw/6c8d6d80e2d382ced59d to your computer and use it in GitHub Desktop.
cassandra stream out of memory example
#!/usr/bin/env node
'use strict'
const config = require('config')
const cassandra = require('@our/cassandra-connection-wrapper')
const stream = require('stream')
let rowcount = 0
setInterval(() => console.log(rowcount, process.memoryUsage()), 1000)
cassandra(config.get('cassandra'))
.then(client => {
const writer = new stream.Writable({
decodeStrings: false,
objectMode: true,
write: (chunk, encoding, next) => {
++rowcount
// this works:
// setImmediate(next)
// this leads to OOM:
setTimeout(next, 0)
}
})
return client.stream('SELECT small_buffer from large.table', [], { autoPage: true })
.pipe(writer)
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment