Commit 329857de authored by Jan Krcal's avatar Jan Krcal Committed by Commit Bot

[USS] Fix reporting of entities counts for USS data types

This CL fixes a bug in reporting counts of sync entities for USS data
types (introduced in
https://chromium-review.googlesource.com/c/chromium/src/+/1131747).

Previously, also tombstones were recorded as entities which were not
recorded for directory data types. After this CL, only non-deleted
entities are consistently recorded for all data types.

Bug: 859859
Change-Id: I8ee885ca6901f77feba6c5e8420b28a4b9bf8ce6
Reviewed-on: https://chromium-review.googlesource.com/1196449
Commit-Queue: Jan Krcal <jkrcal@chromium.org>
Reviewed-by: default avatarMarc Treib <treib@chromium.org>
Reviewed-by: default avatarSteven Holte <holte@chromium.org>
Cr-Commit-Position: refs/heads/master@{#587801}
parent c5ffb93e
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
namespace { namespace {
const char kModelTypeMemoryHistogramPrefix[] = "Sync.ModelTypeMemoryKB."; const char kModelTypeMemoryHistogramPrefix[] = "Sync.ModelTypeMemoryKB.";
const char kModelTypeCountHistogramPrefix[] = "Sync.ModelTypeCount2."; const char kModelTypeCountHistogramPrefix[] = "Sync.ModelTypeCount3.";
} // namespace } // namespace
void SyncRecordModelTypeMemoryHistogram(syncer::ModelType model_type, void SyncRecordModelTypeMemoryHistogram(syncer::ModelType model_type,
......
...@@ -44,6 +44,19 @@ int64_t FindTheNthBigestProtoTimeStamp(std::vector<int64_t> time_stamps, ...@@ -44,6 +44,19 @@ int64_t FindTheNthBigestProtoTimeStamp(std::vector<int64_t> time_stamps,
return time_stamps[n - 1]; return time_stamps[n - 1];
} }
int CountNonTombstoneEntries(
const std::map<std::string, std::unique_ptr<ProcessorEntityTracker>>&
entities) {
int count = 0;
for (const auto& kv : entities) {
if (!kv.second->metadata().is_deleted()) {
++count;
}
}
return count;
}
} // namespace } // namespace
ClientTagBasedModelTypeProcessor::ClientTagBasedModelTypeProcessor( ClientTagBasedModelTypeProcessor::ClientTagBasedModelTypeProcessor(
...@@ -1263,17 +1276,13 @@ void ClientTagBasedModelTypeProcessor::GetStatusCountersForDebugging( ...@@ -1263,17 +1276,13 @@ void ClientTagBasedModelTypeProcessor::GetStatusCountersForDebugging(
StatusCountersCallback callback) { StatusCountersCallback callback) {
StatusCounters counters; StatusCounters counters;
counters.num_entries_and_tombstones = entities_.size(); counters.num_entries_and_tombstones = entities_.size();
for (const auto& kv : entities_) { counters.num_entries = CountNonTombstoneEntries(entities_);
if (!kv.second->metadata().is_deleted()) {
++counters.num_entries;
}
}
std::move(callback).Run(type_, counters); std::move(callback).Run(type_, counters);
} }
void ClientTagBasedModelTypeProcessor::RecordMemoryUsageAndCountsHistograms() { void ClientTagBasedModelTypeProcessor::RecordMemoryUsageAndCountsHistograms() {
SyncRecordModelTypeMemoryHistogram(type_, EstimateMemoryUsage()); SyncRecordModelTypeMemoryHistogram(type_, EstimateMemoryUsage());
SyncRecordModelTypeCountHistogram(type_, entities_.size()); SyncRecordModelTypeCountHistogram(type_, CountNonTombstoneEntries(entities_));
} }
} // namespace syncer } // namespace syncer
...@@ -102912,6 +102912,10 @@ uploading your change for review. ...@@ -102912,6 +102912,10 @@ uploading your change for review.
<histogram base="true" name="Sync.ModelTypeCount2" units="entries" <histogram base="true" name="Sync.ModelTypeCount2" units="entries"
expires_after="2020-02-01"> expires_after="2020-02-01">
<obsolete>
Deprecated as of 8/2018. Replaced by Sync.ModelTypeCount3 which fixes a bug
in recording the counts for USS data types
</obsolete>
<owner>gangwu@chromium.org</owner> <owner>gangwu@chromium.org</owner>
<summary> <summary>
Counts the number of entries for each model type. For directory types, the Counts the number of entries for each model type. For directory types, the
...@@ -102921,6 +102925,17 @@ uploading your change for review. ...@@ -102921,6 +102925,17 @@ uploading your change for review.
</summary> </summary>
</histogram> </histogram>
<histogram base="true" name="Sync.ModelTypeCount3" units="entries"
expires_after="2020-03-01">
<owner>jkrcal@chromium.org</owner>
<summary>
Counts the number of entries for each model type. For directory types, the
count is based on the directory contents, for USS types, the count is based
on metadata entries for the type. Recorded after sync configuration. This
metric is used for monitoring general health of sync client-side code.
</summary>
</histogram>
<histogram base="true" name="Sync.ModelTypeEntityChange" <histogram base="true" name="Sync.ModelTypeEntityChange"
enum="SyncEntityChange" expires_after="2020-02-01"> enum="SyncEntityChange" expires_after="2020-02-01">
<owner>jkrcal@chromium.org</owner> <owner>jkrcal@chromium.org</owner>
...@@ -129967,7 +129982,12 @@ uploading your change for review. ...@@ -129967,7 +129982,12 @@ uploading your change for review.
Deprecated 7/2018. Replaced by Sync.ModelTypeCount2. Deprecated 7/2018. Replaced by Sync.ModelTypeCount2.
</obsolete> </obsolete>
</affected-histogram> </affected-histogram>
<affected-histogram name="Sync.ModelTypeCount2"/> <affected-histogram name="Sync.ModelTypeCount2">
<obsolete>
Deprecated 8/2018. Replaced by Sync.ModelTypeCount3.
</obsolete>
</affected-histogram>
<affected-histogram name="Sync.ModelTypeCount3"/>
<affected-histogram name="Sync.ModelTypeEntityChange"/> <affected-histogram name="Sync.ModelTypeEntityChange"/>
<affected-histogram name="Sync.ModelTypeMemoryKB"/> <affected-histogram name="Sync.ModelTypeMemoryKB"/>
</histogram_suffixes> </histogram_suffixes>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment