У меня есть структура данных, которая довольно проста (в основном структура, содержащая некоторые массивы и одиночные значения), но мне нужно записать историю структуры данных, чтобы я мог эффективно получать содержимое структуры данных в любой точке вовремя.
Существует ли относительно простой способ сделать это?
Лучший способ, который я могу представить, - инкапсулировать всю структуру данных на то, что обрабатывает все мутирующие операции, сохраняя данные в функциональных структурах данных, а затем для каждой операции мутации кэширование копии структуры данных в Map, индексированной по времени (например, TreeMap с реальным временем в виде ключей или HashMap с счетчиком операций мутации в сочетании с одним или несколькими индексами, хранящимися в картировании TreeMaps в реальном времени/количество меток/и т.д. для операций мутации)
любые предложения?
edit: В одном случае у меня уже есть история как серия транзакций (это чтение элементов из файла данных), поэтому я могу их воспроизвести, но это занимает O (n) шагов ( n = количество транзакций) каждый раз, когда мне нужно получить доступ к данным. Я ищу альтернативы.