Closed
Bug 913813
Opened 12 years ago
Closed 12 years ago
HTTP cache v2: cache miss telemetry
Categories
(Core :: Networking: Cache, defect)
Core
Networking: Cache
Tracking
()
RESOLVED
FIXED
mozilla27
People
(Reporter: mayhemer, Assigned: mayhemer)
References
(Blocks 1 open bug)
Details
(Whiteboard: [cache2])
Attachments
(1 file, 1 obsolete file)
7.56 KB,
patch
|
mayhemer
:
review+
mayhemer
:
checkin+
|
Details | Diff | Splinter Review |
No description provided.
![]() |
Assignee | |
Comment 1•12 years ago
|
||
- adds HIT and MISS timing telemetry to both the new and old code
- in the new code it wraps the time needed to load a cache file
- in the old code it wraps opening a cache entry (so it may also include measurements for already opened entries ; your judgment will say if this is acceptable or not, I personally think it is also according the first tests and fact we have the distribution graphs)
- when the cache file is new or the access == WRITE we accumulate the time as MISS
- when the cache file is found (not new) or access != WRITE (i.e. is R/W or R/O) we accumulate as HIT
- all measurements include main thread -> I/O thread -> main thread hops, so it includes all wait times that users perceive and thus giving a complete picture
Assignee: nobody → honzab.moz
Status: NEW → ASSIGNED
Attachment #802960 -
Flags: review?(michal.novotny)
![]() |
Assignee | |
Updated•12 years ago
|
Attachment #802960 -
Attachment description: v2 → v1
Comment 2•12 years ago
|
||
Comment on attachment 802960 [details] [diff] [review]
v1
Review of attachment 802960 [details] [diff] [review]:
-----------------------------------------------------------------
::: netwerk/cache2/OldWrappers.cpp
@@ +560,5 @@
> LOG((" duplicate call, bypassed"));
> return NS_OK;
> }
>
> + if (!mLoadStart.IsNull() && NS_SUCCEEDED(mStatus)) {
mLoadStart can't be null here, right?
Attachment #802960 -
Flags: review?(michal.novotny) → review+
![]() |
Assignee | |
Comment 3•12 years ago
|
||
(In reply to Michal Novotny (:michal) from comment #2)
> > + if (!mLoadStart.IsNull() && NS_SUCCEEDED(mStatus)) {
>
> mLoadStart can't be null here, right?
True.
![]() |
Assignee | |
Comment 4•12 years ago
|
||
Michal, should we bypass accumulation for OPEN_TRUNCATE? I think we should...
Flags: needinfo?(michal.novotny)
Comment 5•12 years ago
|
||
(In reply to Honza Bambas (:mayhemer) from comment #4)
> Michal, should we bypass accumulation for OPEN_TRUNCATE? I think we
> should...
In the new cache code, there is quite a different code path for OPEN_TRUNCATE and we return the entry immediately. So it makes sense to not include these numbers to NETWORK_CACHE_V2_HIT_TIME_MS. In the old cache, there isn't much difference between ACCESS_READ_WRITE and ACCESS_WRITE. Maybe we should create a new telemetry probe for OPEN_TRUNCATE for both, the old as well as the new cache? This would give as some numbers showing how much better the new cache behaves in this case.
Flags: needinfo?(michal.novotny)
![]() |
Assignee | |
Comment 6•12 years ago
|
||
Yes, I'm having a similar idea.
FYI: I'm rewriting wysiwyg channel to use the new cache API. Found to be not that trivial. I had to introduce a synchronous way to open cache entries when access == WRITE and invoked on the cache thread. Clearly, old synchronous OpenCacheEntry with WRITE only access gives an entry immediately too as the new cache does, but only when on the cache thread.
However, there is a major prevalence of cases where AsyncOpenURI is called on main thread or non-cache thread where we have to do the whole dance.
![]() |
Assignee | |
Comment 7•12 years ago
|
||
Attachment #802960 -
Attachment is obsolete: true
Attachment #810724 -
Flags: review+
Attachment #810724 -
Flags: checkin+
Comment 8•12 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla27
You need to log in
before you can comment on or make changes to this bug.
Description
•