  Runtime models provide a snapshot of a system at runtime at a desired level
of abstraction. Via a causal connection to the modeled system and by employing
model-driven engineering techniques, runtime models support schemes for
(runtime) adaptation where data from previous snapshots facilitates more
informed decisions. Nevertheless, although runtime models and model-based
adaptation techniques have been the focus of extensive research, schemes that
treat the evolution of the model over time as a first-class citizen have only
lately received attention. Consequently, there is a lack of sophisticated
technology for such runtime models with history.
  We present a querying scheme where the integration of temporal requirements
with incremental model queries enables scalable querying for runtime models
with history. Moreover, our scheme provides for a memory-efficient storage of
such models. By integrating these two features into an adaptation loop, we
enable efficient history-aware self-adaptation via runtime models, of which we
present an implementation.
