Сценарии использования облачных вычислений Windows Azure . Масштабирование
масштабирование в Sql azure
description
Transcript of масштабирование в Sql azure
Масштабирование в SQL Azure Новый уровень
Денис РезникРуководитель департамента веб-разработкиDigital Cloud Technologies
Масштабирование
Scale upКупить мощный сервер
Мощные сервера дорогие!
Загрузить сервер по полнойЧто делать если нагрузка меняется? Резервы для пиковой нагрузки - нерентабельно!
Scale-outРаспределить данные и нагрузку между
несколькими серверамиМаленькие сервера дешёвые! Scale linearly800 маленьких серверов работают олчень быстро
Способность противостоять пиковым нагрузкамРаспределение нагрузки внутри датацентра
Масштабирование для многопользовательских приложений
Хранить всё в одной базе? Слишком много данных…Создавать базу данных под каждого пользователя? Неплохо…Sharding Pattern: Лучше
Приложение должно быть готово к этому!T1 T2 T3 T4 T5
T6 T7 T8 T9T10
T11
T12
T13
T14
T15
T16
T17
T18
T19
T20
T1 T2 T3 T4 T5
T6 T7 T8 T9T10
T11
T12
T13
T14
T15
T16
T17
T18
T19
T20
Все мои данные
хранятся в одной БД на
одном сервере
DIY Sharding: ПроблемыРезервирование
Рост и уменьшение размера БД
УправлениеОбновление, Высокая доступность
МаршрутизацияГде находятся мои данные?Как их масштабировать и использовать?
Управление секциямиРазбиение и слияниеРаспределёние
Covered by
SQL Azure today
Coming up in SQL Azure:
Federations
2011
SQL Azure Federations: Основные понятия
Federation Представляет данные с шардов
Federation KeyЗначение, которое определяет маршрутизацию данных
Atomic UnitВсе строки с одинаковым значением federation key value: всегда вместе!
Federation Member (aka Shard)Физическое хранилище для atomic unit
Federation RootБаза данных, содержащая информацию о федерации
Root
Federation “CustData”
Member: [min, 100)AU
PK=5
AUPK=25
AUPK=35
Member: [100, 488)AU
PK=105
AUPK=23
5
AUPK=36
5Member: [488,
max)AUPK=55
5
AUPK=25
45
AUPK=35
65
(Federation Key: CustID)
Создание Federation
Создание root базы данныхCREATE DATABASE SalesDBСодержит метаданные секцийЦентрализованное хранилище данных
Создание federation в rootCREATE FEDERATION Orders_Fed (RANGE BIGINT)Указание имени и типа ключаСоздание первого member, покрывающего все даные
SalesDB
Federation “Orders_Fed”
(Federation Key: CustID)Member: [min,
max)
Создание схемы
Federated tablesCREATE TABLE orders (…)
FEDERATE ON (customerId)Значение federation key будет определять
то где будут находиться данныеReference tables
CREATE TABLE zipcodes (…)Отсутствие FEDERATE ON указывает на
reference tableCentralized tables
Создаются в root database
Federation “Orders_Fed”
(Federation Key: CustID)
Member: [min, max)
SalesDB
orders
Products
zipcode
Разделение и слияниеSplitting a member
Когда слишком большие или высоконагруженныеALTER FEDERATION Orders_Fed SPLIT (100)Создаёт 2 новых членаOnline!
Merging membersКогда слишком малькиеALTER FEDERATION Orders_Fed MERGE (200)Создаёт новый член, удаляет старые
Federation “Orders_Fed”
(Federation Key: CustID)Member: [min,
max)
SalesDB
orders
Products
zipcode
Member: [min, 100)orde
rszipco
de
Member: [100, max) zipco
deorde
rs
Соединение и операции
Connect to atomic unitUSE FEDERATION Orders_Fed (56) WITH FILTERING=ONТолько данные со значением federation key 56 видимы
+ reference data
Safe: atomic unit никогда не может быть разделён
Connect to entire federation memberUSE FEDERATION Orders_Fed (56) WITH FILTERING=OFFВсе данные члена федерации видимыDangerous: federation member может быть разделён
Member: [min, 100)AU
PK=5
AUPK=25
AUPK=56
App
zipcode
Sharding in SQL Azure: За пределами v1
Schema ManagementПоддержка управления схемами членов федерации.
Fan-out QueriesЕдиничный запрос, который получает данные с нескольких членов федерации.
Auto RepartitioningАвтоматическое разбиение базы данных в зависимости от определённого критерия (время отклика, размер базы данных и т.п.)
Multi Column Federation KeysFederate on enterprise_customer_id + account_id
Полезные ссылки
Building Scale-Out Database Solutions on SQL Azure
http://player.microsoftpdc.com/Session/591d586f-3732-4bff-8ee2-857f27d74df4 (Lev Novik - pdc 2010)
Introducing Federation in SQL Azurehttp://blogs.msdn.com/b/cbiyikoglu/archive/2010/10/30/building-scalable-database-solution-in-sql-azure-introducing-federation-in-sql-azure.aspx
Scaling out with SQL Azurehttp://social.technet.microsoft.com/wiki/contents/articles/scaling-out-with-sql-azure.aspx
THANK YOU
Денис РезникРуководитель департамента веб-разработки, DCTTrainer, Microsoft Innovation CenterMicrosoft MVP (SQL Server)MCT, MCITP, MCPD, [email protected]://reznik.uneta.com.ua/http://twitter.com/DenisReznik