discard ObChunkRowDE mod && do not push view task when queue size almost full
This commit is contained in:
		 18523270951@163.com
					18523270951@163.com
				
			
				
					committed by
					
						 ob-robot
						ob-robot
					
				
			
			
				
	
			
			
			 ob-robot
						ob-robot
					
				
			
						parent
						
							e1081698d6
						
					
				
				
					commit
					de8174ebf2
				
			| @ -267,7 +267,10 @@ void ObMaintainDepInfoTaskQueue::run2() | ||||
|           if (task->get_retry_times() > 0) { | ||||
|             task->set_retry_times(task->get_retry_times() - 1); | ||||
|             task->set_last_execute_time(ObTimeUtility::current_time()); | ||||
|             if (OB_FAIL(queue_.push(task))) { | ||||
|             if (is_queue_almost_full()) { | ||||
|               ret = OB_SIZE_OVERFLOW; | ||||
|               LOG_WARN("push task to queue failed", K(ret)); | ||||
|             } else if (OB_FAIL(queue_.push(task))) { | ||||
|               LOG_WARN("push task to queue failed", K(ret)); | ||||
|             } else { | ||||
|               rescheduled = true; | ||||
|  | ||||
| @ -90,6 +90,7 @@ class ObMaintainDepInfoTaskQueue: public share::ObAsyncTaskQueue | ||||
| { | ||||
| public: | ||||
|   static const int64_t INIT_BKT_SIZE = 512; | ||||
|   constexpr static const double MAX_QUEUE_USAGE_RATIO = 0.8; | ||||
|   ObMaintainDepInfoTaskQueue() : last_execute_time_(0) {} | ||||
|   virtual ~ObMaintainDepInfoTaskQueue() | ||||
|   { | ||||
| @ -102,6 +103,7 @@ public: | ||||
|   { last_execute_time_ = execute_time; } | ||||
|   int add_view_id_to_set(const uint64_t view_id) { return view_info_set_.set_refactored(view_id); } | ||||
|   int erase_view_id_from_set(const uint64_t view_id) { return view_info_set_.erase_refactored(view_id); } | ||||
|   bool is_queue_almost_full() const { return queue_.size() > queue_.capacity() * MAX_QUEUE_USAGE_RATIO; } | ||||
| private: | ||||
|   int64_t last_execute_time_; | ||||
|   common::hash::ObHashSet<uint64_t, common::hash::ReadWriteDefendMode> view_info_set_; | ||||
|  | ||||
		Reference in New Issue
	
	Block a user