Skip to content

Can the timeline be a immutable datastructure? #144

@jpmonettas

Description

@jpmonettas

Currently the timeline is implemented as a mutable list. The only reason for this is performance for recording. Transients can't be used because there is no event that signals the end of the tracing, so there is no place to call persistent!.

The problem with it being mutable is that then we need to synchronize for walking it, making it impossible to parallelize work there, like to use clojure.core.reducers/fold on the timeline.

I think it would be interesting to explore a combination of time batching and transients, to see if we can get an immutable recording but also fast insertion.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions