Санкт-Петербургский государственный университет
Опубликован: 01.07.2013 | Доступ: свободный | Студентов: 448 / 118 | Длительность: 16:00:00
Лекция 6:

Новая версия Windows Azure Storage

< Лекция 5 || Лекция 6: 12345 || Лекция 7 >

Очереди к таблицам

Кроме стандартных операций, таблицы поддерживают некоторую ограниченную форму очередей.

В предыдущей версии поддерживались только отношение равенства для ключей с одним или несколькими свойствами. Результат выдается в лексикографическом порядке, в соответствии с ключом (partition, row). В новой версии поддерживаются вторичные индексы, определяемые пользователем, для сортировки.

API для запросов из программ использует LINQ – упрощенный язык запросов, аналогичный языку запросов GQL, реализованный в Google App Engine. HTTP REST API использует интерфейс Astoria, основанный на использовании URL-адресов для обращения к сервисам для работы с данными ADO.NET.

Целостность и транзакции

Таблицы Azure полностью целостны, обращения к одному объекту строго синхронизированы, отсутствуют "dirty reads". Для работы с каждым объектом поддерживаются транзакции в стиле ACID (Asynchronous, Consistent, Isolated, Durable – известная парадигма для описания транзакций).

Реализация таблиц

Таблицы спроектированы аналогично хранилищам данных Bigtable and the App Engine.

Разделы (partitions) аналогичны блокнотам (tablets) Bigtable. Все объекты в разделе хранятся на одном сервере данных.

Транзакции реализованы аналогично App Engine datastore. Используется управление версиями объектов.

Запросы. Возможности

Очереди к таблицам аналогичны Amazon SQS. Они позволяют поставить сообщение в очередь и обрабатывать его позже, в слабо связанном виде.

Операции над очередями во время выполнения: enqueue (поставить сообщение в очередь), dequeue (удалить сообщение из очереди), delete (удалить из очереди все сообщения). Сообщения типизированы, из размер – до 8 КБайт.

Операция dequeue использует займы (lease)средство синхронизации. Займ позволяет в течение определенного заданного интервала времени удерживать сообщение в состоянии, не видимом другим клиентам очереди. По умолчанию время задержки – до 30 секунд.

Бинарные объекты (Blobs)

Сервис blob служит для хранения "непрозрачных" бинарных объектов. Они аналогичны Amazon S3. Бинарные объекты могут создаваться и обрабатываться программным путем. Бинарные объекты идентифицируются уникальными, мнемоничными путями доступа в виде URL-адресов типа:

<account>.blob.core.windows.net

Организация бинарных объектов в Windows Azure изображена на рис. 6.2..

Организация бинарных объектов в Windows Azure

Рис. 6.2. Организация бинарных объектов в Windows Azure

Бинарные объекты могут быть блочными или страничными. Блоки до 64 МБайт могут обрабатываться непосредственно, большей длины – должны быть разделены на блоки. Каждый блок закачивается на сайт отдельно. В конце операции проверяется, все ли блоки закачаны.

Возможно использование страничных бинарных объектов, размером до 1 TB. Они предназначены для произвольного доступа к памяти.

Пространство имен для бинарных объектов – это иерархический URL-путь вида:

<account>.blob. core.windows.net

Бинарные объекты можно изменять или клонировать, они не являются неизменяемыми.

Очереди (Queues)

Память Windows Azure Queue – это сервис для хранения большого числа сообщений, доступ к которому возможен через Web с помощью аутентифицированных вызовов, использующих протоколы HTTP или HTTPS.

Каждое из сообщений в очереди может иметь размер до 64KB.

Очередь может состоять из нескольких миллионов сообщений. Предельный объем учетной записи – 100 TB.

Основные способы использования очередей:

  • Создание рабочего множества для асинхронной обработки
  • Передача сообщений от Web-роли Windows Azure к worker-роли Windows Azure.

Пример организации очередей в рамках учетной записи Storage приведен на рис. 6.3.

Пример организации очередей в Windows Azure Storage

Рис. 6.3. Пример организации очередей в Windows Azure Storage

Очереди адресуются с использованием следующего URL-формата:

http://<storage account>.queue.core.windows.net/<queue>

В примере на рис. 6.3.следующий URL-адрес ссылается на одну из очередей на диаграмме:

http://myaccount.queue.core.windows.net/imagesToDownload

< Лекция 5 || Лекция 6: 12345 || Лекция 7 >