pimutils / pimutils/vdirsyncer
DAV storage should chunk get_multi() and list() into new requests
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.9k
- Forks
- 185
- Avg merge
- 11h 49m
- Merged PRs (30d)
- 1
Description
get multi
Currently we create an arbitrarily sized multiget request. We should introduce a configurable limit that would make the DAV storage split up the multiget request into multiple smaller ones.
list
It's not clear how to split up this request, since we can't estimate the size from the clientside. This would likely require special support from the server (for e.g. pagination), which is not guaranteed at all. An option is to initially send the request like we do now, but catch HTTP statuses like 507. But again, how we would ask the server to only send a part of its collection listing is completely unclear.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the DAV storage implementation and its get_multi() and list() entry points, then inspect how requests are currently assembled. Done should include a configurable limit that splits multiget requests and a clearly defined, supported approach for handling oversized collection listings.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100