У меня есть требование, когда огромное количество данных необходимо кэшировать на диске.
Всякий раз, когда происходит изменение в базе данных, данные извлекаются из базы данных и кэшируются на диске. У меня будет фоновый процесс, который постоянно проверяет мои кэшированные данные в базе данных и обновляет их по мере необходимости.
Я хотел бы знать, как лучше всего организовать кэшированные данные на моем диске, чтобы запись и чтение из кэша могли выполняться быстрее.
Другой поток будет использоваться для получения новых данных из базы данных и кэширования их на диске. Мне также нужно позаботиться о синхронизации между двумя потоками (один будет обновлять существующие данные кэша, а другой будет записывать вновь полученные данные в кеш).
Пожалуйста, предложите стратегию организации данных в кеше, а также синхронизации между потоками.