Story #13110

Updated by Tom Morris about 1 year ago


* Cache filesystem objects in keep-web, instead of rebuilding from manifest on each request → less time, more RAM
* Reduce memory use (e.g., pass keepclient pointer into storedSegment methods instead of keeping a copy in the struct)
* Incremental loading (don't populate a dirnode until someone accesses it)
* Cache/evict partial data blocks
* Test/benchmark using a variety of webdav clients (Windows, linux davfs, OSX?)

From #13272:

Cache the filesystem layout, so a sequence of N webdav requests with the same token and same/overlapping paths don't need to retrieve the whole filesystem layout from API server N times

Use a single cache entry for any given {collection, token} tuple, regardless of whether it's accessed via /c=UUID/, /by_id/UUID/, /by_id/PDH/, /users/alice/foo/, etc.