Skip to content

Check if ixmp.backend.JDBCBackend.preload() is required for performance parity #213

@glatterf42

Description

@glatterf42

The JDBCBackend in ixmp has a preload() function to "preload" all IAMC datapoints/timeseries data. ixmp4 doesn't have such a function yet, but I'm also not sure it needs one. For now, this issue is to clarify if we need such a function.

If we do, this issue can be transformed to add one.

While on this topic, note that JDBCBackend benefits from two kinds of caching right now: one happens in ixmp, and this is mirrored for IXMP4Backend, which receives the same kind of caching with iiasa/ixmp#601.
The other happens in ixmp_source (private repo), where each TimeSeries object has a timeseriescache, which is a mapping from a cache key to the yearly values (i.e. datapoints, I think). Entries are added when addTimeseries() is called or when one TimeSeries is created by copying another.
As far as I know (but @meksor will know best), we currently don't have such a cache for datapoints in ixmp4. If the cache in ixmp_source is implemented well, it may increase the performance there by avoiding reads from the database, and it may be that we have to implement something similar to reach the same level of performance. We might be able to decide whether this is needed based on some performance tests; we already have some performance tests for datapoints ixmp4, but I'm not sure about ixmp/ixmp_source.

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions