HumanCellAtlas/matrix-service

Implement caching layer

calvinnhieu opened this issue · 1 comments

Design doc: https://docs.google.com/document/d/1P6boQoVya126qm0JI7oqyJ24bLdUw1cD7-BrGlxPuUs/edit

Changes:

  • Generate and store RequestHash field in Dynamo RequestTable
  • Implement cache hit path in query_runner.py
  • Update output matrix S3 prefix to include data_version and request_hash
  • Update GET endpoint to retrieve cached entries

DoD:

  • Requesting the same matrix multiple times (defined by resulting from the same cellkey set) does not generate a new matrix and returns a copy of an existing matrix
  • No regression in v0

This was postponed to Milestone 2. We need to buffer a bit more time for emerging issues such as https://humancellatlas.slack.com/archives/CC9AR11T7/p1563988186044800