Namespaces | Macros | Functions | Variables
ring_hash.cc File Reference
#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"
Include dependency graph for ring_hash.cc:

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")
 

Macro Definition Documentation

◆ XXH_INLINE_ALL

#define XXH_INLINE_ALL

Definition at line 43 of file ring_hash.cc.

Variable Documentation

◆ address_

ServerAddress address_
private

Definition at line 194 of file ring_hash.cc.

◆ closure_

grpc_closure closure_
private

Definition at line 342 of file ring_hash.cc.

◆ config_

RefCountedPtr<RingHashLbConfig> config_
private

Definition at line 353 of file ring_hash.cc.

◆ connectivity_state_

std::atomic<grpc_connectivity_state> connectivity_state_ {GRPC_CHANNEL_IDLE}
private

Definition at line 202 of file ring_hash.cc.

◆ hash

uint64_t hash

Definition at line 284 of file ring_hash.cc.

◆ internally_triggered_connection_index_

absl::optional<size_t> internally_triggered_connection_index_
private

Definition at line 272 of file ring_hash.cc.

◆ last_failure_

absl::Status last_failure_
private

Definition at line 278 of file ring_hash.cc.

◆ latest_pending_subchannel_list_

OrphanablePtr<RingHashSubchannelList> latest_pending_subchannel_list_
private

Definition at line 357 of file ring_hash.cc.

◆ max_ring_size_

size_t max_ring_size_
private

Definition at line 138 of file ring_hash.cc.

◆ min_ring_size_

size_t min_ring_size_
private

Definition at line 137 of file ring_hash.cc.

◆ mu_

Definition at line 204 of file ring_hash.cc.

◆ num_connecting_

size_t num_connecting_ = 0
private

Definition at line 265 of file ring_hash.cc.

◆ num_idle_

size_t num_idle_
private

Definition at line 263 of file ring_hash.cc.

◆ num_ready_

size_t num_ready_ = 0
private

Definition at line 264 of file ring_hash.cc.

◆ num_transient_failure_

size_t num_transient_failure_ = 0
private

Definition at line 266 of file ring_hash.cc.

◆ parent_

RefCountedPtr<RingHash> parent_
private

Definition at line 346 of file ring_hash.cc.

◆ ring_

RefCountedPtr<Ring> ring_
private

Definition at line 268 of file ring_hash.cc.

◆ ring_hash_lb_

RefCountedPtr<RingHash> ring_hash_lb_
private

Definition at line 341 of file ring_hash.cc.

◆ shutdown_

bool shutdown_ = false
private

Definition at line 359 of file ring_hash.cc.

◆ subchannel

RingHashSubchannelData* subchannel

Definition at line 285 of file ring_hash.cc.

◆ subchannel_list_

OrphanablePtr<RingHashSubchannelList> subchannel_list_
private

Definition at line 294 of file ring_hash.cc.

◆ subchannels_

std::vector<RefCountedPtr<SubchannelInterface> > subchannels_
private

Definition at line 343 of file ring_hash.cc.



grpc
Author(s):
autogenerated on Fri May 16 2025 03:01:28