Хранение, выборка и даже запрос JSON в эти дни не являются большой проблемой - особенно с решениями NoSQL, такими как MongoDB & Cassandra. Фактически, платформа, подобная MongoDB, позволит вам напрямую отправлять запросы в JSON - на самом деле, она хранит данные как документы JSON и работает достаточно хорошо. (Я собираюсь предположить, что вы не говорите о масштабном масштабе, по крайней мере, пока нет.)
Суть в том, что такая система, как MongoDB, сделала для вас много тяжелой работы. Он будет эффективно оптимизировать для вас вещи, такие как загрузка частых документов в память, оптимизация их размеров и создание механизмов для перемещения больших документов JSON без огромных следов.
Если вы столкнулись с этим на уровне файлов за файлом, у вас будет много непредвиденных проблем, с которыми вам придется столкнуться в будущем. Вам необходимо управлять файловыми дескрипторами, следить за блокировкой чтения/записи при одновременных чтениях, разрешениями файловой системы, устранять узкие места производительности ввода-вывода диска - список продолжается. Даже для веб-серверов в эти дни, которые обслуживают файлы днем и ночью, где они сделали некоторые довольно интересные оптимизации для управления производительностью обработки файлов, в конечном итоге работают с CDN (Сети доставки контента), чтобы оптимизировать производительность на грани и управлять масштабом.
Сохранение предыдущих версий данных JSON может быть таким же простым, как просто не переписывать существующую запись и маркировать предыдущую предыдущую (n-2) версию для удаления. Затем это можно сделать в отдельном потоке, чтобы «очистить» или пакетный процесс в одночасье, чтобы удалить посторонние данные. (ПРИМЕЧАНИЕ: это может привести к некоторой фрагментации вниз по линии, но это то, что можно впоследствии сжать.)
Итак, длинный рассказ короткий. Я больше не буду хранить JSON в файловой системе. Поместите его в нечто вроде MongoDB и дайте ему обработать подробные детали. Пока вы действительно не перейдете на транзакции 1B +, это, вероятно, должно быть очень хорошо для вас.