void Row_ts::buffer_req(TsType type, txn_man * txn, row_t * row) { TsReqEntry * req_entry = get_req_entry(); assert(req_entry != NULL); req_entry->txn = txn; req_entry->row = row; req_entry->ts = txn->get_ts(); if (type == R_REQ) { req_entry->next = readreq; readreq = req_entry; if (req_entry->ts < min_rts) min_rts = req_entry->ts; } else if (type == W_REQ) { assert(row != NULL); req_entry->next = writereq; writereq = req_entry; if (req_entry->ts < min_wts) min_wts = req_entry->ts; } else if (type == P_REQ) { preq_len ++; req_entry->next = prereq; prereq = req_entry; if (req_entry->ts < min_pts) min_pts = req_entry->ts; } }
void add_req_entry_if_not_found(const uint8_t* mac, const char* ifname, const uint32_t expiresAt) { struct cache_req_entry* entry = get_req_entry(mac, ifname); if (entry == NULL) { add_req_entry(mac, ifname, expiresAt); } else { entry->expiresAt = expiresAt; } }
void Row_mvcc::buffer_req(TsType type, TxnManager * txn) { MVReqEntry * req_entry = get_req_entry(); assert(req_entry != NULL); req_entry->txn = txn; req_entry->ts = txn->get_timestamp(); req_entry->starttime = get_sys_clock(); if (type == R_REQ) { rreq_len ++; STACK_PUSH(readreq_mvcc, req_entry); } else if (type == P_REQ) { preq_len ++; STACK_PUSH(prereq_mvcc, req_entry); } }
void* get_req_entry_wrp(const uint8_t* mac, const char* ifname) { return get_req_entry(mac, ifname); }