SQL Rally 2012 - масштабируемость SQL Server и SQL Azure
Upcoming SlideShare
Loading in...5
×
 

SQL Rally 2012 - масштабируемость SQL Server и SQL Azure

on

  • 701 views

Презентация к докладу Резника Дениса (MVP (SQL Server), руководитель департамента веб-разработки в DCT). ...

Презентация к докладу Резника Дениса (MVP (SQL Server), руководитель департамента веб-разработки в DCT).
В докладе будут рассмотрены основные принципы и техники масштабирования баз данных и возможности SQL Server и SQL Azure, которые упрощают этот процесс.

Statistics

Views

Total Views
701
Views on SlideShare
701
Embed Views
0

Actions

Likes
0
Downloads
3
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    SQL Rally 2012 - масштабируемость SQL Server и SQL Azure SQL Rally 2012 - масштабируемость SQL Server и SQL Azure Presentation Transcript

    • МАСШТАБИРУЕМОСТЬSQL SERVER И SQL AZUREДенис Резникreznik@dct.ua
    • О себе Руководитель департамента веб-разработки компании Digital Cloud Technologies Тренер Microsoft Innovation Center Microsoft MVP (SQL Server) Microsoft Certified Trainer USSUG Lead Блог: http://reznik.uneta.com.ua Твиттер: @DenisReznik Email: DenisReznik@live.ru Track # – Session # 2
    • Масштабирование v
    • Масштабирование Способность справляться с увеличением нагрузки без влияния на производительность Высокая доступность и отказоустойчивость Управляемость и сопровождаемость Track # – Session # 4
    • Вертикальное масштабированиеScale Up Купить мощный сервер Добавлять серверу ресурсы Есть потолок масштабируемости Track # – Session # 5
    • Вертикальное масштабированиеSQL Server Горячее добавление памяти и процессоров Поддержка до 256 ядер Track # – Session # 6
    • Вертикальное масштабированиеSQL AzureScale Up в SQL Azure нет! 32 GB RAM, 8 cores Track # – Session # 7
    • Горизонтальное масштабированиеScale Out Распределить данные и нагрузку между несколькими серверами Не имеет границ масштабирования Track # – Session # 8
    • Горизонтальное масштабированиеБаза данных Варианты масштабирования базы данных Репликация Дублирование данных на серверах Шардинг Распределение данных между серверами Track # – Session # 9
    • Техники горизонтальногомасштабированияv
    • Shared Databases Общий SAN с базой данных До восьми инстансов SQL Server База данных – только для чтения Track # – Session # 11
    • Partitioned Tables Таблица разбивается на секции В пределах одной физической машины Track # – Session # 12
    • Distributed Partitioned Views Секционированное представление Linked Server Track # – Session # 13
    • Репликация v
    • Master-Slave репликация Пишем на Master, читаем со Slave-ов Масштабирование чтения Запись не масштабируюется Блокировки на всех серверах Track # – Session # 15
    • Peer-to-Peer репликация Пишем на все сервера Читаем со всех серверов Синхронизация данных Track # – Session # 16
    • AlwaysOn A A A A Track # – Session # 17
    • AlwaysOn – Механизм работы 1 Commit Подтверждение 7 Подтверждение 6 Запись данных 2 в базу 2 Передача данных 4 Запись в локальный Сохранено в Запись в 3 локальном log log 5 Log DB Log Log DB Track # – Session # 18
    • AlwaysOn Переключение нескольких баз (концепция Availability Groups) Автоматическое переключение Несколько копий базы Чтение с копий Перенаправление соединения пользователя в случае отказа основной базы Track # – Session # 19
    • SQL ServerШардинг v
    • Резервирование Управление• Рост и уменьшение объѐма • ПО, Обновление, Высокая данных (покупка/продажа доступность серверов) ШардингМаршрутизация Управление секциями• Где находятся мои данные? • Разбиение и слияние • Распределение данных Track # – Session # 21
    • Варианты шардинга данных Диапазон – разбиение диапазона на секции Диапазоны могут иметь разный размер Хороший выбор для запросов по диапазону Может не выдержать большой нагрузки Хеширование – использование хэша в качестве ключа Отличное решение для распределения данных Хорошее решение для выборки по ключу Track # – Session # 22
    • Управление схемой Дизайн схемы должен исключать взаимодействие между базами данных Процесс обновление схемы должен быть устойчивым Track # – Session # 23
    • Распределѐнные запросы Задумайтесь можно ли обойтись без них Запускайте запросы к разным базам параллельно и агрегируйте результаты Используйте несколько соединений и многопоточность для увеличения производительности Track # – Session # 24
    • SQL Server and SQL Azure shard library Track # – Session # 25
    • SQL AzureШардинг v
    • SQL Azure Federations С точки зрения базы данных это объект, который позволяет масштабировать базу данных и распределять еѐ данные между отдельными базами данных. С точки зрения пользователя это набор метаданных о том как распределены данные между базами данных и удобная модель работы с этими данными Track # – Session # 27
    • Концепция Fеderations Federations SalesDB CustomerFederationeration CustomerFederationeration CustomerFederation Federation Root Federation Members Federation Root База данных в которой находится объект Federation Federation Federation – объект Root базы данных, который знает как распределены данные между шардами Federation Member (aka Шард): Отдельная база данных SQL Azure. Каждая такая база данных, хранит в себе часть общего набора данных. Track # – Session # 28
    • Концепция Fеderations Federations member: Range [1000, 2000)SalesDB AU AU AU CustomerFederationeration CustomerFederationeration PK=5 AU PK=25 AU PK=35 AU CustomerFederation PK=5 AU PK=1005 PK=25 AU PK=1025 PK=35 AU PK=1035 Federation Root Atomic Units Federation Distribution Key Ключ, используемый для распределения данных внутри федерации. Он определяет тип данных ключа (uniqueidentifier, int, bigint, varbinary), и способ распределения данных (range). Его значение определяет Federation Member, на котором будут находиться данные. Atomic Unit Все данные имеющие одинаковый Federation Distribution Key. Например это все строки федеративных таблиц, которые имеют один федеративный ключ. Эта коллекция данных гарантированно будет находиться на одном и том-же шарде (federation member). Track # – Session # 29
    • Концепция Fеderations Central Tables Federations SalesDB Federated Tables CustomerFederationeration CustomerFederationeration CustomerFederation Reference Tables User Database and Federation root Federation members Federated Tables Содержат кусочек распределѐнных данные. Federated tables создаются в federation members и содержат federation distribution key. Reference Tables Содержат данные необходимые для lookup запросов. Создаются в Federation Member. Данные таблиц реплицируются между всеми Federation Members. Central Table Таблицы, созданные в federation root базе данных. Используются в основном как набор метаданных. Track # – Session # 30
    • МаршрутизацияUSE FEDERATION CustomerFederation(customer_id = 5075) … SalesDB CustomerFederationeration CustomerFederationeration CustomerFederation Range Distribution [min,1000, 2000, 3000 ….. 5000, 10000, Max] Приложение всегда вначале соединяется с ROOT database USE FEDERATION – переключает в контекст конкретного federation member Данные с одинаковым значением federation key (atomic unit) всегда находятся в пределах одного federation member Track # – Session # 31
    • Маршрутизация – Member ConnectionUSE FEDERATION CustomerFederation(cid = 55)WITH RESET, FILTERING=OFFGO member: Range [100,200) Products (referece) Customer_id=55SalesDB CustomerFederation CustomerFederation Customers Orders (federated) (federated) Microsoft Confidential FILTERING=OFF Работаем с данными всего Federation member Неограниченный доступ к данным базы: Всѐ равно что соединиться по имени БД DDL, DML и доступ ко всем Atomic Units внутри Federation Member Хорошо для… Management Tasks: Обновление схемы данных Fan-out Querying – получение данных нескольких atomic units Track # – Session # 32
    • Маршрутизация – Filtering connection USE FEDERATION CustomerFederation(cid = 55) WITH RESET, FILTERING=ON GO member: Range [100,200) Products Customer_id=55 (referece)SalesDB CustomerFederation CustomerFederation Customers Orders (federated)Customer_id=55 (federated) Microsoft Confidential FILTERING=ON Работаем с данными одного Atomic Unit Полностью доступны данные Reference Tables Запрещены любые изменения глобального состояния Federation Member Хорошо для… Безопасной модели разработки Предотвращения утечки данных Track # – Session # 33
    • Разделение шарда ALTER FEDERATION CustomerFederation SPLIT AT (CustomerId=7500) SalesDB Orders_federation CustomerFederationeration CustomerFederation Range Distribution [min,1000, 2000, 3000 ….. 5000, 10000, Max] Разделение шарда делается при помощи T-SQL команды SPLIT. Разделение шарда происходит без остановки работы приложения. Данные шарда недоступны в течении очень короткого промежутка времени. Track # – Session # 34
    • Сценарий применения Приложение, обрабатывающее заказы множества покупателей и обслуживающее большую базу продуктов. Database Name = SalesDB Federations = CustomerFederation (CustomerId int RANGE) Federation distribution key = CustomerId Federated Tables = Customers, Orders Reference Tables = Products Track # – Session # 35
    • SQL Azure FederationsДемонстрация v
    • БД размером 75 Тб Track # – Session # 37
    • SQL Azure Federations vNext Управление схемой данных Поддержка управления схемами членов федерации. Больший контроль процесса обновления схемы Эмуляция Federations Локальная эмуляция Federations, для того, чтобы разрабатывать приложения под Federations, не используя SQL Azure Автоматический шардинг Автоматическое разбиение базы данных в зависимости от определѐнного критерия (время отклика, размер базы данных и т.п.) Распределѐнные запросы Получение данных с нескольких Federation Members одним запросом Track # – Session # 38
    • Масштабирование Способность справляться с увеличением нагрузки без влияния на производительность Высокая доступность и отказоустойчивость Управляемость и сопровождаемость Track # – Session # 39
    • Масштабирование Масштабирование в SQL Azure – Шардинг http://reznik.uneta.com.ua/post/2011/05/16/sql-azure-federations-sharding-in-sql-azure.aspx Знакомимся с SQL Azure Federations http://reznik.uneta.com.ua/post/2011/05/25/introducing-to-sql-azure-federations.aspx SQL Azure - Your Data in the Cloud (Cihan Biyikoglu) http://blogs.msdn.com/b/cbiyikoglu/ Peer-to-Peer Replication http://www.sql-server-performance.com/2008/peertopeer-replication-in-sql-server-2008/ How to setup Availability Groups http://www.brentozar.com/archive/2011/07/how-set-up-sql-server-denali-availability-groups/ Multi-tenant SQL Azure Federations Sample http://shard.codeplex.com/ SQL Azure Federation Data Migration Wizard http://sqlazurefedmw.codeplex.com/ SQL Server and SQL Azure Shard Library http://enzosqlshard.codeplex.com/ Track # – Session # 40
    • Спасибо! v