swift/test/unit
Tim Burke b68cc893f7 proxy: Reduce round-trips to memcache and backend on info misses
Following a memcache restart in a SAIO, I've seen the following happen
during an object HEAD:

- etag_quoter wants to get account/container info to decide whether to
  quote-wrap or not
- account info is a cache miss, so we make a no-auth'ed HEAD to the next
  filter in the pipeline
- eventually this gets down to ratelimit, which *also* wants to get
  account info
- still a cache miss, so we make a *separate* HEAD that eventually talks
  to the backend and populates cache
- ratelimit realizes it can't ratelimit the request and lets the
  original HEAD through to the backend

There's a related bug about how something similar can happen when the
backend gets overloaded, but *everything is working* -- we just ought to
be talking straight to the proxy app.

Note that there's likely something similar going on with container info,
but the hardcoded 10% sampling rate makes it harder to see if you're
monitoring raw metric streams.

I thought I fixed this in the related change, but no :-/

Change-Id: I49447c62abf9375541f396f984c91e128b8a05d5
Related-Change: If9249a42b30e2a2e7c4b0b91f947f24bf891b86f
Related-Bug: #1883214
2023-03-01 15:02:42 -08:00
..
account Merge "Remove :memory: from DatabaseBrokers and unittests" 2023-02-09 08:46:13 +00:00
cli Merge "sharder: update own_sr stats explicitly" 2022-12-09 22:13:44 +00:00
common Merge "Use FakeSwift in account quota tests" 2023-02-28 22:44:03 +00:00
container Merge "sharder: make misplaced objects lookup faster" 2023-02-25 07:27:11 +00:00
obj Test x-backend-replication header with POST 2023-02-16 10:39:30 +00:00
proxy proxy: Reduce round-trips to memcache and backend on info misses 2023-03-01 15:02:42 -08:00
test_locale py3: port the test of locale 2019-06-19 09:54:14 -07:00
__init__.py tests: Get rid of test.unit.SkipTest 2023-02-16 23:59:53 -08:00
helpers.py Merge "Clean up a bunch of deprecation warnings" 2023-01-18 21:01:11 +00:00