class Innodb::Page::UndoLog
Constants
- PageHeader
- SegmentHeader
- UNDO_PAGE_TYPES
- UNDO_SEGMENT_STATES
Public Instance Methods
dump()
click to toggle source
Dump the contents of a page for debugging purposes.
Calls superclass method
Innodb::Page#dump
# File lib/innodb/page/undo_log.rb, line 92 def dump super puts "undo page header:" pp undo_page_header puts puts "undo segment header:" pp undo_segment_header puts puts "last undo log:" undo_log(undo_segment_header[:last_log_offset]).dump unless undo_segment_header[:last_log_offset].zero? puts end
next_address()
click to toggle source
# File lib/innodb/page/undo_log.rb, line 72 def next_address undo_page_header[:page_list_node][:next] end
pos_undo_logs()
click to toggle source
# File lib/innodb/page/undo_log.rb, line 40 def pos_undo_logs pos_undo_segment_header + size_undo_segment_header end
pos_undo_page_header()
click to toggle source
# File lib/innodb/page/undo_log.rb, line 24 def pos_undo_page_header pos_page_body end
pos_undo_segment_header()
click to toggle source
# File lib/innodb/page/undo_log.rb, line 32 def pos_undo_segment_header pos_undo_page_header + size_undo_page_header end
prev_address()
click to toggle source
# File lib/innodb/page/undo_log.rb, line 68 def prev_address undo_page_header[:page_list_node][:prev] end
size_undo_page_header()
click to toggle source
# File lib/innodb/page/undo_log.rb, line 28 def size_undo_page_header 2 + 2 + 2 + Innodb::List::NODE_SIZE end
size_undo_segment_header()
click to toggle source
# File lib/innodb/page/undo_log.rb, line 36 def size_undo_segment_header 2 + 2 + Innodb::FsegEntry::SIZE + Innodb::List::BASE_NODE_SIZE end
undo_log(pos)
click to toggle source
# File lib/innodb/page/undo_log.rb, line 87 def undo_log(pos) Innodb::UndoLog.new(self, pos) end
undo_page_header()
click to toggle source
# File lib/innodb/page/undo_log.rb, line 57 def undo_page_header @undo_page_header ||= cursor(pos_undo_page_header).name("undo_page_header") do |c| PageHeader.new( type: c.name("type") { UNDO_PAGE_TYPES[c.read_uint16] }, latest_log_record_offset: c.name("latest_log_record_offset") { c.read_uint16 }, free_offset: c.name("free_offset") { c.read_uint16 }, page_list_node: c.name("page_list") { Innodb::List.get_node(c) } ) end end
undo_segment_header()
click to toggle source
# File lib/innodb/page/undo_log.rb, line 76 def undo_segment_header @undo_segment_header ||= cursor(pos_undo_segment_header).name("undo_segment_header") do |c| SegmentHeader.new( state: c.name("state") { UNDO_SEGMENT_STATES[c.read_uint16] }, last_log_offset: c.name("last_log_offset") { c.read_uint16 }, fseg: c.name("fseg") { Innodb::FsegEntry.get_inode(@space, c) }, page_list: c.name("page_list") { Innodb::List::UndoPage.new(@space, Innodb::List.get_base_node(c)) } ) end end