Обработка проблем, вызванных условиями гонки при выборке сохраненных данных

Что такое «Условия гонки»?

Состояние гонки — это ситуация, когда задачи, выполняемые асинхронно в одно и то же время, возвращают результаты своего выполнения в порядке времени, необходимого для завершения выполнения каждой из задач.

Как это происходит?

когда задачи выполняются асинхронно, они выполняются параллельно, что означает, что все задачи начинают выполняться примерно в одно и то же время, как показано на диаграмме ниже.

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

Как я могу говорить о «условиях гонки»

логически думая об этом, поскольку условия гонки возникают только тогда, когда данные извлекаются в виде кусков. Что, если бы теперь вы могли извлекать их как один большой блок? Решение, например, поместить всех спортсменов в гоночный автомобиль, что-то вроде строкового объекта, а не хранить их в виде блоков, таких как объекты карты или массивы. При таком подходе порядок выполнения контролируется и не меняется от исходного, однако это хорошая идея, когда объекты, хранящиеся в одном фрагменте, невелики, а также следует уделить внимание тому, как вы конвертируете их из большого фрагмента в несколько других фрагментов. Позвольте мне показать вам, как вы можете поддерживать некоторую структуру при изменении форматов в программировании.

Я собираюсь использовать встроенную в Python библиотеку json для перехода от строковых объектов к объектам карты.

сначала импортируйте модуль json

import json

далее мы собираемся перейти от объекта карты к строке, а затем сохранить объект в базах данных, таких как googles firestore

data = {"name":"john doe", "age":13, "location":"West Nile"}
dt = json.dumps(data)
upload(path="path/to", dt)

#now you can upload the dt object to storage and its stored as one chunk

и после извлечения данных из хранилища в виде одного фрагмента мы можем преобразовать их обратно, используя ту же библиотеку json.

#now you can upload the dt object to storage and its stored as one chunk

dt = fetch(path="path/to")
data = json.loads(dt)

Я думаю, это было полезно. Спасибо, что нашли время, чтобы ознакомиться с моей идеей.