class Innodb::Page::SysRsegHeader
Constants
- Header
- UNDO_SEGMENT_SLOTS
The number of undo log slots in the page.
Public Instance Methods
dump()
click to toggle source
Calls superclass method
Innodb::Page#dump
# File lib/innodb/page/sys_rseg_header.rb, line 90 def dump super puts puts "rollback segment header:" pp rseg_header puts puts "undo segment array:" each_undo_segment do |slot, page_number| puts " #{slot}: #{page_number}" end end
each_region() { |region( offset: pos_rseg_header, length: size_rseg_header, name: :rseg_header, info: "Rollback Segment Header"| ... }
click to toggle source
Calls superclass method
Innodb::Page#each_region
# File lib/innodb/page/sys_rseg_header.rb, line 66 def each_region(&block) return enum_for(:each_region) unless block_given? super yield Region.new( offset: pos_rseg_header, length: size_rseg_header, name: :rseg_header, info: "Rollback Segment Header" ) (0...UNDO_SEGMENT_SLOTS).each do |slot| yield Region.new( offset: pos_undo_segment_array + (slot * size_undo_segment_slot), length: size_undo_segment_slot, name: :undo_segment_slot, info: "Undo Segment Slot" ) end nil end
each_undo_segment() { |slot, page_number| ... }
click to toggle source
# File lib/innodb/page/sys_rseg_header.rb, line 53 def each_undo_segment return enum_for(:each_undo_segment) unless block_given? cursor(pos_undo_segment_array).name("undo_segment_array") do |c| (0...UNDO_SEGMENT_SLOTS).each do |slot| page_number = c.name("slot[#{slot}]") do Innodb::Page.maybe_undefined(c.read_uint32) end yield slot, page_number end end end
history_list()
click to toggle source
# File lib/innodb/page/sys_rseg_header.rb, line 49 def history_list Innodb::HistoryList.new(rseg_header.history_list) end
pos_rseg_header()
click to toggle source
The position of the rollback segment header within the page.
# File lib/innodb/page/sys_rseg_header.rb, line 18 def pos_rseg_header pos_page_body end
pos_undo_segment_array()
click to toggle source
# File lib/innodb/page/sys_rseg_header.rb, line 27 def pos_undo_segment_array pos_rseg_header + size_rseg_header end
rseg_header()
click to toggle source
Parse the rollback segment header from the page.
# File lib/innodb/page/sys_rseg_header.rb, line 36 def rseg_header cursor(pos_rseg_header).name("rseg_header") do |c| Header.new( max_size: c.name("max_size") { c.read_uint32 }, history_size: c.name("history_size") { c.read_uint32 }, history_list: c.name("history_list") do Innodb::List::History.new(@space, Innodb::List.get_base_node(c)) end, fseg: c.name("fseg") { Innodb::FsegEntry.get_inode(@space, c) } ) end end
size_rseg_header()
click to toggle source
The size of the rollback segment header.
# File lib/innodb/page/sys_rseg_header.rb, line 23 def size_rseg_header 4 + 4 + Innodb::List::BASE_NODE_SIZE + Innodb::FsegEntry::SIZE end
size_undo_segment_slot()
click to toggle source
# File lib/innodb/page/sys_rseg_header.rb, line 31 def size_undo_segment_slot 4 end