Description
Using the following sample code:
// Include required NPM dependencies
var express = require('express');
var gcloud = require('gcloud');
// Initialize app and GCloud GCS module
var app = express();
var gcs = gcloud.storage({ projectId: '...', keyFilename: './key.json' });
// Create one route to proxy a file from GCS
app.get('/my-file.zip', function(req, res) {
var bucket = gcs.bucket('my-bucket');
var file = bucket.file('my-file.zip');
var readStream = file.createReadStream();
return readStream.pipe(res);
});
// Listen on a port
app.listen(8080);
We're seeing that we're limited to 5 concurrent connections to GCS. This sucks when the server running this code can handle far more than 5 concurrent connections -- as we're shoving N connections through a 5-connection pipe.
From @robertdimarco:
By default, requests to GCS are pooled and limited to 5 concurrent connections.
Node.js, prior to v0.12 or io.js, automatically pools outbound requests to five concurrent requests per host. This can be overridden globally per-application or on a per-package basis. Our prior integration with AWS / S3 had disabled this limit at the package level, anticipating our use case. Node.js v0.12 and io.js both remove this pooling altogether.
Can we remove the connection pooling limits for our server process altogether ? (also see https://github.com/substack/hyperquest#rant)