Skip to content
This repository has been archived by the owner on Jun 12, 2018. It is now read-only.

The task export_all_contacts collects all contacts in memory. #1229

Open
hodgestar opened this issue Mar 23, 2015 · 3 comments
Open

The task export_all_contacts collects all contacts in memory. #1229

hodgestar opened this issue Mar 23, 2015 · 3 comments

Comments

@hodgestar
Copy link
Contributor

For accounts with lots of contacts, this will run out of RAM and fail. We need to ensure it does not collect all contacts in memory and collects them on disk instead.

Alternatively, we need to add a streaming contacts export.

@jerith
Copy link
Member

jerith commented Mar 23, 2015

There are a variety of problems with doing this sort of export by email, especially with large data volumes (which is the cause of the memory usage issue here). We should probably expose the streaming HTTP version and kill the email entirely.

@smn
Copy link
Member

smn commented Mar 24, 2015

I'm a bit -1 on streaming to end users. Even for developers it's a major undertaking to download the kinds of JSON/CSV files we produce in a streaming fashion, Internet dies, computers go to sleep, batteries run out etc... And worst of all, we don't support resuming streaming from where things left off.

I'd be +1 on a streaming API that is used internally to stream to some temporary location and then use nginx to serve it as a static & resumable download after having emailed the download link to the end user.

@rudigiesler
Copy link

+1 on smn's idea. A paginated response does solve all the problems of resuming, but does require some sort of client.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants