mirror of
				https://github.com/ton-blockchain/ton
				synced 2025-03-09 15:40:10 +00:00 
			
		
		
		
	Optimize importing out queues
This commit is contained in:
		
							parent
							
								
									44ba040934
								
							
						
					
					
						commit
						5c02459fd8
					
				
					 22 changed files with 588 additions and 450 deletions
				
			
		|  | @ -189,15 +189,14 @@ class ValidatorManagerImpl : public ValidatorManager { | |||
|   }; | ||||
|   std::map<BlockIdExt, WaitList<WaitBlockState, td::Ref<ShardState>>> wait_state_; | ||||
|   std::map<BlockIdExt, WaitList<WaitBlockData, td::Ref<BlockData>>> wait_block_data_; | ||||
|   std::map<std::pair<BlockIdExt, ShardIdFull>, WaitListCaching<WaitOutMsgQueueProof, td::Ref<OutMsgQueueProof>>> | ||||
|       wait_out_msg_queue_proof_; | ||||
|   td::Timestamp cleanup_wait_caches_at_ = td::Timestamp::now(); | ||||
| 
 | ||||
|   struct WaitBlockHandle { | ||||
|     std::vector<td::Promise<BlockHandle>> waiting_; | ||||
|   }; | ||||
|   std::map<BlockIdExt, WaitBlockHandle> wait_block_handle_; | ||||
| 
 | ||||
|   td::actor::ActorOwn<OutMsgQueueImporter> out_msg_queue_importer_; | ||||
| 
 | ||||
|  private: | ||||
|   // HANDLES CACHE
 | ||||
|   std::map<BlockIdExt, std::weak_ptr<BlockHandleInterface>> handles_; | ||||
|  | @ -372,8 +371,8 @@ class ValidatorManagerImpl : public ValidatorManager { | |||
|                         td::Promise<td::Ref<ShardState>> promise) override; | ||||
|   void wait_block_state_short(BlockIdExt block_id, td::uint32 priority, td::Timestamp timeout, | ||||
|                               td::Promise<td::Ref<ShardState>> promise) override; | ||||
|   void wait_out_msg_queue_proof(BlockIdExt block_id, ShardIdFull dst_shard, td::uint32 priority, td::Timestamp timeout, | ||||
|                                 td::Promise<td::Ref<OutMsgQueueProof>> promise) override; | ||||
|   void wait_neighbor_msg_queue_proofs(ShardIdFull dst_shard, std::vector<BlockIdExt> blocks, td::Timestamp timeout, | ||||
|                                       td::Promise<std::map<BlockIdExt, td::Ref<OutMsgQueueProof>>> promise) override; | ||||
| 
 | ||||
|   void set_block_data(BlockHandle handle, td::Ref<BlockData> data, td::Promise<td::Unit> promise) override; | ||||
|   void wait_block_data(BlockHandle handle, td::uint32 priority, td::Timestamp, | ||||
|  | @ -462,9 +461,9 @@ class ValidatorManagerImpl : public ValidatorManager { | |||
|   void send_ihr_message(td::Ref<IhrMessage> message) override; | ||||
|   void send_top_shard_block_description(td::Ref<ShardTopBlockDescription> desc) override; | ||||
|   void send_block_broadcast(BlockBroadcast broadcast) override; | ||||
|   void send_get_out_msg_queue_proof_request(BlockIdExt id, ShardIdFull dst_shard, block::ImportedMsgQueueLimits limits, | ||||
|                                             td::uint32 priority, | ||||
|                                             td::Promise<td::Ref<OutMsgQueueProof>> promise) override; | ||||
|   void send_get_out_msg_queue_proof_request(ShardIdFull dst_shard, std::vector<BlockIdExt> blocks, | ||||
|                                             block::ImportedMsgQueueLimits limits, | ||||
|                                             td::Promise<std::vector<td::Ref<OutMsgQueueProof>>> promise) override; | ||||
| 
 | ||||
|   void update_shard_client_state(BlockIdExt masterchain_block_id, td::Promise<td::Unit> promise) override; | ||||
|   void get_shard_client_state(bool from_db, td::Promise<BlockIdExt> promise) override; | ||||
|  | @ -499,7 +498,6 @@ class ValidatorManagerImpl : public ValidatorManager { | |||
| 
 | ||||
|   void finished_wait_state(BlockHandle handle, td::Result<td::Ref<ShardState>> R); | ||||
|   void finished_wait_data(BlockHandle handle, td::Result<td::Ref<BlockData>> R); | ||||
|   void finished_wait_msg_queue(BlockIdExt block_id, ShardIdFull dst_shard, td::Result<td::Ref<OutMsgQueueProof>> R); | ||||
| 
 | ||||
|   void start_up() override; | ||||
|   void started(ValidatorManagerInitResult result); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue