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

Just-in-time Transaction Scheduling / Async Push Transaction #512

Closed
4 tasks
bytemaster opened this issue Sep 27, 2017 · 5 comments
Closed
4 tasks

Just-in-time Transaction Scheduling / Async Push Transaction #512

bytemaster opened this issue Sep 27, 2017 · 5 comments
Assignees
Labels

Comments

@bytemaster
Copy link
Contributor

bytemaster commented Sep 27, 2017

In a multi-threaded environment chain::push_transaction cannot be synchronous, it the transaction will have to be scheduled then dispatched to the proper thread and then finally accepted or rejected.

Our unit tests still benefit from having a synchronous push_transaction, so this task is to define a new method called async_push_transaction(). Because things are ASYNC we cannot use the STACK for managing the transaction lifetime, therefore we should move to a shared ptr model.

This method should take a functor that is called with success or any errors.

  • Build a block as transactions are pushed
  • don't apply a transaction 3x on producing node, only apply it 1x
  • refactor transaction scheduling to handle read-only scopes and just-in-time scheduling
  • if a transaction is postponed to next cycle, it the next cycle should start no later than 100 ms
@bytemaster bytemaster self-assigned this Sep 27, 2017
@bytemaster bytemaster added this to the EOS Dawn 1.1 milestone Sep 27, 2017
@bytemaster bytemaster changed the title Implement Async Push Transaction Just-in-time Transaction Scheduling / Async Push Transaction Sep 27, 2017
@bytemaster
Copy link
Contributor Author

As part of this task I am reviewing our high level design processing incoming transactions. I have mostly focused on the interface specification at this time. Nothing to commit just yet.

@bytemaster
Copy link
Contributor Author

I'm going to put this task on hold until a refactor of chainbase to support proper scoping of tables.

@bytemaster
Copy link
Contributor Author

#525 will be implemented first, then get back to this.

@andriantolie
Copy link
Contributor

@bytemaster is this still issue completed?

@brianjohnson5972
Copy link
Contributor

Any plans of making push_transaction be synchronous have been dropped, so this issue is OBE

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

No branches or pull requests

4 participants