update snapshot_version and mult_version_start when ddl major generates.
This commit is contained in:
		| @ -745,15 +745,21 @@ int ObTabletDDLUtil::update_ddl_table_store(const ObTabletDDLParam &ddl_param, | |||||||
|                                                  ObTabletCommon::NO_CHECK_GET_TABLET_TIMEOUT_US))) { |                                                  ObTabletCommon::NO_CHECK_GET_TABLET_TIMEOUT_US))) { | ||||||
|       LOG_WARN("get tablet failed", K(ret), K(ddl_param)); |       LOG_WARN("get tablet failed", K(ret), K(ddl_param)); | ||||||
|     } else { |     } else { | ||||||
|  |       const bool is_major_sstable = ddl_param.table_key_.is_major_sstable(); | ||||||
|       const int64_t rebuild_seq = ls_handle.get_ls()->get_rebuild_seq(); |       const int64_t rebuild_seq = ls_handle.get_ls()->get_rebuild_seq(); | ||||||
|  |       const int64_t snapshot_version = is_major_sstable ? max(ddl_param.snapshot_version_, tablet_handle.get_obj()->get_snapshot_version()) | ||||||
|  |                                                        : tablet_handle.get_obj()->get_snapshot_version(); | ||||||
|  |       const int64_t multi_version_start = is_major_sstable ? max(ddl_param.snapshot_version_, tablet_handle.get_obj()->get_multi_version_start()) | ||||||
|  |                                               : 0; | ||||||
|       ObTabletHandle new_tablet_handle; |       ObTabletHandle new_tablet_handle; | ||||||
|       ObUpdateTableStoreParam table_store_param(table_handle, |       ObUpdateTableStoreParam table_store_param(table_handle, | ||||||
|                                                 tablet_handle.get_obj()->get_snapshot_version(), |                                                 snapshot_version, | ||||||
|                                                 &tablet_handle.get_obj()->get_storage_schema(), |                                                 multi_version_start, | ||||||
|                                                 rebuild_seq, |                                                 rebuild_seq, | ||||||
|                                                 ddl_param.table_key_.is_major_sstable(), // update_with_major_flag |                                                 &tablet_handle.get_obj()->get_storage_schema(), | ||||||
|                                                 ddl_param.table_key_.is_major_sstable()); // need report checksum |                                                 is_major_sstable, // update_with_major_flag | ||||||
|       table_store_param.ddl_info_.keep_old_ddl_sstable_ = !ddl_param.table_key_.is_major_sstable(); |                                                 is_major_sstable); // need report checksum | ||||||
|  |       table_store_param.ddl_info_.keep_old_ddl_sstable_ = !is_major_sstable; | ||||||
|       table_store_param.ddl_info_.data_format_version_ = ddl_param.data_format_version_; |       table_store_param.ddl_info_.data_format_version_ = ddl_param.data_format_version_; | ||||||
|       table_store_param.ddl_info_.ddl_commit_scn_ = ddl_param.commit_scn_; |       table_store_param.ddl_info_.ddl_commit_scn_ = ddl_param.commit_scn_; | ||||||
|       if (OB_FAIL(ls_handle.get_ls()->update_tablet_table_store(ddl_param.table_key_.get_tablet_id(), table_store_param, new_tablet_handle))) { |       if (OB_FAIL(ls_handle.get_ls()->update_tablet_table_store(ddl_param.table_key_.get_tablet_id(), table_store_param, new_tablet_handle))) { | ||||||
|  | |||||||
| @ -290,14 +290,15 @@ ObUpdateTableStoreParam::ObUpdateTableStoreParam( | |||||||
| ObUpdateTableStoreParam::ObUpdateTableStoreParam( | ObUpdateTableStoreParam::ObUpdateTableStoreParam( | ||||||
|     const ObTableHandleV2 &table_handle, |     const ObTableHandleV2 &table_handle, | ||||||
|     const int64_t snapshot_version, |     const int64_t snapshot_version, | ||||||
|     const ObStorageSchema *storage_schema, |     const int64_t multi_version_start, | ||||||
|     const int64_t rebuild_seq, |     const int64_t rebuild_seq, | ||||||
|  |     const ObStorageSchema *storage_schema, | ||||||
|     const bool update_with_major_flag, |     const bool update_with_major_flag, | ||||||
|     const bool need_report) |     const bool need_report) | ||||||
|   : table_handle_(table_handle), |   : table_handle_(table_handle), | ||||||
|     snapshot_version_(snapshot_version), |     snapshot_version_(snapshot_version), | ||||||
|     clog_checkpoint_scn_(), |     clog_checkpoint_scn_(), | ||||||
|     multi_version_start_(0), |     multi_version_start_(multi_version_start), | ||||||
|     need_report_(need_report), |     need_report_(need_report), | ||||||
|     storage_schema_(storage_schema), |     storage_schema_(storage_schema), | ||||||
|     rebuild_seq_(rebuild_seq), |     rebuild_seq_(rebuild_seq), | ||||||
|  | |||||||
| @ -335,8 +335,9 @@ struct ObUpdateTableStoreParam | |||||||
|   ObUpdateTableStoreParam( // for ddl merge task only |   ObUpdateTableStoreParam( // for ddl merge task only | ||||||
|     const ObTableHandleV2 &table_handle, |     const ObTableHandleV2 &table_handle, | ||||||
|     const int64_t snapshot_version, |     const int64_t snapshot_version, | ||||||
|     const ObStorageSchema *storage_schema, |     const int64_t multi_version_start, | ||||||
|     const int64_t rebuild_seq, |     const int64_t rebuild_seq, | ||||||
|  |     const ObStorageSchema *storage_schema, | ||||||
|     const bool update_with_major_flag, |     const bool update_with_major_flag, | ||||||
|     const bool need_report = false); |     const bool need_report = false); | ||||||
|  |  | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 obdev
					obdev