Skip to content
This repository has been archived by the owner on Aug 2, 2022. It is now read-only.

DAWN-491 ⁃ Block Production Time is Unbounded, needs to be Time Bounded #301

Closed
bytemaster opened this issue Sep 1, 2017 · 3 comments
Closed
Assignees

Comments

@bytemaster
Copy link
Contributor

bytemaster commented Sep 1, 2017

The current block production algorithm operates without any consideration to the time it takes to process a block. A block producer has about 300 ms to produce a block so that it can relay via 6 degrees of P2P network processing and get to the next block in time (allowing for 1.2 seconds of network propagation time).

This constraint will naturally limit the real-time throughput to a fraction of what a node would be capable of.

This should probably be configurable by the block producer so we can experiment and adjust as necessary.

@bytemaster bytemaster added this to the Test Network Release milestone Sep 1, 2017
@bytemaster bytemaster self-assigned this Sep 1, 2017
@wanderingbort
Copy link
Contributor

notes from discussion

scheduler needs to limit the amount of transactions it will schedule when considering "time"
best case message time: 20 usec
scheduler should cut off at ~300ms per thread given "best case" time for a message

chain_controller::generate_block should then use wall clock to time the application of the produced schedule and return any overages to the pending transactions.

@bytemaster
Copy link
Contributor Author

This issue ultimately reveals a bigger design change in how transactions are scheduled and blocks are produced:

  1. transactions need to be scheduled as they are received, eg we should have a "pending block" rather than a "pending transactions list".

  2. In the future pending transactions will also have to execute in parallel as they come in or we will be unable to build blocks fast enough even if we can execute on 1000 threads once built.

  3. For developer testing purposes people will not be pushing the limits of their own network so this issue can be postponed until a better scheduling design can be finalized.

@bytemaster bytemaster modified the milestones: EOS Beta, Test Network Release Sep 1, 2017
@blockone-syncclient blockone-syncclient changed the title Block Production Time is Unbounded, needs to be Time Bounded DAWN-491 ⁃ Block Production Time is Unbounded, needs to be Time Bounded Jan 16, 2018
@blockone-syncclient
Copy link

➤ Dhanesh Valappil commented:

Pls can you add the ATC for it?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants