[FIX] use major sstable end_scn to recycle tx data when the tablet do not have minor/mini sstable
This commit is contained in:
		| @ -781,13 +781,20 @@ int ObTxDataTable::get_min_end_scn_from_single_tablet_(ObTabletHandle &tablet_ha | |||||||
|   } else if (tablet->get_tablet_meta().tablet_id_.is_ls_inner_tablet()) { |   } else if (tablet->get_tablet_meta().tablet_id_.is_ls_inner_tablet()) { | ||||||
|     // skip inner tablet |     // skip inner tablet | ||||||
|   } else { |   } else { | ||||||
|     end_scn = tablet->get_tablet_meta().clog_checkpoint_scn_; |  | ||||||
|     ObTabletTableStore &table_store = tablet->get_table_store(); |     ObTabletTableStore &table_store = tablet->get_table_store(); | ||||||
|     ObITable *first_minor_mini_sstable |     ObITable *first_minor_mini_sstable = table_store.get_minor_sstables().get_boundary_table(false /*is_last*/); | ||||||
|       = table_store.get_minor_sstables().get_boundary_table(false /*is_last*/); |     ObITable *last_major_sstable = nullptr; | ||||||
|  |  | ||||||
|     if (OB_NOT_NULL(first_minor_mini_sstable)) { |     if (OB_NOT_NULL(first_minor_mini_sstable)) { | ||||||
|  |       // step 1 : get end_scn if minor/mini sstable exist | ||||||
|       end_scn = first_minor_mini_sstable->get_end_scn(); |       end_scn = first_minor_mini_sstable->get_end_scn(); | ||||||
|  |     } else if (FALSE_IT(last_major_sstable = table_store.get_major_sstables().get_boundary_table(true /*is_last*/))) { | ||||||
|  |     } else if (OB_NOT_NULL(last_major_sstable)) { | ||||||
|  |       // step 2 : if minor/mini sstable do not exist, get end_scn from major sstable | ||||||
|  |       end_scn = last_major_sstable->get_end_scn(); | ||||||
|  |     } else { | ||||||
|  |       // step 3 : if minor/major sstable do not exist, get end_scn from tablet clog_checkpoint | ||||||
|  |       end_scn = tablet->get_tablet_meta().clog_checkpoint_scn_; | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|   return ret; |   return ret; | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 ZenoWang
					ZenoWang