#include <grpc/support/port_platform.h>
#include <inttypes.h>
#include <stdlib.h>
#include <algorithm>
#include <atomic>
#include <cmath>
#include <map>
#include <memory>
#include <string>
#include <type_traits>
#include <utility>
#include <vector>
#include "absl/base/attributes.h"
#include "absl/base/thread_annotations.h"
#include "absl/container/inlined_vector.h"
#include "absl/memory/memory.h"
#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include "absl/strings/numbers.h"
#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
#include "xxhash.h"
#include <grpc/impl/codegen/connectivity_state.h>
#include <grpc/impl/codegen/grpc_types.h>
#include <grpc/support/log.h>
#include "src/core/ext/filters/client_channel/client_channel.h"
#include "src/core/ext/filters/client_channel/lb_policy.h"
#include "src/core/ext/filters/client_channel/lb_policy/subchannel_list.h"
#include "src/core/ext/filters/client_channel/lb_policy_factory.h"
#include "src/core/ext/filters/client_channel/lb_policy_registry.h"
#include "src/core/ext/filters/client_channel/subchannel_interface.h"
#include "src/core/lib/address_utils/sockaddr_utils.h"
#include "src/core/lib/debug/trace.h"
#include "src/core/lib/gpr/string.h"
#include "src/core/lib/gprpp/debug_location.h"
#include "src/core/lib/gprpp/orphanable.h"
#include "src/core/lib/gprpp/ref_counted.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/lib/gprpp/unique_type_name.h"
#include "src/core/lib/iomgr/closure.h"
#include "src/core/lib/iomgr/error.h"
#include "src/core/lib/iomgr/exec_ctx.h"
#include "src/core/lib/iomgr/work_serializer.h"
#include "src/core/lib/json/json.h"
#include "src/core/lib/resolver/server_address.h"
#include "src/core/lib/transport/connectivity_state.h"
Go to the source code of this file.
Namespaces | |
grpc_core | |
Macros | |
#define | XXH_INLINE_ALL |
Functions | |
void | grpc_core::GrpcLbPolicyRingHashInit () |
void | grpc_core::GrpcLbPolicyRingHashShutdown () |
void | grpc_core::ParseRingHashLbConfig (const Json &json, size_t *min_ring_size, size_t *max_ring_size, std::vector< grpc_error_handle > *error_list) |
UniqueTypeName | grpc_core::RequestHashAttributeName () |
Variables | |
TraceFlag | grpc_core::grpc_lb_ring_hash_trace (false, "ring_hash_lb") |
#define XXH_INLINE_ALL |
Definition at line 43 of file ring_hash.cc.
|
private |
Definition at line 194 of file ring_hash.cc.
|
private |
Definition at line 342 of file ring_hash.cc.
|
private |
Definition at line 353 of file ring_hash.cc.
|
private |
Definition at line 202 of file ring_hash.cc.
uint64_t hash |
Definition at line 284 of file ring_hash.cc.
|
private |
Definition at line 272 of file ring_hash.cc.
|
private |
Definition at line 278 of file ring_hash.cc.
|
private |
Definition at line 357 of file ring_hash.cc.
|
private |
Definition at line 138 of file ring_hash.cc.
|
private |
Definition at line 137 of file ring_hash.cc.
|
mutableprivate |
Definition at line 204 of file ring_hash.cc.
|
private |
Definition at line 265 of file ring_hash.cc.
|
private |
Definition at line 263 of file ring_hash.cc.
|
private |
Definition at line 264 of file ring_hash.cc.
|
private |
Definition at line 266 of file ring_hash.cc.
|
private |
Definition at line 346 of file ring_hash.cc.
|
private |
Definition at line 268 of file ring_hash.cc.
|
private |
Definition at line 341 of file ring_hash.cc.
Definition at line 359 of file ring_hash.cc.
RingHashSubchannelData* subchannel |
Definition at line 285 of file ring_hash.cc.
|
private |
Definition at line 294 of file ring_hash.cc.
|
private |
Definition at line 343 of file ring_hash.cc.