Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ type = "docs"
<p>This class is implemented based on the proto2 reflection. The performance should be good enough for normal usages. However, for places where the performance is extremely sensitive, there are several alternatives:</p>
<ul>
<li>Comparing serialized string Downside: false negatives (there are messages that are the same but their serialized strings are different).</li>
<li>Equals code generator by compiler plugin (net/proto2/contrib/equals_plugin) Downside: more generated code; maintenance overhead for the additional rule (must be in sync with the original proto_library).</li>
</ul>
<p>Note on handling of google.protobuf.Any: <a href='#MessageDifferencer'>MessageDifferencer</a> automatically unpacks Any::value into a <a href='google.protobuf.message#Message'>Message</a> and compares its individual fields. Messages encoded in a repeated Any cannot be compared using TreatAsMap.</p>
<p>Note on thread-safety: <a href='#MessageDifferencer'>MessageDifferencer</a> is <i>not</i> thread-safe. You need to guard it with a lock to use the same <a href='#MessageDifferencer'>MessageDifferencer</a> instance from multiple threads. Note that it's fine to call static comparison methods (like <a href='#MessageDifferencer.Equals'>MessageDifferencer::Equals</a>) concurrently, but it's not recommended for performance critical code as it leads to extra allocations. </p>
Expand Down
12 changes: 0 additions & 12 deletions content/support/debugging-playbook.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,3 @@ bazel cquery 'somepath("//...", "@com_google_protobuf//:all")'

**Note:** Prebuilts are only available for our standard set of platforms. Anyone
on a nonstandard platform will have to build protoc from source.

## Protostats Flume Pipeline

The Protostats pipeline runs on borg through a Plx workflow defined by files in
google3/net/proto2/tools/internal/protostats and it requires quota to run. The
quota is taken from the `gpi-flex-pool`. Currently, Borg quota is registered for
the `protobuf-stats` user in 3 different cells: `yq`, `viatlrb`, and `vibrura`.
The latter are go/virtual-cells. The cell diversity and the use of virtual cells
are both intended to provide redundancy against stockouts caused by real
resource constraints or the occasional DiRT exercise. If registration needs to
be adjusted, see directions in
google3/net/proto2/tools/internal/protostats/BUILD.
Loading