Igniters,

With the newly donated persistence functionality in Ignite, I have been
struggling a bit on how to fit the notion of persistence into the current
Ignite interfaces, that are almost completely memory oriented. For example,
abstractions like MemoryConfiguration or MemoryMetrics will now have to
include the persistence context, given that pages will be seamlessly mapped
to disk, whenever the memory fills up (e.g. providing the number of pages
on disk on MemoryMetrics interface).

After looking around, I have noticed that our architecture is increasingly
beginning to look like the Virtual Memory concept in operating systems [1],
if you consider Ignite off-heap memory to be the physical memory, and disk
to be the secondary memory space. Just like virtual memory, our
architecture is based on memory pages and memory segments. The total set of
all pages constitutes the total virtual memory space.

If we document our memory interfaces as virtual memory, then we won't have
to do any renaming and can comfortably add disk-based methods to these
interfaces, as it becomes consistent with the virtual memory concept.

Thoughts?

[1] - https://en.wikipedia.org/wiki/Virtual_memory

Reply via email to