#include <P_ClusterHandler.h>
Inherits ClusterHandlerBase.
Definition at line 421 of file P_ClusterHandler.h.
anonymous enum |
Definition at line 460 of file P_ClusterHandler.h.
ClusterHandler::ClusterHandler | ( | ) |
Definition at line 136 of file ClusterHandler.cc.
References callout_cont, callout_events, external_incoming_control, external_incoming_open_local, ink_atomiclist_init(), ClusterHandlerBase::min_priority, Continuation::mutex, new_ProxyMutex(), outgoing_control_al, read_vcs_ready, SET_HANDLER, startClusterEvent(), and write_vcs_ready.
ClusterHandler::~ClusterHandler | ( | ) |
Definition at line 232 of file ClusterHandler.cc.
References ats_free(), channel_data, channels, clm, VIO::CLOSE, VConnection::do_io(), free_ClusterMachine(), ClusterMachine::free_connections, hostname, machine, MUTEX_TAKE_LOCK, MUTEX_UNTAKE_LOCK, n_channels, net_vc, ClusterMachine::num_connections, ClusterHandlerBase::read_vcs, the_cluster_config_mutex, this_ethread(), and ClusterHandlerBase::write_vcs.
int ClusterHandler::add_small_controlmsg_descriptors | ( | ) |
Definition at line 1864 of file ClusterHandler.cc.
References CLUSTER_CTRL_MSGS_SEND_TIME_STAT, CLUSTER_STATS, CLUSTER_SUM_DYN_STAT, ClusterMsg::control_bytes, ClusterMsg::count, Queue< C, L >::dequeue(), ClusterMsg::descriptor, DOUBLE_ALIGN, ink_get_hrtime(), LOG_EVENT_TIME, memcpy, ClusterState::msg, ClusterMsg::outgoing_small_control, and write.
Referenced by process_write().
void ClusterHandler::add_to_byte_bank | ( | ClusterVConnection * | vc | ) |
Definition at line 1075 of file ClusterHandler.cc.
References ClusterVConnection::byte_bank_q, ByteBankDescriptor::ByteBankDescriptor_alloc(), CLUSTER_INCREMENT_DYN_STAT, CLUSTER_LEVEL1_BANK_STAT, CLUSTER_MULTILEVEL_BANK_STAT, ClusterVC_remove_read(), delayed_reads, Queue< C, L >::enqueue(), DLL< C, L >::head, DLL< C, L >::push(), and ClusterVConnection::read_block.
Referenced by update_channels_partial_read(), and update_channels_read().
int ClusterHandler::alloc_channel | ( | ClusterVConnection * | vc, | |
int | requested_channel = 0 | |||
) |
Definition at line 653 of file ClusterHandlerBase.cc.
References ClusterVConnection::channel, channel_data, ClusterHandler::ChannelData::channel_number, channels, check_channel(), CL_TRACE, Debug, Queue< C, L >::dequeue(), free_local_channels, ink_assert, ink_release_assert, and n_channels.
Referenced by ClusterVConnection::start().
int ClusterHandler::beginClusterEvent | ( | int | event, | |
Event * | e | |||
) |
Definition at line 1204 of file ClusterHandlerBase.cc.
References EVENT_INTERVAL, Continuation::handleEvent(), mainClusterEvent(), and SET_HANDLER.
Referenced by startClusterEvent().
int ClusterHandler::build_controlmsg_descriptors | ( | ) |
Definition at line 1709 of file ClusterHandler.cc.
References Descriptor::channel, channels, CLUSTER_CMSG_QUEUES, clusterFunction, CONTROL_DATA, ClusterMsg::count, ClusterControl::data, invoke_remote_data_args::data_oc, ClusterMsg::descriptor, invoke_remote_data_args::dest_channel, Queue< C, L >::enqueue(), ClusterFunctionDescriptor::fMalloced, ClusterControl::free_data(), OutgoingControl::freeall(), ClusterControl::get_block(), ink_assert, ink_atomiclist_popall(), ink_release_assert, ClusterControl::len, Descriptor::length, invoke_remote_data_args::MagicNo, invoke_remote_data_args::magicno, MAX_TCOUNT, ClusterState::msg, invoke_remote_data_args::msg_oc, Continuation::mutex, ClusterMsg::outgoing_callout, ClusterMsg::outgoing_control, outgoing_control, outgoing_control_al, ClusterMsg::outgoing_small_control, ClusterVConnection::pending_remote_fill, Queue< C, L >::pop(), ClusterFunctionDescriptor::post_pfn, Queue< C, L >::push(), ClusterVConnection::remote_write_block, ClusterVCToken::sequence_number, Descriptor::sequence_number, SMALL_CONTROL_MESSAGE, invoke_remote_data_args::token, Descriptor::type, VALID_CHANNEL, Warning, and write.
Referenced by process_write().
bool ClusterHandler::build_data_vector | ( | char * | d, | |
int | len, | |||
bool | read_flag | |||
) |
Definition at line 381 of file ClusterHandler.cc.
References ClusterState::block, ClusterMsg::count, ClusterState::did, ink_assert, ClusterState::iov, ClusterState::msg, ClusterState::n_iov, new_constant_IOBufferData, new_IOBufferBlock, read, ClusterState::to_do, and write.
Referenced by startClusterEvent().
int ClusterHandler::build_freespace_descriptors | ( | ) |
Definition at line 1624 of file ClusterHandler.cc.
References Descriptor::channel, ClusterVConnection::channel, channels, CL_PROTO, cluster_reschedule_offset(), CLUSTER_SUM_DYN_STAT, CLUSTER_VC_READ_LIST_LEN_STAT, clusterVCAllocator, ClusterMsg::count, ClusterHandlerBase::cur_vcs, Debug, ClusterMsg::descriptor, enter_exit, ClusterVConnection::in_vcs, ink_assert, ink_atomiclist_popall(), ClusterVConnection::last_local_free, Descriptor::length, ClusterVConnState::link, MAX_TCOUNT, ClusterState::msg, SLink< C >::next, ClusterVConnState::priority, ClusterVConnectionBase::read, ClusterHandlerBase::read_vcs, read_vcs_ready, ClusterVCToken::sequence_number, Descriptor::sequence_number, ClusterVConnection::token, Descriptor::type, ClusterVConnection::type, valid_for_freespace_write(), VC_CLUSTER_CLOSED, VC_CLUSTER_READ, vc_ok_read(), vcs_push(), and write.
Referenced by process_write().
bool ClusterHandler::build_initial_vector | ( | bool | read_flag | ) |
Definition at line 412 of file ClusterHandler.cc.
References VIO::_cont, IncomingControl::alloc(), IncomingControl::alloc_data(), ClusterState::block, buffer_size_to_index(), bytes_IOBufferBlockList(), Descriptor::channel, channel_dummy_input, channel_dummy_output, channels, CL_NOTE, CL_WARN, CLUSTER_CONTROL_CHANNEL, CLUSTER_CTRL_MSGS_RECVD_STAT, CLUSTER_INCREMENT_DYN_STAT, CLUSTER_OP_DELAYED_FOR_LOCK_STAT, CLUSTER_SEND_DATA, CLUSTER_SEQUENCE_NUMBER, CLUSTER_SLOW_CTRL_MSGS_RECVD_STAT, consume_IOBufferBlockList(), ClusterMsg::control_bytes, ClusterMsg::count, ClusterControl::data, Debug, DEFAULT_MAX_BUFFER_SIZE, ClusterMsg::descriptor, ClusterState::did, Queue< C, L >::enqueue(), ClusterControl::fast_data(), free_locks(), ClusterControl::get_block(), ClusterMsg::get_block_descriptor(), ClusterMsg::get_block_header(), DLL< C, L >::head, incoming_control, ClusterVConnection::initial_data_bytes, ink_assert, ink_get_hrtime(), ink_release_assert, ClusterState::iov, ClusterVConnection::iov_map, ClusterControl::len, Descriptor::length, MAX_BUFFER_SIZE_INDEX, ClusterState::msg, VIO::mutex, MUTEX_TAKE_TRY_LOCK_FOR_SPIN, ClusterState::n_iov, new_constant_IOBufferData, new_IOBufferBlock, IOBufferBlock::next, ClusterMsg::outgoing_control, ClusterVConnection::pending_remote_fill, ClusterVConnectionBase::read, read, ClusterVConnection::read_block, READ_LOCK_SPIN_COUNT, ClusterVConnection::read_locked, IncomingControl::recognized_time, ClusterVConnection::remote_write_block, ClusterVCToken::sequence_number, Descriptor::sequence_number, ClusterMsg::state, thread, ClusterState::to_do, ClusterVConnection::token, Descriptor::type, VALID_CHANNEL, vc_ok_read(), vc_ok_write(), ClusterVConnState::vio, write, ClusterVConnection::write_bytes_in_transit, ClusterVConnection::write_list, ClusterVConnection::write_list_bytes, ClusterVConnection::write_list_tail, and ClusterVConnection::write_locked.
Referenced by process_read(), and process_write().
int ClusterHandler::build_write_descriptors | ( | ) |
Definition at line 1519 of file ClusterHandler.cc.
References Descriptor::channel, ClusterVConnection::channel, channels, CLUSTER_INCREMENT_DYN_STAT, CLUSTER_NO_REMOTE_SPACE_STAT, cluster_reschedule_offset(), CLUSTER_SUM_DYN_STAT, CLUSTER_VC_WRITE_LIST_LEN_STAT, clusterVCAllocator, ClusterMsg::count, ClusterHandlerBase::cur_vcs, ClusterMsg::descriptor, enter_exit, ClusterVConnection::in_vcs, ink_assert, ink_atomiclist_popall(), ink_release_assert, Descriptor::length, ClusterVConnState::link, MAX_CLUSTER_SEND_LENGTH, MAX_TCOUNT, ClusterState::msg, MUTEX_UNTAKE_LOCK, VIO::nbytes, VIO::ndone, SLink< C >::next, ClusterVConnection::remote_free, ClusterVCToken::sequence_number, Descriptor::sequence_number, thread, ClusterVConnection::token, Descriptor::type, ClusterVConnection::type, valid_for_data_write(), VC_CLUSTER_CLOSED, VC_CLUSTER_WRITE, vcs_push(), ClusterVConnState::vio, ClusterVConnectionBase::write, write, ClusterVConnection::write_list, ClusterVConnection::write_list_bytes, ClusterVConnection::write_locked, ClusterHandlerBase::write_vcs, and write_vcs_ready.
Referenced by process_write().
bool ClusterHandler::check_channel | ( | int | c | ) |
Definition at line 608 of file ClusterHandlerBase.cc.
References ats_malloc(), ats_realloc(), channel_data, ClusterHandler::ChannelData::channel_number, channels, Queue< C, L >::enqueue(), free_local_channels, LAST_DEDICATED_CHANNEL, local_channel(), MAX_CHANNELS, and n_channels.
Referenced by alloc_channel().
void ClusterHandler::close_ClusterVConnection | ( | ClusterVConnection * | vc | ) |
Definition at line 280 of file ClusterHandler.cc.
References ClusterVConnectionBase::active_timeout, ClusterVConnection::byte_bank_q, ByteBankDescriptor::ByteBankDescriptor_free(), Action::cancel(), ClusterVConnection::ch, CloseMessage::channel, ClusterVConnection::channel, CloseMessage::CLOSE_CHAN_MESSAGE_VERSION, CLOSE_CHANNEL_CLUSTER_FUNCTION, ClusterVConnectionBase::closed, CLUSTER_CON_TOTAL_TIME_STAT, CLUSTER_CONNECTIONS_OPEN_STAT, CLUSTER_DECREMENT_DYN_STAT, CLUSTER_LOCAL_CONNECTION_TIME_STAT, CLUSTER_REMOTE_CONNECTION_TIME_STAT, CLUSTER_SUM_DYN_STAT, clusterProcessor, ClusterVC_remove_read(), ClusterVC_remove_write(), clusterVCAllocator_free(), delayed_reads, Queue< C, L >::dequeue(), FORCE_CLOSE_ON_OPEN_CHANNEL, free_channel(), ClusterVConnection::have_all_data, DLL< C, L >::head, ClusterVConnectionBase::inactivity_timeout, ink_assert, ink_get_hrtime(), ink_release_assert, ClusterProcessor::invoke_remote(), VConnection::lerrno, CloseMessage::lerrno, local_channel(), machine, ClusterMachine::msg_proto_major, VIO::mutex, CloseMessage::protoToVersion(), ClusterVConnState::queue, ClusterVConnectionBase::read, ClusterVConnection::read_block, ClusterVConnection::read_locked, ClusterVConnection::remote_closed, DLL< C, L >::remove(), ClusterVCToken::sequence_number, CloseMessage::sequence_number, ClusterVConnection::start_time, CloseMessage::status, ClusterVConnection::token, ClusterVConnState::vio, ClusterVConnectionBase::write, ClusterVConnection::write_bytes_in_transit, ClusterVConnection::write_list, ClusterVConnection::write_list_bytes, ClusterVConnection::write_list_tail, and ClusterVConnection::write_locked.
Referenced by close_free_lock(), cluster_signal_and_update(), protoZombieEvent(), valid_for_data_write(), and valid_for_freespace_write().
void ClusterHandler::close_free_lock | ( | ClusterVConnection * | vc, | |
ClusterVConnState * | s | |||
) |
Definition at line 366 of file ClusterHandler.cc.
References close_ClusterVConnection(), VIO::mutex, MUTEX_UNTAKE_LOCK, ClusterVConnectionBase::read, ClusterVConnection::read_locked, thread, ClusterVConnState::vio, and ClusterVConnection::write_locked.
Referenced by cluster_signal_and_update_locked().
int ClusterHandler::cluster_signal_and_update | ( | int | event, | |
ClusterVConnection * | vc, | |||
ClusterVConnState * | s | |||
) |
Definition at line 570 of file ClusterHandlerBase.cc.
References VIO::_cont, close_ClusterVConnection(), ClusterVConnectionBase::closed, Continuation::handleEvent(), ink_assert, VC_EVENT_ERROR, ClusterVConnState::vio, ClusterVConnection::write_bytes_in_transit, and ClusterVConnection::write_list.
Referenced by cluster_signal_error_and_update(), remote_close(), valid_for_data_write(), and valid_for_freespace_write().
int ClusterHandler::cluster_signal_and_update_locked | ( | int | event, | |
ClusterVConnection * | vc, | |||
ClusterVConnState * | s | |||
) |
Definition at line 586 of file ClusterHandlerBase.cc.
References VIO::_cont, close_free_lock(), ClusterVConnectionBase::closed, Continuation::handleEvent(), ClusterVConnState::vio, ClusterVConnection::write_bytes_in_transit, and ClusterVConnection::write_list.
Referenced by complete_channel_read(), valid_for_data_write(), and valid_for_freespace_write().
int ClusterHandler::cluster_signal_error_and_update | ( | ClusterVConnection * | vc, | |
ClusterVConnState * | s, | |||
int | lerrno | |||
) |
Definition at line 601 of file ClusterHandlerBase.cc.
References cluster_signal_and_update(), ClusterVConnState::enabled, VConnection::lerrno, and VC_EVENT_ERROR.
Referenced by protoZombieEvent(), and remote_close().
bool ClusterHandler::complete_channel_read | ( | int | len, | |
ClusterVConnection * | vc | |||
) |
Definition at line 1355 of file ClusterHandler.cc.
References VIO::_cont, ClusterVConnection::channel, CL_TRACE, ClusterVConnectionBase::closed, cluster_signal_and_update_locked(), Debug, ClusterVConnState::enabled, ClusterVConnection::initial_data_bytes, ink_assert, Continuation::mutex, VIO::mutex, VIO::ndone, VIO::ntodo(), ClusterVConnection::pending_remote_fill, ClusterVConnectionBase::read, VC_CLUSTER_READ, VC_EVENT_READ_COMPLETE, VC_EVENT_READ_READY, vcs_push(), and ClusterVConnState::vio.
Referenced by finish_delayed_reads(), get_read_locks(), update_channels_partial_read(), and update_channels_read().
int ClusterHandler::compute_active_channels | ( | ) |
Definition at line 1350 of file ClusterHandlerBase.cc.
References channels, CLUSTER_IOV_NOT_OPEN, ClusterVConnection::iov_map, LAST_DEDICATED_CHANNEL, ClusterVConnection::last_local_free, n_channels, VIO::nbytes, VIO::ndone, ClusterVConnectionBase::read, ClusterVConnection::remote_free, VALID_CHANNEL, ClusterVConnState::vio, and ClusterVConnectionBase::write.
Referenced by dump_internal_data().
int ClusterHandler::connectClusterEvent | ( | int | event, | |
Event * | e | |||
) |
Definition at line 789 of file ClusterHandlerBase.cc.
References NetVCOptions::addr_binding, ats_ip4_set(), ats_ip_sa_cast(), CL_NOTE, CLUSTER_MEMBER_DELAY, cluster_packet_mark, cluster_packet_tos, cluster_port, ClusterMachine::cluster_port, cluster_receive_buffer_size, cluster_send_buffer_size, cluster_sockopt_flags, NetProcessor::connect_re(), Debug, DOT_SEPARATED, ET_CLUSTER, NetVCOptions::etype, EVENT_IMMEDIATE, EVENT_INTERVAL, eventProcessor, MachineList::find(), hostname, ClusterMachine::ip, ip, NetVCOptions::local_ip, machine, NET_EVENT_OPEN, net_vc, netProcessor, NetVCOptions::packet_mark, NetVCOptions::packet_tos, port, EventProcessor::schedule_imm(), EventProcessor::schedule_in(), SET_HANDLER, NetVCOptions::socket_recv_bufsize, NetVCOptions::socket_send_bufsize, NetVCOptions::sockopt_flags, startClusterEvent(), the_cluster_config(), and this_cluster_machine().
Referenced by ClusterProcessor::connect().
int ClusterHandler::do_open_local_requests | ( | ) |
Definition at line 3042 of file ClusterHandler.cc.
References ClusterVConnectionBase::action_, CL_TRACE, ClusterVCToken::clear(), CLUSTER_EVENT_OPEN_FAILED, clusterVCAllocator, Action::continuation, Debug, external_incoming_open_local, Continuation::handleEvent(), ink_atomiclist_popall(), ink_atomiclist_push(), Action::mutex, MUTEX_RELEASE, MUTEX_TRY_LOCK, Queue< C, L >::pop(), Queue< C, L >::push(), ClusterVConnection::start(), this_ethread(), and ClusterVConnection::token.
Referenced by mainClusterEvent().
void ClusterHandler::dump_internal_data | ( | ) |
Definition at line 1372 of file ClusterHandlerBase.cc.
References BUFFER_SIZE_FOR_INDEX, compute_active_channels(), DOT_SEPARATED, ink_release_assert, ip, MAX_IOBUFFER_SIZE, new_IOBufferBlock, and Note.
Referenced by mainClusterEvent().
void ClusterHandler::dump_read_msg | ( | ) |
Definition at line 1447 of file ClusterHandlerBase.cc.
References Alias32::byte, Descriptor::channel, ClusterMsg::control_bytes, ClusterMsg::count, ClusterMsg::descriptor, NetVConnection::get_remote_addr(), Descriptor::length, ClusterState::msg, net_vc, read, Descriptor::sequence_number, ClusterState::sequence_number, Descriptor::type, and Alias32::u32.
Referenced by process_read().
void ClusterHandler::dump_write_msg | ( | int | res | ) |
Definition at line 1429 of file ClusterHandlerBase.cc.
References Alias32::byte, Descriptor::channel, ClusterMsg::control_bytes, ClusterMsg::count, ClusterMsg::descriptor, NetVConnection::get_remote_addr(), Descriptor::length, ClusterState::msg, net_vc, Descriptor::sequence_number, ClusterState::sequence_number, ClusterState::to_do, Descriptor::type, Alias32::u32, and write.
void ClusterHandler::finish_delayed_reads | ( | ) |
Definition at line 1395 of file ClusterHandler.cc.
References MIOBuffer::append_block(), VIO::buffer, ClusterVConnection::byte_bank_q, ByteBankDescriptor::ByteBankDescriptor_free(), ClusterVConnection::channel, ClusterVC_remove_read(), complete_channel_read(), Debug, delayed_reads, Queue< C, L >::dequeue(), ByteBankDescriptor::get_block(), ink_assert, VIO::mutex, MUTEX_TRY_LOCK_SPIN, DLL< C, L >::pop(), DLL< C, L >::push(), ClusterVConnState::queue, ClusterVConnectionBase::read, IOBufferBlock::read_avail(), READ_LOCK_SPIN_COUNT, thread, vc_ok_read(), ClusterVConnState::vio, and MIOBufferAccessor::writer().
Referenced by mainClusterEvent().
void ClusterHandler::free_channel | ( | ClusterVConnection * | vc | ) |
Definition at line 697 of file ClusterHandlerBase.cc.
References ClusterVConnection::channel, channel_data, channels, CL_TRACE, Debug, Queue< C, L >::enqueue(), free_local_channels, LAST_DEDICATED_CHANNEL, and local_channel().
Referenced by close_ClusterVConnection().
void ClusterHandler::free_locks | ( | bool | read_flag, | |
int | i = CLUSTER_FREE_ALL_LOCKS | |||
) |
Definition at line 2324 of file ClusterHandler.cc.
References Descriptor::channel, channels, CLUSTER_CONTROL_CHANNEL, CLUSTER_FREE_ALL_LOCKS, CLUSTER_SEND_DATA, CLUSTER_SEND_FREE, ClusterMsg::count, ClusterMsg::descriptor, ClusterState::msg, VIO::mutex, MUTEX_UNTAKE_LOCK, ClusterVConnectionBase::read, read, ClusterVConnection::read_locked, ClusterMsg::state, thread, Descriptor::type, VALID_CHANNEL, ClusterVConnState::vio, write, and ClusterVConnection::write_locked.
Referenced by build_initial_vector(), get_write_locks(), process_read(), and process_write().
bool ClusterHandler::get_read_locks | ( | ) |
Definition at line 697 of file ClusterHandler.cc.
References VIO::_cont, MIOBuffer::append_block(), VIO::buffer, ClusterVConnection::byte_bank_q, ClusterState::bytes_xfered, ClusterVConnection::channel, Descriptor::channel, channels, CLUSTER_CONTROL_CHANNEL, CLUSTER_SEND_DATA, CLUSTER_SEQUENCE_NUMBER, complete_channel_read(), Debug, ClusterMsg::descriptor, ClusterState::did, DLL< C, L >::head, ink_assert, ink_release_assert, ClusterState::iov, MAX_TCOUNT, ClusterState::msg, VIO::mutex, MUTEX_TAKE_TRY_LOCK_FOR_SPIN, MUTEX_UNTAKE_LOCK, ClusterState::n_iov, ClusterVConnection::pending_remote_fill, ClusterVConnectionBase::read, read, ClusterVConnection::read_block, READ_LOCK_SPIN_COUNT, ClusterVConnection::read_locked, ClusterVCToken::sequence_number, Descriptor::sequence_number, thread, ClusterVConnection::token, Descriptor::type, VALID_CHANNEL, vc_ok_read(), ClusterVConnState::vio, and MIOBufferAccessor::writer().
Referenced by process_read().
bool ClusterHandler::get_write_locks | ( | ) |
Definition at line 799 of file ClusterHandler.cc.
References VIO::_cont, Descriptor::channel, channels, CLUSTER_CONTROL_CHANNEL, CLUSTER_SEND_DATA, CLUSTER_SEQUENCE_NUMBER, CLUSTER_WRITE, ClusterMsg::count, ClusterMsg::descriptor, free_locks(), ink_assert, ClusterState::msg, VIO::mutex, MUTEX_TAKE_TRY_LOCK_FOR_SPIN, ClusterVCToken::sequence_number, Descriptor::sequence_number, thread, ClusterVConnection::token, Descriptor::type, VALID_CHANNEL, ClusterVConnState::vio, ClusterVConnectionBase::write, write, WRITE_LOCK_SPIN_COUNT, and ClusterVConnection::write_locked.
Referenced by process_write().
bool ClusterHandler::local_channel | ( | int | i | ) | [inline] |
Definition at line 593 of file P_ClusterHandler.h.
References connector.
Referenced by check_channel(), close_ClusterVConnection(), and free_channel().
int ClusterHandler::machine_down | ( | ) |
Definition at line 717 of file ClusterHandlerBase.cc.
References CL_NOTE, VIO::CLOSE, CLUSTER_DECREMENT_DYN_STAT, CLUSTER_NODES_STAT, ClusterMachine::clusterHandlers, clusterProcessor, configuration_remove_machine(), Cluster::configurations, ClusterProcessor::connect(), connector, Cluster::current_configuration(), ClusterMachine::dead, dead, Debug, VConnection::do_io(), DOT_SEPARATED, MachineList::find(), ClusterConfiguration::find(), id, ClusterState::io_complete, ip, machine, machine_offline_APIcallout(), MUTEX_TAKE_LOCK, MUTEX_UNTAKE_LOCK, net_vc, Note, ClusterMachine::now_connections, port, SLL< C, L >::push(), read, REC_SIGNAL_MACHINE_DOWN, RecSignalManager(), the_cluster_config(), the_cluster_config_mutex, this_cluster(), this_ethread(), write, and zombify().
Referenced by mainClusterEvent(), process_read(), and process_write().
int ClusterHandler::mainClusterEvent | ( | int | event, | |
Event * | e | |||
) |
Definition at line 2404 of file ClusterHandler.cc.
References ClusterLoadMonitor::cf_monitor_enabled, clm, CLUSTER_DELAYED_READS_STAT, CLUSTER_INCREMENT_DYN_STAT, current_time, dead, delayed_reads, disable_remote_cluster_ops, do_open_local_requests(), DOT_SEPARATED, downing, dump_internal_data(), Event::ethread, EVENT_INTERVAL, EVENT_POLL, finish_delayed_reads(), DLL< C, L >::head, HRTIME_SECONDS, ink_get_hrtime(), ip, ClusterLoadMonitor::is_cluster_overloaded(), last_cluster_op_enable, last_state, last_trace_dump, machine_down(), Note, on_stolen_thread, process_read(), process_write(), EThread::signal_hook, this_ethread(), and thread.
Referenced by beginClusterEvent(), protoZombieEvent(), and steal_thread().
void ClusterHandler::process_freespace_msgs | ( | ) |
Definition at line 1044 of file ClusterHandler.cc.
References Descriptor::channel, channels, CLUSTER_CONTROL_CHANNEL, CLUSTER_SEND_FREE, CLUSTER_SEQUENCE_NUMBER, ClusterMsg::count, ClusterMsg::descriptor, ClusterMsg::did_freespace_msgs, Descriptor::length, ClusterState::msg, n_channels, read, ClusterVConnection::remote_free, Descriptor::sequence_number, Descriptor::type, VALID_CHANNEL, VC_CLUSTER_WRITE, and vcs_push().
Referenced by update_channels_partial_read(), and update_channels_read().
int ClusterHandler::process_incoming_callouts | ( | ProxyMutex * | m | ) |
Definition at line 1159 of file ClusterHandler.cc.
References ClearHighBit(), CLUSTER_CTRL_MSGS_RECV_TIME_STAT, CLUSTER_SUM_DYN_STAT, clusterFunction, ClusterControl::data, external_incoming_control, IncomingControl::freeall(), ink_assert, ink_atomiclist_popall(), ink_get_hrtime(), IsHighBitSet(), ClusterControl::len, LOG_EVENT_TIME, Continuation::mutex, ClusterFunctionDescriptor::pfn, Queue< C, L >::pop(), Queue< C, L >::push(), IncomingControl::recognized_time, SIZE_clusterFunction, and Warning.
Referenced by ClusterCalloutContinuation::CalloutHandler().
void ClusterHandler::process_large_control_msgs | ( | ) |
Definition at line 992 of file ClusterHandler.cc.
References ats_swap32(), clusterFunction, ClusterControl::data, Queue< C, L >::dequeue(), ClusterMsg::did_large_control_msgs, external_incoming_control, IncomingControl::freeall(), incoming_control, ink_atomiclist_push(), ink_release_assert, ClusterControl::len, ClusterState::msg, needByteSwap, ClusterFunctionDescriptor::pfn, read, SET_CHANNEL_DATA_CLUSTER_FUNCTION, SIZE_clusterFunction, and Warning.
Referenced by update_channels_read().
int ClusterHandler::process_read | ( | ink_hrtime | ) |
Definition at line 2517 of file ClusterHandler.cc.
References build_initial_vector(), ClusterState::bytes_xfered, ClusterMsg::calc_control_bytes_cksum(), ClusterMsg::calc_descriptor_cksum(), ClusterMsg::clear(), CLUSTER_INCREMENT_DYN_STAT, CLUSTER_PARTIAL_READS_STAT, CLUSTER_RDMSG_ASSEMBLE_TIME_STAT, CLUSTER_READ, CLUSTER_READ_BYTES_STAT, CLUSTER_SUM_DYN_STAT, ClusterMsg::control_bytes, ClusterMsgHeader::control_bytes, ClusterMsg::control_bytes_cksum, ClusterMsgHeader::control_bytes_cksum, ClusterMsg::count, ClusterMsgHeader::count, ClusterMsgHeader::count_check, dead, ClusterMsg::descriptor_cksum, ClusterMsgHeader::descriptor_cksum, ClusterState::did, ClusterState::doIO(), DOT_SEPARATED, dump_msgs, dump_read_msg(), free_locks(), get_read_locks(), ClusterMsg::hdr(), HRTIME_MSECONDS, ink_assert, ink_get_hrtime(), ink_release_assert, ClusterState::io_complete, ip, machine_down(), MAGIC_COUNT, ClusterState::msg, needByteSwap, Note, read, ClusterState::READ_AWAIT_DATA, ClusterState::READ_AWAIT_DESCRIPTOR, ClusterState::READ_AWAIT_HEADER, ClusterState::READ_COMPLETE, ClusterState::READ_DATA, ClusterState::READ_DESCRIPTOR, ClusterState::READ_HEADER, ClusterState::READ_POST_COMPLETE, ClusterState::READ_SETUP_DATA, ClusterState::READ_SETUP_DESCRIPTOR, ClusterState::READ_START, ClusterState::sequence_number, ClusterState::start_time, ClusterMsg::state, ClusterState::state, swap_descriptor_bytes(), ClusterMsgHeader::SwapBytes(), ClusterState::to_do, ClusterMsgHeader::unused, ClusterMsg::unused, update_channels_partial_read(), update_channels_read(), and Warning.
Referenced by mainClusterEvent().
void ClusterHandler::process_set_data_msgs | ( | ) |
Definition at line 850 of file ClusterHandler.cc.
References ats_swap32(), clusterFunction, ClusterMsg::control_bytes, ClusterMsg::control_data_offset, ClusterMsg::count, ClusterControl::data, ClusterMsg::descriptor, ClusterMsg::did_large_control_set_data, ClusterMsg::did_small_control_set_data, DOUBLE_ALIGN, DLL< C, L >::head, incoming_control, ClusterControl::len, ClusterState::msg, needByteSwap, ClusterFunctionDescriptor::pfn, read, SET_CHANNEL_DATA_CLUSTER_FUNCTION, and SIZE_clusterFunction.
Referenced by update_channels_partial_read(), and update_channels_read().
void ClusterHandler::process_small_control_msgs | ( | ) |
Definition at line 936 of file ClusterHandler.cc.
References IncomingControl::alloc(), IncomingControl::alloc_data(), ats_swap32(), clusterFunction, ClusterMsg::control_bytes, ClusterMsg::control_data_offset, ClusterMsg::count, ClusterControl::data, ClusterMsg::descriptor, ClusterMsg::did_small_control_msgs, DOUBLE_ALIGN, external_incoming_control, ink_atomiclist_push(), ink_get_hrtime(), ink_release_assert, ClusterControl::len, memcpy, ClusterState::msg, needByteSwap, ClusterFunctionDescriptor::pfn, read, IncomingControl::recognized_time, SET_CHANNEL_DATA_CLUSTER_FUNCTION, SetHighBit(), SIZE_clusterFunction, and Warning.
Referenced by update_channels_partial_read(), and update_channels_read().
int ClusterHandler::process_write | ( | ink_hrtime | now, | |
bool | only_write_control_msgs | |||
) |
Definition at line 2818 of file ClusterHandler.cc.
References add_small_controlmsg_descriptors(), build_controlmsg_descriptors(), build_freespace_descriptors(), build_initial_vector(), build_write_descriptors(), ClusterState::bytes_xfered, ClusterMsg::calc_control_bytes_cksum(), ClusterMsg::calc_descriptor_cksum(), ClusterMsg::clear(), CLUSTER_BUCKETS, CLUSTER_INCREMENT_DYN_STAT, CLUSTER_MAX_RUN_TIME, CLUSTER_MAX_THREAD_STEAL_TIME, CLUSTER_PARTIAL_WRITES_STAT, CLUSTER_SUM_DYN_STAT, CLUSTER_THREAD_STEAL_EXPIRES_STAT, CLUSTER_WRITE, CLUSTER_WRITE_BYTES_STAT, CLUSTER_WRITE_LOCK_MISSES_STAT, ClusterMsg::control_bytes, ClusterMsgHeader::control_bytes, ClusterMsgHeader::control_bytes_cksum, ClusterMsg::control_bytes_cksum, control_message_write, ClusterMsg::count, ClusterMsgHeader::count, ClusterMsgHeader::count_check, ClusterHandlerBase::cur_vcs, dead, ClusterMsgHeader::descriptor_cksum, ClusterMsg::descriptor_cksum, ClusterState::doIO(), DOT_SEPARATED, MachineList::find(), free_locks(), get_write_locks(), ClusterMsg::hdr(), ink_get_hrtime(), ink_release_assert, ClusterState::io_complete, ip, ClusterState::last_time, machine_down(), MAGIC_COUNT, ClusterState::msg, Note, on_stolen_thread, port, pw_controldata_descriptors_built, pw_freespace_descriptors_built, pw_time_expired, pw_write_descriptors_built, ClusterState::sequence_number, started_on_stolen_thread, ClusterState::state, the_cluster_machines_config(), ClusterState::to_do, ClusterMsg::unused, update_channels_written(), write, ClusterState::WRITE_AWAIT_COMPLETION, ClusterState::WRITE_COMPLETE, ClusterState::WRITE_INITIATE, ClusterState::WRITE_POST_COMPLETE, ClusterState::WRITE_SETUP, and ClusterState::WRITE_START.
Referenced by mainClusterEvent().
int ClusterHandler::protoZombieEvent | ( | int | event, | |
Event * | e | |||
) |
Definition at line 1229 of file ClusterHandlerBase.cc.
References callout_cont, callout_events, Action::cancel(), ClusterVConnection::ch, channels, close_ClusterVConnection(), ClusterVConnectionBase::closed, CLUSTER_MEMBER_DELAY, cluster_signal_error_and_update(), head_p::data, Debug, delayed_reads, Queue< C, L >::dequeue(), DOT_SEPARATED, ET_CLUSTER, Event::ethread, EVENT_INTERVAL, eventProcessor, external_incoming_control, external_incoming_open_local, IncomingControl::freeall(), DLL< C, L >::head, InkAtomicList::head, incoming_control, ip, mainClusterEvent(), VIO::mutex, Continuation::mutex, MUTEX_TRY_LOCK, n_channels, VIO::op, pw_controldata_descriptors_built, pw_freespace_descriptors_built, pw_write_descriptors_built, VIO::READ, ClusterVConnectionBase::read, EventProcessor::schedule_in(), Event::schedule_in(), SET_HANDLER, this_ethread(), TO_PTR, VALID_CHANNEL, ClusterVConnState::vio, VIO::WRITE, ClusterVConnectionBase::write, ClusterVConnection::write_bytes_in_transit, ClusterVConnection::write_list, ClusterVConnection::write_list_bytes, ClusterVConnection::write_list_tail, and zombieClusterEvent().
Referenced by zombify().
int ClusterHandler::remote_close | ( | ClusterVConnection * | vc, | |
ClusterVConnState * | ns | |||
) |
Definition at line 2287 of file ClusterHandler.cc.
References ClusterVConnectionBase::closed, cluster_signal_and_update(), cluster_signal_error_and_update(), ClusterVConnState::enabled, VIO::nbytes, VIO::ndone, VIO::NONE, VIO::op, VIO::READ, ClusterVConnection::remote_closed, ClusterVConnection::remote_lerrno, VC_EVENT_EOS, VC_EVENT_READ_COMPLETE, and ClusterVConnState::vio.
Referenced by valid_for_data_write(), and valid_for_freespace_write().
int ClusterHandler::startClusterEvent | ( | int | event, | |
Event * | e | |||
) |
Definition at line 850 of file ClusterHandlerBase.cc.
References ClusterHelloMessage::_id, ClusterHelloMessage::_major, ClusterHelloMessage::_min_major, ClusterHelloMessage::_minor, ClusterHelloMessage::AdjustByteOrder(), beginClusterEvent(), build_data_vector(), callout_cont, callout_events, CL_NOTE, CLCON_ABORT_CONNECT, CLCON_CONN_BIND, CLCON_CONN_BIND_CLEAR, CLCON_CONN_BIND_OK, CLCON_DELETE_CONNECT, CLCON_INITIAL, CLCON_READ_MSG, CLCON_READ_MSG_COMPLETE, CLCON_SEND_MSG, CLCON_SEND_MSG_COMPLETE, CLCON_VALIDATE_MSG, clm, cluster_connect_state, CLUSTER_INCREMENT_DYN_STAT, CLUSTER_NODES_STAT, CLUSTER_PERIOD, cluster_periodic_event, cluster_port, ClusterMachine::clusterHandlers, clusteringVersion, clusterProcessor, COMPLETION_CALLBACK_PERIOD, CONFIG_LOOKUP_RETRIES, configLookupFails, configuration_add_machine(), Cluster::configurations, ClusterProcessor::connect(), connector, Cluster::current_configuration(), dead, ClusterMachine::dead, Debug, ClusterState::did, ClusterState::do_iodone_event, ClusterState::doIO(), DOT_SEPARATED, UnixNetVConnection::ep, ET_CLUSTER, ET_NET, Event::ethread, EVENT_IMMEDIATE, EVENT_INTERVAL, eventProcessor, EventProcessor::eventthread, ClusterConfiguration::find(), MachineList::find(), get_NetHandler(), get_PollDescriptor(), id, NetState::in_enabled_list, ClusterLoadMonitor::init(), ink_assert, ink_number_of_processors(), ink_release_assert, ClusterState::io_complete, ClusterState::io_complete_event, ip, machine, machine_online_APIcallout(), MAX_COMPLETION_CALLBACK_EVENTS, min(), ClusterMachine::msg_proto_major, ClusterMachine::msg_proto_minor, Continuation::mutex, MUTEX_TAKE_LOCK, MUTEX_TRY_LOCK, MUTEX_UNTAKE_LOCK, EventProcessor::n_threads_for_type, ClusterHelloMessage::NativeByteOrder(), needByteSwap, net_vc, UnixNetVConnection::nh, nodeClusteringVersion, Note, ClusterMachine::now_connections, ClusterMachine::num_connections, num_of_cluster_threads, port, SLL< C, L >::push(), UnixNetVConnection::read, read, ClusterHandlerBase::read_vcs, REC_SIGNAL_MACHINE_UP, RecSignalManager(), EventProcessor::schedule_every(), EThread::schedule_every(), EThread::schedule_in(), EventProcessor::schedule_in(), SET_HANDLER, EventIO::start(), EventIO::stop(), the_cluster_config(), the_cluster_config_mutex, this_cluster(), this_ethread(), NetVConnection::thread, thread, Warning, UnixNetVConnection::write, write, and ClusterHandlerBase::write_vcs.
Referenced by ClusterHandler(), and connectClusterEvent().
void ClusterHandler::steal_thread | ( | EThread * | t | ) |
Definition at line 2309 of file ClusterHandler.cc.
References CLUSTER_EVENT_STEAL_THREAD, ClusterMsg::count, mainClusterEvent(), ClusterState::msg, thread, ClusterState::to_do, and write.
Referenced by ClusterProcessor::internal_invoke_remote().
void ClusterHandler::swap_descriptor_bytes | ( | ) |
Definition at line 842 of file ClusterHandler.cc.
References ClusterMsg::count, ClusterMsg::descriptor, ClusterState::msg, read, and Descriptor::SwapBytes().
Referenced by process_read().
void ClusterHandler::update_channels_partial_read | ( | ) |
Definition at line 1245 of file ClusterHandler.cc.
References add_to_byte_bank(), MIOBuffer::append_block(), VIO::buffer, ClusterState::bytes_xfered, ClusterVConnection::channel, Descriptor::channel, channels, CL_TRACE, CLUSTER_CONTROL_CHANNEL, CLUSTER_IOV_NONE, CLUSTER_SEND_DATA, CLUSTER_SEQUENCE_NUMBER, complete_channel_read(), ClusterMsg::count, current_time, Debug, ClusterMsg::descriptor, ClusterState::did, ink_assert, ink_release_assert, ClusterState::iov, ClusterVConnection::iov_map, ClusterVConnection::last_activity_time, Descriptor::length, ClusterState::msg, ClusterState::n_iov, ClusterVConnection::pending_remote_fill, process_freespace_msgs(), process_set_data_msgs(), process_small_control_msgs(), ClusterVConnectionBase::read, read, ClusterVConnection::read_block, ClusterVConnection::read_locked, ClusterVCToken::sequence_number, Descriptor::sequence_number, ClusterVConnection::token, Descriptor::type, VALID_CHANNEL, vc_ok_read(), ClusterVConnState::vio, and MIOBufferAccessor::writer().
Referenced by process_read().
void ClusterHandler::update_channels_read | ( | ) |
Definition at line 1095 of file ClusterHandler.cc.
References add_to_byte_bank(), MIOBuffer::append_block(), VIO::buffer, ClusterVConnection::byte_bank_q, Descriptor::channel, channels, CLUSTER_CONTROL_CHANNEL, CLUSTER_SEND_DATA, CLUSTER_SEQUENCE_NUMBER, complete_channel_read(), ClusterMsg::count, current_time, ClusterMsg::descriptor, DLL< C, L >::head, ClusterVConnection::last_activity_time, Descriptor::length, ClusterState::msg, ClusterVConnection::pending_remote_fill, process_freespace_msgs(), process_large_control_msgs(), process_set_data_msgs(), process_small_control_msgs(), ClusterVConnectionBase::read, read, ClusterVConnection::read_block, ClusterVConnection::read_locked, ClusterVCToken::sequence_number, Descriptor::sequence_number, ClusterVConnection::token, Descriptor::type, VALID_CHANNEL, vc_ok_read(), ClusterVConnState::vio, and MIOBufferAccessor::writer().
Referenced by process_read().
void ClusterHandler::update_channels_written | ( | ) |
Definition at line 1436 of file ClusterHandler.cc.
References Descriptor::channel, channels, CL_PROTO, CL_TRACE, CLUSTER_CONTROL_CHANNEL, CLUSTER_CTRL_MSGS_SEND_TIME_STAT, CLUSTER_SEND_DATA, CLUSTER_SEQUENCE_NUMBER, CLUSTER_SUM_DYN_STAT, ClusterMsg::count, current_time, ClusterControl::data, invoke_remote_data_args::data_oc, Debug, Queue< C, L >::dequeue(), ClusterMsg::descriptor, ClusterControl::free_data(), OutgoingControl::freeall(), ink_assert, ink_get_hrtime(), ink_release_assert, ClusterVConnection::last_activity_time, Descriptor::length, LOG_EVENT_TIME, invoke_remote_data_args::MagicNo, invoke_remote_data_args::magicno, ClusterState::msg, Continuation::mutex, VIO::ndone, ClusterMsg::outgoing_callout, ClusterMsg::outgoing_control, ClusterVConnection::pending_remote_fill, ClusterVConnection::remote_write_block, ClusterVCToken::sequence_number, Descriptor::sequence_number, OutgoingControl::submit_time, ClusterVConnection::token, Descriptor::type, VALID_CHANNEL, VC_CLUSTER_WRITE, vc_ok_write(), vcs_push(), ClusterVConnState::vio, ClusterVConnection::was_closed(), ClusterVConnectionBase::write, write, and ClusterVConnection::write_bytes_in_transit.
Referenced by process_write().
int ClusterHandler::valid_for_data_write | ( | ClusterVConnection * | vc | ) |
Definition at line 1914 of file ClusterHandler.cc.
References VIO::_cont, IOBufferReader::block, VIO::buffer, bytes_IOBufferBlockList(), clone_IOBufferBlockList(), close_ClusterVConnection(), CLUSTER_CONNECTIONS_WRITE_LOCKED_STAT, CLUSTER_INCREMENT_DYN_STAT, cluster_signal_and_update(), cluster_signal_and_update_locked(), CLUSTER_VC_WRITE_STALL_STAT, DEFAULT_MAX_BUFFER_SIZE, ClusterVConnState::enabled, DestructorLock::have_lock, ink_assert, DestructorLock::m, VIO::mutex, MUTEX_TAKE_TRY_LOCK_FOR_SPIN, ClusterVConnection::n_set_data_msgs, VIO::ndone, IOBufferBlock::next, VIO::ntodo(), on_stolen_thread, VIO::op, ClusterVConnection::pending_remote_fill, IOBufferReader::read_avail(), MIOBufferAccessor::reader(), remote_close(), ClusterVConnection::remote_free, ClusterVConnection::schedule_write(), IOBufferReader::start_offset, thread, VC_EVENT_WRITE_COMPLETE, VC_EVENT_WRITE_READY, ClusterVConnState::vio, ClusterVConnection::was_closed(), ClusterVConnection::was_remote_closed(), VIO::WRITE, ClusterVConnectionBase::write, MIOBuffer::write_avail(), ClusterVConnection::write_bytes_in_transit, ClusterVConnection::write_list, ClusterVConnection::write_list_bytes, ClusterVConnection::write_list_tail, WRITE_LOCK_SPIN_COUNT, ClusterVConnection::write_locked, and MIOBufferAccessor::writer().
Referenced by build_write_descriptors().
int ClusterHandler::valid_for_freespace_write | ( | ClusterVConnection * | vc | ) |
Definition at line 2104 of file ClusterHandler.cc.
References VIO::_cont, MIOBuffer::append_block(), VIO::buffer, ClusterVConnection::channel, CL_PROTO, clone_IOBufferBlockList(), close_ClusterVConnection(), CLUSTER_CONNECTIONS_READ_LOCKED_STAT, CLUSTER_INCREMENT_DYN_STAT, cluster_signal_and_update(), cluster_signal_and_update_locked(), Debug, DEFAULT_MAX_BUFFER_SIZE, ClusterVConnState::enabled, EVENT_DONE, ClusterVConnection::have_all_data, DestructorLock::have_lock, ClusterVConnection::initial_data_bytes, ink_assert, ClusterVConnection::last_local_free, DestructorLock::m, VIO::mutex, MUTEX_TAKE_TRY_LOCK_FOR_SPIN, VIO::ndone, VIO::ntodo(), on_stolen_thread, VIO::op, ClusterVConnection::pending_remote_fill, VIO::READ, ClusterVConnectionBase::read, ClusterVConnection::read_block, READ_LOCK_SPIN_COUNT, remote_close(), ClusterVConnection::schedule_write(), thread, VC_EVENT_EOS, VC_EVENT_READ_COMPLETE, VC_EVENT_READ_READY, ClusterVConnState::vio, ClusterVConnection::was_closed(), ClusterVConnection::was_remote_closed(), ClusterVConnection::write_bytes_in_transit, and MIOBufferAccessor::writer().
Referenced by build_freespace_descriptors().
bool ClusterHandler::vc_ok_read | ( | ClusterVConnection * | vc | ) | [inline] |
Definition at line 360 of file ClusterHandler.cc.
References VIO::buffer, ClusterVConnectionBase::closed, VIO::op, VIO::READ, ClusterVConnectionBase::read, ClusterVConnState::vio, and MIOBufferAccessor::writer().
Referenced by build_freespace_descriptors(), build_initial_vector(), finish_delayed_reads(), get_read_locks(), update_channels_partial_read(), and update_channels_read().
bool ClusterHandler::vc_ok_write | ( | ClusterVConnection * | vc | ) | [inline] |
Definition at line 352 of file ClusterHandler.cc.
References VIO::buffer, ClusterVConnectionBase::closed, ClusterVConnState::enabled, VIO::op, ClusterVConnState::vio, VIO::WRITE, ClusterVConnectionBase::write, ClusterVConnection::write_bytes_in_transit, ClusterVConnection::write_list, and MIOBufferAccessor::writer().
Referenced by build_initial_vector(), and update_channels_written().
void ClusterHandler::vcs_push | ( | ClusterVConnection * | vc, | |
int | type | |||
) |
Definition at line 2272 of file ClusterHandler.cc.
References ClusterVConnection::ch, ClusterVConnection::in_vcs, ink_atomiclist_push(), read_vcs_ready, ClusterVConnection::type, VC_CLUSTER, and VC_CLUSTER_READ.
Referenced by build_freespace_descriptors(), build_write_descriptors(), close_channel_ClusterFunction(), complete_channel_read(), ClusterVConnection::do_io_close(), ClusterVConnection::do_io_read(), ClusterVConnection::do_io_write(), process_freespace_msgs(), ClusterVConnection::reenable(), and update_channels_written().
int ClusterHandler::zombieClusterEvent | ( | int | event, | |
Event * | e | |||
) |
Definition at line 1215 of file ClusterHandlerBase.cc.
Referenced by protoZombieEvent().
int ClusterHandler::zombify | ( | Event * | e = NULL |
) |
Definition at line 766 of file ClusterHandlerBase.cc.
References Action::cancel(), ClusterLoadMonitor::cancel_monitor(), clm, cluster_periodic_event, dead, ET_CLUSTER, eventProcessor, HRTIME_SECONDS, protoZombieEvent(), EventProcessor::schedule_in(), and SET_HANDLER.
Referenced by machine_down().
int32_t ClusterHandler::active |
Definition at line 437 of file P_ClusterHandler.h.
ClusterCalloutContinuation* ClusterHandler::callout_cont[MAX_COMPLETION_CALLBACK_EVENTS] |
Definition at line 478 of file P_ClusterHandler.h.
Referenced by ClusterHandler(), protoZombieEvent(), and startClusterEvent().
Event* ClusterHandler::callout_events[MAX_COMPLETION_CALLBACK_EVENTS] |
Definition at line 479 of file P_ClusterHandler.h.
Referenced by ClusterHandler(), protoZombieEvent(), and startClusterEvent().
struct ChannelData** ClusterHandler::channel_data |
Definition at line 448 of file P_ClusterHandler.h.
Referenced by alloc_channel(), check_channel(), free_channel(), and ~ClusterHandler().
Definition at line 447 of file P_ClusterHandler.h.
Referenced by alloc_channel(), build_controlmsg_descriptors(), build_freespace_descriptors(), build_initial_vector(), build_write_descriptors(), ChannelToCacheWriteVC(), check_channel(), close_channel_ClusterFunction(), compute_active_channels(), free_channel(), free_locks(), get_read_locks(), get_write_locks(), post_setchan_pin_ClusterFunction(), post_setchan_priority_ClusterFunction(), post_setchan_send_ClusterFunction(), process_freespace_msgs(), protoZombieEvent(), update_channels_partial_read(), update_channels_read(), update_channels_written(), and ~ClusterHandler().
enum { ... } ClusterHandler::clcon_state_t |
Definition at line 496 of file P_ClusterHandler.h.
Referenced by mainClusterEvent(), startClusterEvent(), zombify(), and ~ClusterHandler().
Definition at line 452 of file P_ClusterHandler.h.
Referenced by startClusterEvent().
Definition at line 480 of file P_ClusterHandler.h.
Referenced by startClusterEvent(), and zombify().
Definition at line 453 of file P_ClusterHandler.h.
Referenced by startClusterEvent().
Definition at line 456 of file P_ClusterHandler.h.
Referenced by startClusterEvent().
Definition at line 451 of file P_ClusterHandler.h.
Referenced by ClusterProcessor::connect(), local_channel(), machine_down(), and startClusterEvent().
Definition at line 505 of file P_ClusterHandler.h.
Referenced by process_write().
Definition at line 488 of file P_ClusterHandler.h.
Referenced by mainClusterEvent(), update_channels_partial_read(), update_channels_read(), and update_channels_written().
bool ClusterHandler::dead |
Definition at line 434 of file P_ClusterHandler.h.
Referenced by machine_down(), mainClusterEvent(), process_read(), process_write(), startClusterEvent(), and zombify().
Definition at line 495 of file P_ClusterHandler.h.
Referenced by add_to_byte_bank(), close_ClusterVConnection(), finish_delayed_reads(), mainClusterEvent(), and protoZombieEvent().
Definition at line 497 of file P_ClusterHandler.h.
Referenced by ClusterProcessor::disable_remote_cluster_ops(), and mainClusterEvent().
Definition at line 435 of file P_ClusterHandler.h.
Referenced by mainClusterEvent().
Definition at line 476 of file P_ClusterHandler.h.
Referenced by ClusterHandler(), process_incoming_callouts(), process_large_control_msgs(), process_small_control_msgs(), and protoZombieEvent().
Definition at line 477 of file P_ClusterHandler.h.
Referenced by ClusterHandler(), do_open_local_requests(), ClusterProcessor::open_local(), and protoZombieEvent().
Definition at line 449 of file P_ClusterHandler.h.
Referenced by alloc_channel(), check_channel(), and free_channel().
char* ClusterHandler::hostname |
Definition at line 430 of file P_ClusterHandler.h.
Referenced by ClusterProcessor::connect(), connectClusterEvent(), and ~ClusterHandler().
Definition at line 433 of file P_ClusterHandler.h.
Referenced by ClusterProcessor::connect(), machine_down(), ClusterProcessor::open_local(), and startClusterEvent().
Definition at line 432 of file P_ClusterHandler.h.
Definition at line 482 of file P_ClusterHandler.h.
Referenced by build_initial_vector(), process_large_control_msgs(), process_set_data_msgs(), and protoZombieEvent().
unsigned int ClusterHandler::ip |
Definition at line 428 of file P_ClusterHandler.h.
Referenced by ClusterAccept::ClusterAcceptMachine(), ClusterProcessor::connect(), connectClusterEvent(), dump_internal_data(), machine_down(), mainClusterEvent(), process_read(), process_write(), protoZombieEvent(), and startClusterEvent().
Definition at line 489 of file P_ClusterHandler.h.
Definition at line 492 of file P_ClusterHandler.h.
Referenced by mainClusterEvent().
Definition at line 490 of file P_ClusterHandler.h.
Definition at line 493 of file P_ClusterHandler.h.
Referenced by mainClusterEvent().
Definition at line 431 of file P_ClusterHandler.h.
Referenced by cache_lookup_ClusterFunction(), cache_op_ClusterFunction(), cache_op_result_ClusterFunction(), close_ClusterVConnection(), ClusterAccept::ClusterAcceptMachine(), connectClusterEvent(), default_api_ClusterFunction(), get_hostinfo_ClusterFunction(), machine_down(), put_hostinfo_ClusterFunction(), ClusterVConnection::set_disk_io_priority(), ClusterVConnection::set_http_info(), ClusterVConnection::set_pin_in_cache(), startClusterEvent(), and ~ClusterHandler().
Definition at line 446 of file P_ClusterHandler.h.
Referenced by alloc_channel(), check_channel(), compute_active_channels(), process_freespace_msgs(), protoZombieEvent(), and ~ClusterHandler().
Definition at line 491 of file P_ClusterHandler.h.
Definition at line 455 of file P_ClusterHandler.h.
Referenced by process_large_control_msgs(), process_read(), process_set_data_msgs(), process_small_control_msgs(), and startClusterEvent().
Definition at line 426 of file P_ClusterHandler.h.
Referenced by ClusterAccept::ClusterAcceptMachine(), connectClusterEvent(), ClusterState::doIO(), dump_read_msg(), dump_write_msg(), machine_down(), startClusterEvent(), and ~ClusterHandler().
Definition at line 454 of file P_ClusterHandler.h.
Referenced by startClusterEvent().
Definition at line 438 of file P_ClusterHandler.h.
Referenced by mainClusterEvent(), process_write(), valid_for_data_write(), and valid_for_freespace_write().
Queue<OutgoingControl> ClusterHandler::outgoing_control[CLUSTER_CMSG_QUEUES] |
Definition at line 481 of file P_ClusterHandler.h.
Referenced by build_controlmsg_descriptors().
InkAtomicList ClusterHandler::outgoing_control_al[CLUSTER_CMSG_QUEUES] |
Definition at line 475 of file P_ClusterHandler.h.
Referenced by build_controlmsg_descriptors(), ClusterHandler(), ClusterProcessor::internal_invoke_remote(), and OutgoingControl::startEvent().
Definition at line 429 of file P_ClusterHandler.h.
Referenced by ClusterProcessor::connect(), connectClusterEvent(), machine_down(), process_write(), and startClusterEvent().
Definition at line 502 of file P_ClusterHandler.h.
Referenced by process_write(), and protoZombieEvent().
Definition at line 501 of file P_ClusterHandler.h.
Referenced by process_write(), and protoZombieEvent().
Definition at line 503 of file P_ClusterHandler.h.
Referenced by process_write().
Definition at line 500 of file P_ClusterHandler.h.
Referenced by process_write(), and protoZombieEvent().
Definition at line 485 of file P_ClusterHandler.h.
Referenced by build_data_vector(), build_initial_vector(), dump_read_msg(), free_locks(), get_read_locks(), machine_down(), process_freespace_msgs(), process_large_control_msgs(), process_read(), process_set_data_msgs(), process_small_control_msgs(), startClusterEvent(), swap_descriptor_bytes(), update_channels_partial_read(), and update_channels_read().
Definition at line 483 of file P_ClusterHandler.h.
Referenced by build_freespace_descriptors(), ClusterHandler(), and vcs_push().
Definition at line 504 of file P_ClusterHandler.h.
Referenced by process_write().
Definition at line 427 of file P_ClusterHandler.h.
Referenced by build_initial_vector(), build_write_descriptors(), close_free_lock(), ClusterProcessor::connect_local(), finish_delayed_reads(), free_locks(), get_read_locks(), get_write_locks(), ClusterProcessor::internal_invoke_remote(), mainClusterEvent(), ClusterProcessor::open_local(), startClusterEvent(), OutgoingControl::startEvent(), steal_thread(), valid_for_data_write(), and valid_for_freespace_write().
Definition at line 486 of file P_ClusterHandler.h.
Referenced by add_small_controlmsg_descriptors(), build_controlmsg_descriptors(), build_data_vector(), build_freespace_descriptors(), build_initial_vector(), build_write_descriptors(), dump_write_msg(), free_locks(), get_write_locks(), machine_down(), process_write(), startClusterEvent(), steal_thread(), and update_channels_written().
Definition at line 484 of file P_ClusterHandler.h.
Referenced by build_write_descriptors(), and ClusterHandler().