Http cache with periodic multicast heartbeat invalidation
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Http cache with periodic multicast heartbeat invalidation
We should ask our parent in the virtual distribution tree
of the corresponding web server, instead of our parent in the
cache hierarchy.
Top-Level Caches (TLCs) need to exchange invalidations with each other,
so they are both sender and receiver in this multicast group.
virtual ~HttpMInvalCache()
virtual int command(int argc, const char*const* argv)
virtual void process_data(int size, AppData* data)
virtual void timeout(int reason)
void handle_node_failure(int cid)
void invalidate_server(int sid)
void add_inv(const char *name, double mtime)
HBTimer hb_timer_
HttpInvalAgent** inv_sender_
int num_sender_
int size_sender_
InvalidationRec* invlist_
int num_inv_
void send_heartbeat()
HttpHbData* pack_heartbeat()
virtual void send_hb_helper(int size, AppData *data)
int recv_inv(HttpHbData *d)
virtual void process_inv(int n, InvalidationRec *ivlist, int cache)
virtual int recv_inv_filter(ClientPage* pg, InvalidationRec *p)
InvalidationRec* get_invrec(const char *name)
struct SState
SState(NeighborCache* c)
int is_down()
void down()
void up()
NeighborCache* cache()
Tcl_HashTable sstate_
void add_sstate(int sid, SState* sst)
SState* lookup_sstate(int sid)
void check_sstate(int sid, int cid)
Tcl_HashTable nbr_
void add_nbr(HttpMInvalCache* c)
NeighborCache* lookup_nbr(int id)
HttpUInvalAgent* inv_parent_
void recv_heartbeat(int id)
void recv_leave(HttpLeaveData *d)
void send_leave(HttpLeaveData *d)
double hb_interval_
int enable_upd_
int Ca_
int push_high_bound_
HttpInvalAgent** upd_sender_
int num_updater_
int size_updater_
void add_update(const char *name, double mtime)
void send_upd(ClientPage *pg)
int recv_upd(HttpUpdateData *d)
virtual void send_upd_helper(int pgsize, AppData* data)
HttpUpdateData* pack_upd(ClientPage *pg)
static HttpMInvalCache** CacheRepository_
static int NumCache_
static void add_cache(HttpMInvalCache* c)
static HttpMInvalCache* map_cache(int id)
Http/Cache/Inval/Mcast instproc init args
Http/Cache/Inval/Mcast instproc get-response-GET { server pageid args }
Http/Cache/Inval/Mcast instproc set-parent { parent }
Http/Cache/Inval/Mcast instproc join-inval-group { group }
Http/Cache/Inval/Mcast instvar invalListener_
Http/Cache/Inval/Mcast instvar invListenGroup_
Http/Cache/Inval/Mcast instvar ns_
Http/Cache/Inval/Mcast instvar node_
Http/Cache/Inval/Mcast instproc init-inval-group { group }
Http/Cache/Inval/Mcast instvar invalSender_
Http/Cache/Inval/Mcast instvar invSndGroup_
Http/Cache/Inval/Mcast instproc parent-cache { server }
Http/Cache/Inval/Mcast instvar parent_
Http/Cache/Inval/Mcast instproc refetch { cl type pageid }
Http/Cache/Inval/Mcast instvar marks_
Http/Cache/Inval/Mcast instproc cache-miss { cl type pageid }
Http/Cache/Inval/Mcast instvar pending_
Http/Cache/Inval/Mcast instvar creq_
Http/Cache/Inval/Mcast instvar id_
Http/Cache/Inval/Mcast instproc invalidate { pageid modtime }
Http/Cache/Inval/Mcast instproc get-request { cl type pageid args }
Http/Cache/Inval/Mcast instproc get-req-notify { pageid }
Http/Cache/Inval/Mcast instproc send-req-notify { pageid }
Http/Cache/Inval/Mcast instproc push-update { pageid args }
Http/Cache/Inval/Mcast instproc init-update-group { group }
Http/Cache/Inval/Mcast instvar updSender_
Http/Cache/Inval/Mcast instvar updSendGroup_
Http/Cache/Inval/Mcast instproc join-update-group { group }
Http/Cache/Inval/Mcast instvar updListener_
Http/Cache/Inval/Mcast instvar updListenGroup_
Http/Cache/Inval/Mcast instproc leave-update-group {}
Http/Cache/Inval/Mcast instproc setup-unicast-hb {}
Http/Cache/Inval/Mcast instvar TRANSPORT_
Http/Cache/Inval/Mcast instproc server-join { server cache }
Http/Cache/Inval/Mcast instproc request-mpush { page }
Http/Cache/Inval/Mcast instvar mpush_refresh_
Http/Cache/Inval/Mcast instvar hb_interval_
Http/Cache/Inval/Mcast instproc refresh-mpush { page }
Http/Cache/Inval/Mcast instproc send-refresh-mpush { cache page }
Http/Cache/Inval/Mcast instproc cancel-mpush-refresh { page }
Http/Cache/Inval/Mcast instproc stop-mpush { page }
Http/Cache/Inval/Mcast instproc join-tlc-group { group }
Http/Cache/Inval/Mcast instvar tlcAgent_
Http/Cache/Inval/Mcast instvar tlcGroup_
Http/Cache/Inval/Mcast instproc get-response-TLC { server pageid tlc }
this page has been generated automatically by doc++
Adapted for the NS documentation page
(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de