keystonejs/keystone-classic

[0.x] Keystone OOMkilled on large CSV export

Open

#2,592 opened on Apr 8, 2016

View on GitHub
 (1 comment) (0 reactions) (0 assignees)JavaScript (2,288 forks)batch import
bughelp wanted

Repository metrics

Stars
 (14,656 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

When exporting a keystone list as csv, the entire backing collection is loaded into memory before sending the response. This renders the export feature useless for a large collection; keystone will exhaust the available memory on the machine until it gets OOMkilled.

Instead, the export should be streamed back to the client so that we never load more than a cursor's worth of data in memory.

Contributor guide