[cobalt][LocalAggregation] 64-bit string hashes

An AggregationPeriodBucket field is added to store 64-bit string hashes
hased with Farmhash Fingerprint 64. The field is used to provide soft
migration of Farmhash Fingerprint 64 in Cobalt core.

Tested: ./cobaltb.py test
Tested: Ran dangerous change checks
Bug: 321745113
Change-Id: I79b5051a1bd2589b824245c3ed6be61be2091022
Reviewed-on: https://fuchsia-review.googlesource.com/c/cobalt/+/994051
Reviewed-by: Alex Pankhurst <pankhurst@google.com>
Commit-Queue: Anivia Li <aniviali@google.com>
diff --git a/src/local_aggregation/local_aggregation.proto b/src/local_aggregation/local_aggregation.proto
index c43c4f1..dfcca0c 100644
--- a/src/local_aggregation/local_aggregation.proto
+++ b/src/local_aggregation/local_aggregation.proto
@@ -110,8 +110,28 @@
   // entries may be stored in different buckets for days that make up the
   // aggregation period. Apply string_buffer_max limits to the combination of
   // all the string_hashes found in all the aggregation period buckets.
+  //
+  // Only one of `string_hashes` or `string_hashes_ff64` should be used.
+  //
+  // TODO(b/321745113): Deprecate string_hashes after Cobalt local aggregation supports
+  // `string_hashes_ff64`.
   repeated bytes string_hashes = 2;
 
+  // Used for metrics of type STRING only. The list is append only, as the
+  // indexes into the list appear below in the StringHistogram.histogram map.
+  // This list should not exceed string_buffer_max entries per aggregation
+  // period bucket.
+  // WARNING: for multi-day aggregation periods, more than string_buffer_max
+  // entries may be stored in different buckets for days that make up the
+  // aggregation period. Apply string_buffer_max limits to the combination of
+  // all the string_hashes found in all the aggregation period buckets.
+  //
+  // Only one of `string_hashes` or `string_hashes_ff64` should be used.
+  //
+  // Note, Cobalt local aggregation does not yet support this field and it shouldn't be
+  // used.
+  repeated bytes string_hashes_ff64 = 6;
+
   // Aggregates for this report, with the filtered system profile they apply
   // to. SELECT_FIRST and SELECT_LAST reports will have only a single entry.
   // REPORT_ALL reports may have multiple entries.