31#include "xdr_gen/xcom_vp.h"
45#define MIN_LENGTH MIN_CACHE_SIZE
46#define INCREMENT MIN_LENGTH
48#define is_cached(x) (hash_get(x) != NULL)
60 X(paxos_prepare), X(paxos_ack_prepare), X(paxos_accept), \
61 X(paxos_ack_accept), X(paxos_learn), X(paxos_start), X(paxos_tout), \
87#define SET_PAXOS_FSM_STATE(obj, s) \
89 (obj)->state.state_fp = s; \
90 (obj)->state.state_name = #s; \
125#ifndef XCOM_STANDALONE
159#define DEC_THRESHOLD_LENGTH 500000
160#define MIN_TARGET_OCCUPATION 0.7F
161#define DEC_THRESHOLD_SIZE 0.95F
162#define MIN_LENGTH_THRESHOLD 0.9F
175#ifndef XCOM_STANDALONE
181#define psi_set_cache_resetting(x) \
184#define psi_report_cache_shutdown() \
187#define psi_report_mem_free(x) \
190#define psi_report_mem_alloc(x) \
const char * p
Definition: ctype-mb.cc:1234
required string event
Definition: replication_group_member_actions.proto:31
struct pax_msg pax_msg
Definition: site_struct.h:36
Definition: xcom_cache.cc:61
Definition: xcom_cache.h:94
lru_machine * lru
Definition: xcom_cache.h:97
linkage rv
Definition: xcom_cache.h:100
bit_set * prep_nodeset
Definition: xcom_cache.h:105
paxos_fsm_state state
Definition: xcom_cache.h:128
int lock
Definition: xcom_cache.h:120
stack_machine * stack_link
Definition: xcom_cache.h:96
ballot bal
Definition: xcom_cache.h:104
synode_no synode
Definition: xcom_cache.h:98
struct pax_machine::@25 learner
linkage hash_link
Definition: xcom_cache.h:95
ballot sent_learn
Definition: xcom_cache.h:109
bit_set * prop_nodeset
Definition: xcom_cache.h:107
char is_instrumented
Definition: xcom_cache.h:126
linkage watchdog
Definition: xcom_cache.h:101
ballot promise
Definition: xcom_cache.h:113
pax_op op
Definition: xcom_cache.h:121
struct pax_machine::@24 acceptor
ballot sent_prop
Definition: xcom_cache.h:106
int force_delivery
Definition: xcom_cache.h:122
double last_modified
Definition: xcom_cache.h:99
struct pax_machine::@23 proposer
pax_msg * msg
Definition: xcom_cache.h:108
int enforcer
Definition: xcom_cache.h:123
Definition: xcom_cache.h:78
paxos_fsm_fp state_fp
Definition: xcom_cache.h:79
char const * state_name
Definition: xcom_cache.h:80
Definition: site_struct.h:42
Definition: xcom_cache.cc:89
__u_int u_int
Definition: types.h:72
int bool_t
Definition: types.h:34
uint64_t get_xcom_cache_occupation()
Definition: xcom_cache.cc:653
pax_machine * init_pax_machine(pax_machine *p, lru_machine *lru, synode_no synode)
Definition: xcom_cache.cc:393
void psi_report_cache_shutdown()
After the cache is de-initialized 'current_count' must be zero; otherwise we have allocated data that...
Definition: gcs_psi.cc:221
int was_removed_from_cache(synode_no x)
Definition: xcom_cache.cc:70
paxos_event
Definition: xcom_cache.h:65
void set_dec_threshold_length(uint64_t threshold)
int paxos_fsm_idle(pax_machine *paxos, site_def const *site, paxos_event event, pax_msg *mess)
Definition: xcom_base.cc:9022
void paxos_timeout(pax_machine *p)
Definition: xcom_cache.cc:678
pax_machine * get_cache_no_touch(synode_no synode, bool_t force)
Definition: xcom_cache.cc:296
int psi_report_mem_alloc(size_t size)
Reports to PSI the allocation of 'size' bytes of data.
Definition: gcs_psi.cc:189
@ CACHE_TOO_SMALL
Definition: xcom_cache.h:197
@ CACHE_RESULT_LOW
Definition: xcom_cache.h:200
@ CACHE_SHRINK_OK
Definition: xcom_cache.h:196
@ CACHE_INCREASING
Definition: xcom_cache.h:201
@ CACHE_HASH_NOTEMPTY
Definition: xcom_cache.h:198
@ CACHE_HIGH_OCCUPATION
Definition: xcom_cache.h:199
void psi_set_cache_resetting(int is_resetting)
void set_size_decrement(size_t decrement)
Definition: xcom_cache.cc:659
uint64_t sub_cache_size(pax_machine *p)
Definition: xcom_cache.cc:523
void set_min_target_occupation(float threshold)
Definition: xcom_cache.cc:667
void unlock_pax_machine(pax_machine *p)
Definition: xcom_cache.cc:430
void init_cache()
Definition: xcom_cache.cc:249
void set_dec_threshold_size(float threshold)
Definition: xcom_cache.cc:671
pax_machine * force_get_cache(synode_no synode)
Definition: xcom_cache.cc:315
void set_length_increment(size_t increment)
Definition: xcom_cache.cc:657
synode_no cache_get_last_removed()
Definition: xcom_cache.cc:68
uint64_t add_cache_size(pax_machine *p)
Definition: xcom_cache.cc:509
void xcom_cache_var_init()
Definition: xcom_cache.cc:388
int(* paxos_fsm_fp)(pax_machine *paxos, site_def const *site, paxos_event event, pax_msg *mess)
Definition: xcom_cache.h:74
void psi_report_mem_free(size_t size, int is_instrumented)
Reports to PSI the deallocation of 'size' bytes of data.
Definition: gcs_psi.cc:205
pax_machine * get_cache(synode_no synode)
Definition: xcom_cache.cc:322
int lock_pax_machine(pax_machine *p)
Definition: xcom_cache.cc:424
pax_machine * hash_get(synode_no synode)
Definition: xcom_cache.cc:158
void deinit_cache()
Definition: xcom_cache.cc:277
uint16_t check_decrease()
Definition: xcom_cache.cc:602
uint64_t get_xcom_cache_size()
Definition: xcom_cache.cc:655
size_t shrink_cache()
Definition: xcom_cache.cc:369
uint64_t set_max_cache_size(uint64_t x)
Definition: xcom_cache.cc:543
void set_min_length_threshold(float threshold)
Definition: xcom_cache.cc:673
uint64_t get_xcom_cache_length()
Definition: xcom_cache.cc:654
char * dbg_pax_machine(pax_machine *p)
char * dbg_machine_nodeset(pax_machine *p, u_int nodes)
Definition: xcom_cache.cc:436
size_t pax_machine_size(pax_machine const *p)
Definition: xcom_cache.cc:490
void do_cache_maintenance()
Definition: xcom_cache.cc:625
#define p_events
Definition: xcom_cache.h:59
void init_cache_size()
Definition: xcom_cache.cc:505
int is_busy_machine(pax_machine *p)
Definition: xcom_cache.cc:432
int above_cache_limit()
Definition: xcom_cache.cc:538