-
Notifications
You must be signed in to change notification settings - Fork 461
Description
What problem would the feature you're requesting solve? Please describe.
When a function accesses a remote object via bindings (e.g. blob from storage) or produces an output object, we should cache the object so that it can be served from memory the next time it is requested to improve performance (latency/throughput of fetching the object from remote storage).
Describe the solution you'd like
Using the shared memory architecture implemented earlier to exchange data between the host and out-of-proc language workers (#6791), we can maintain a caching layer on top. Instead of freeing the shared memory resources after single-use, the caching layer can keep data around and provide a mechanism for the storage extension to query that before going to remote storage to retrieve an object. This will reduce the time taken to retrieve objects from remote storage, reduce traffic to upstream storage servers and perform better (perhaps more predictable) performance to the application.
Describe alternatives you've considered
n/a
Additional context
PRs for the caching layer:
#7280
Azure/azure-webjobs-sdk#2692
Azure/azure-sdk-for-net#20209
Azure/azure-functions-python-worker#844
#7757
PRs for shared memory communication between host and workers (completed):
#6791
#6836
Azure/azure-functions-python-worker#816