apache / apache/ponymail

Issues with scaling; inefficient use of client resources

Open
#186 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
80
Forks
32
PR merge metrics
No merged PRs in 30d

Description

The backend database should not have any problems with handling very large numbers of mailing lists and mails in each list.

However the scripts that interface with the database mostly assume that it is OK to return data from all lists or all mails (at least up to a certain limit). In the case of scripts that are directly accessed by the Javascript GUI, this means that the browser can be presented with very large datasets, requiring a lot of network traffic. This can impact browser memory requirements and potentially broadband data usage. It certainly impacts mobile data usage.

Much of the data that is returned by the scripts is not needed immediately, and may never be used.
Whilst this does reduce lag, it is wasteful of client resources

For example, the initial display only shows domain names, yet the code has used both preferences.lua and pminfo.lua both of which return data about all lists as well as all domains.

Again, once a mailing list is selected, the entire thread structure (with a limit of 15k) for the current period is downloaded by stats.lua, even though only a few mails can be displayed at a time.

Also preferences.lua and pminfo.lua return some overlapping data

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading preferences.lua, pminfo.lua, and stats.lua, then trace how the JavaScript GUI consumes their responses for the initial display and selected-list view. Define done as avoiding unnecessary client data transfer while preserving the data required by those views; the issue names no specific test or command to run.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, lua
Domain
backend-api-design, frontend, performance
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.