void PgmanProxy::update_lsn(Page_cache_client& caller, Local_key key, Uint64 lsn) { ndbrequire(blockToInstance(caller.m_block) == 0); SimulatedBlock* block = globalData.getBlock(caller.m_block); Pgman* worker = (Pgman*)extraWorkerBlock(); Page_cache_client pgman(block, worker); pgman.update_lsn(key, lsn); }
int PgmanProxy::drop_page(Page_cache_client& caller, Local_key key, Uint32 page_id) { ndbrequire(blockToInstance(caller.m_block) == 0); SimulatedBlock* block = globalData.getBlock(caller.m_block); Pgman* worker = (Pgman*)extraWorkerBlock(); Page_cache_client pgman(block, worker); int ret = pgman.drop_page(key, page_id); return ret; }
int PgmanProxy::get_page(Page_cache_client& caller, Signal* signal, Page_cache_client::Request& req, Uint32 flags) { ndbrequire(blockToInstance(caller.m_block) == 0); SimulatedBlock* block = globalData.getBlock(caller.m_block); Pgman* worker = (Pgman*)extraWorkerBlock(); Page_cache_client pgman(block, worker); int ret = pgman.get_page(signal, req, flags); caller.m_ptr = pgman.m_ptr; return ret; }
int Dbtup::retrieve_data_page(Signal *signal, Page_cache_client::Request req, OperationrecPtr regOperPtr) { req.m_callback.m_callbackData= regOperPtr.i; req.m_callback.m_callbackFunction = safe_cast(&Dbtup::disk_page_commit_callback); /* * Consider commit to be correlated. Otherwise pk op + commit makes * the page hot. XXX move to TUP which knows better. */ int flags= regOperPtr.p->op_type | Page_cache_client::COMMIT_REQ | Page_cache_client::CORR_REQ; Page_cache_client pgman(this, c_pgman); int res= pgman.get_page(signal, req, flags); m_pgman_ptr = pgman.m_ptr; switch(res){ case 0: /** * Timeslice */ jam(); signal->theData[0] = 1; return res; case -1: ndbrequire("NOT YET IMPLEMENTED" == 0); break; default: jam(); } { PagePtr tmpptr; tmpptr.i = m_pgman_ptr.i; tmpptr.p = reinterpret_cast<Page*>(m_pgman_ptr.p); disk_page_set_dirty(tmpptr); } regOperPtr.p->m_commit_disk_callback_page= res; regOperPtr.p->op_struct.bit_field.m_load_diskpage_on_commit= 0; return res; }