Гарантировать согласованность данных с большим количеством транзакций

Я пишу веб-приложение, которому нужна база данных.

Транзакции IndexedDB и websql должны быть короткими, и я прочитал, что лучше получить все данные с сервера, а затем открыть транзакцию и записать все, чтобы быть уверенным в согласованности.

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

1 ответ

Существует компромисс между более короткой транзакцией для согласованности и более длинной транзакцией для производительности.

В моей библиотеке (YDN-DB) я рекомендую использовать отдельный поток транзакций для заполнения (параллельный, множественный запрос), обновления (последовательный, атомарный) и запроса (параллельный, одиночный).

Другие вопросы по тегам