Use one thread to run several engines

Registered by Ivan Melnikov

Currently, graph action is build around a loop that waits for futures to complete. Nothing in that architecture dictates that each engine should use separate thread. To improve its scalability TaskFlow should provide means to share the thread between several engines.

Blueprint information

Status:
Complete
Approver:
Joshua Harlow
Priority:
Medium
Drafter:
Ivan Melnikov
Direction:
Approved
Assignee:
None
Definition:
Discussion
Series goal:
None
Implementation:
Implemented
Milestone target:
None
Started by
Joshua Harlow
Completed by
Joshua Harlow

Related branches

Sprints

Whiteboard

Another option would be to make GraphAction completely callback-based (call it 'explicitly event-driven) and provide means to integrate it into external event event loops, like asyncio/tulip or eventlet or reactor from twisted or whatever (each of them can call callbacks on events).

JH: I think this can currently be done by sharing a executor right? It doesn't use the same eventloop but it seems like if an executor can wrap a eventloop then u could just share that same executor as u already can right?

Gerrit topic: https://review.openstack.org/#q,topic:bp/share-engine-thread,n,z

Addressed by: https://review.openstack.org/170571
    Add a example showing how to share an executor

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.