Difference between revisions of "TaskFlow/Persistence/Objects, not Collections"
< TaskFlow | Persistence
(Created) |
(→What: Update BP info) |
||
Line 1: | Line 1: | ||
== What == | == What == | ||
− | '''blueprint''': | + | '''blueprint''': https://blueprints.launchpad.net/taskflow/+spec/lb-not-collections |
− | It is proposed to stop treating logbook object as collection of | + | It is proposed to stop treating logbook object as collection of smaller objects: LogBook and FlowDetails should be made simple data-transfer objects, not containers for FlowDetails and AtomDetails respectively. Corresponding API should be moved to backends. |
== Why == | == Why == |
Revision as of 08:11, 31 March 2014
Contents
What
blueprint: https://blueprints.launchpad.net/taskflow/+spec/lb-not-collections
It is proposed to stop treating logbook object as collection of smaller objects: LogBook and FlowDetails should be made simple data-transfer objects, not containers for FlowDetails and AtomDetails respectively. Corresponding API should be moved to backends.
Why
- general sanity
- optimization for certain tasks (monitoring, UI)
- while perserving good performance for engines
- better cache semantics
- backend should know that better
TBD: more descriptive text here.
Implementation Notes
- remove __iter__ and find from LogBook and FlowDetail
- add methods to Connection instead:
- instead of FlowDetail methods:
- instead of LogBook methods:
- get_flow_by_uuid(uuid) -> flow_detail
- get_flows_for_book(logbook_uuid) -> [flow_detail]
- save_flow(flow_uuid)
When: 0.3 series
How:
- add methods to impl_memory.Connection
- modify storage.Storage, make engine and storage tests run
- modify other backends one by one
- modify backends' base class