Comments (5)
Let me comment on the various points.
- Ownership: it very much depends on the vision for how PODIO will support multiple I/O backends. Either the EventStore is merely a thin facade on top of the reader / writer which have all the business logic. Or - what makes more sense - the EventStore does most of the book keeping and thus the I/O backends mainly bridge to the memory models of the I/O libs. At least in first order. This allows as well to mix different backends and format conversion. @tmadlener made a good point about the writer acting as a sink. I think that makes a lot if sense. We should however make the interfaces more clear about ownership transfer.
The metadata handling to me needs a rethinking entirely.
-
Synchronization: for this I will need to explain possible models in a meeting if OK with everybody
-
const correctness: goes along with it
from podio.
The metadata handling to me needs a rethinking entirely.
Yes, I agree. At the moment it is not clear what are the use cases that we want to support (and also which we do not want to support). I think we first need to clarify that a bit more, before we can think about how to best implement this.
@tmadlener made a good point about the writer acting as a sink. I think that makes a lot if sense.
Actually, after thinking about this some more, I am not sure if it is the best way to do it. It is not entirely clear to me whether we can support a use case where the data remain valid after we have written them. E.g. The use case for writing different tiers of data in one processing unit, or writing to more than one file at the end.
from podio.
The point about the sink is that the write can happen asynchronously as defined by the logics of the writer rather than tied to the lifetime of an event.
from podio.
See also discussion https://indico.cern.ch/event/983031/#4-discussion
from podio.
No longer relevant with deprecation of the EventStore and the Frame based model.
from podio.
Related Issues (20)
- Check podio Collections for C++ Container compatibility
- Frame based I/O crashes when reading objects with related object that were not persisted
- New python import structure does not work if SIO backend is not built HOT 2
- AddressSanitizer: heap-use-after-free in object destructor HOT 9
- Negative comparisons between `podio::ObjectID` objects are not implemented HOT 2
- Allow to limit the collections that are read
- ROOTFrameData leaks collection buffers that are not requested by the Frame HOT 2
- podio-vis not installed by make install HOT 2
- Cleanup CollectionReadBuffers HOT 1
- Weird names in `dir(podio)` HOT 1
- discussion: Possibility of differing in-memory and on-file datatypes HOT 1
- Add tests for JSON output
- Trivial return types of generated get methods should be by value instead of const reference
- Switch to black for formatting python sources HOT 1
- how to retrieve the cell ID encoding from the metadata in the output ROOT file HOT 2
- RNTuple interface changed in ROOT HOT 1
- collection push_back and value_type incompatible with some std iterator adaptors HOT 1
- Inconsistent reference access for Mutable types
- Schema evolution script does not flag some evolutions as impossible
- Frame serialization/deserialization HOT 12
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from podio.