Поведение при обновлении блочного блоба Azure - PullRequest
0 голосов
/ 28 октября 2019

Я пишу проект, который требует одновременного обновления блочного блоба. Из документации Microsoft:

Список неподтвержденных блоков : список блоков, которые были загружены для большого двоичного объекта с использованием Put Block, но еще не были зафиксированы. Эти блоки хранятся в Azure вместе с большим двоичным объектом, но еще не являются частью большого двоичного объекта.

Я не смог найти никакой документации по

  1. Обновление незафиксированного большого двоичного объектаможет / должно быть выполнено
  2. Что происходит, когда вы пишете в неподтвержденный BLOB-объект.
  3. Сколько времени требуется, чтобы блочный BLOB-объект перешел из незафиксированного -> зафиксированного на основе политики согласованности, которую вывыберите.

Может ли кто-нибудь предоставить больше контекста о поведении одновременного обновления незафиксированных блочных BLOB-объектов?

1 Ответ

1 голос
/ 30 октября 2019

Я протестировал его с помощью Fiddler и последнего пакета nuget для хранения больших двоичных объектов Microsoft.Azure.Storage.Blob , версия 11.1.0

Когда вы используете UploadFromByteArray метод длязагрузить в хранилище BLOB-объектов Azure, есть несколько сценариев:

1.Файлы (или байтовый массив) невелики, например, 10M или 100M, поэтому для BLOB-объекта нет статуса незафиксированного. В этом случае по умолчанию применяется политика параллелизма «последняя запись выигрывает». Так что здесь вам не нужно беспокоиться о неподтвержденных вещах.

2.Если файлы (или байтовый массив) имеют большой размер, например 200M, при использовании метода UploadFromByteArray он будет разбит на множество блоковс уникальным идентификатором блока.

В этом случае, когда большой двоичный объект не передан (до того, как он вызовет поставить список блоков api), вы не можете выполнить другую операцию записи для большого двоичного объекта. Если у вас 2-я операция записи, появляется сообщение об ошибке « Указанный недопустимый объект BLOB-объекта или содержимое блока. » для 2-й операции записи. Я проверил это, вы можете увидеть скриншот ниже:

enter image description here

Относительно ваш третий вопрос, согласно моему тесту, когдаизменения статуса от неподтвержденных (при использовании пут-блока api) -> зафиксировано (при использовании пут-блочного списка), с помощью фиддлера я вычисляю очень короткое время, менее 1 с:

enter image description here

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...