Масштабируемость приложения стала критическим элементом дизайна после перехода от модели индивидуальных программ к серверной модели работы приложений. Масштабируемые приложения способны справиться с более активным использованием и возросшим объёмом данных. Масштабируемые приложения обладают высокой доступностью и отказоустойчивостью. Масштабируемые приложения управляемы и сопровождаемы. Всё это справедливо по отношению ко всем слоям приложения, в том числе и к базе данных. Масштабирование базы данных - процесс отнюдь не тривиальный и довольно сложный. SQL Azure, со своей концепцией моментального создания и распределения баз данных внутри ЦОД, является хорошей альтернативой одиночному серверу, а SQL Azure Federations выводят масштабирование в SQL Azure на совершенно новый уровень.
SQL Rally 2012 - масштабируемость SQL Server и SQL AzureUNETA
Презентация к докладу Резника Дениса (MVP (SQL Server), руководитель департамента веб-разработки в DCT).
В докладе будут рассмотрены основные принципы и техники масштабирования баз данных и возможности SQL Server и SQL Azure, которые упрощают этот процесс.
Масштабирование в SQL Azure - SQL Azure FederationsДенис Резник
Масштабируемость приложения стала критическим элементом дизайна после перехода от модели индивидуальных программ к серверной модели работы приложений. Масштабируемые приложения способны справиться с более активным использованием и возросшим объёмом данных. Масштабируемые приложения обладают высокой доступностью и отказоустойчивостью. Масштабируемые приложения управляемы и сопровождаемы. Всё это справедливо по отношению ко всем слоям приложения, в том числе и к базе данных. Масштабирование базы данных - процесс отнюдь не тривиальный и довольно сложный. SQL Azure, со своей концепцией моментального создания и распределения баз данных внутри ЦОД, является хорошей альтернативой одиночному серверу, а SQL Azure Federations выводят масштабирование в SQL Azure на совершенно новый уровень.
MS DevDay - SQLServer 2014 for DevelopersДенис Резник
Presentation about hidden treasures inside SQL Server 2014. It was 30 min presentation about 4 features: Cardinality Estimator, Query and Plan Fingerprints, Delayed Durability and TempDB performance.
SQL Rally 2012 - масштабируемость SQL Server и SQL AzureUNETA
Презентация к докладу Резника Дениса (MVP (SQL Server), руководитель департамента веб-разработки в DCT).
В докладе будут рассмотрены основные принципы и техники масштабирования баз данных и возможности SQL Server и SQL Azure, которые упрощают этот процесс.
Масштабирование в SQL Azure - SQL Azure FederationsДенис Резник
Масштабируемость приложения стала критическим элементом дизайна после перехода от модели индивидуальных программ к серверной модели работы приложений. Масштабируемые приложения способны справиться с более активным использованием и возросшим объёмом данных. Масштабируемые приложения обладают высокой доступностью и отказоустойчивостью. Масштабируемые приложения управляемы и сопровождаемы. Всё это справедливо по отношению ко всем слоям приложения, в том числе и к базе данных. Масштабирование базы данных - процесс отнюдь не тривиальный и довольно сложный. SQL Azure, со своей концепцией моментального создания и распределения баз данных внутри ЦОД, является хорошей альтернативой одиночному серверу, а SQL Azure Federations выводят масштабирование в SQL Azure на совершенно новый уровень.
MS DevDay - SQLServer 2014 for DevelopersДенис Резник
Presentation about hidden treasures inside SQL Server 2014. It was 30 min presentation about 4 features: Cardinality Estimator, Query and Plan Fingerprints, Delayed Durability and TempDB performance.
Если раньше при старте нового проекта нам нужно было выбрать одну из доступных на тот момент SQL баз данных, то за последние 5 лет ситуация кардинально изменилась. Теперь выбор стал гораздо сложнее. SQL или NoSQL? Сloud или on-premises? Если SQL/NoSQL - то какая именно? А может использовать и то и другое?
В данном докладе мы постараемся представить общий обзор доступных сегодня решений для хранения данных и определиться с критериями выбора.
The document discusses database locks and transaction isolation levels. It begins by defining shared, exclusive, and update locks. It then explains different isolation levels including read uncommitted, read committed, repeatable read, and serializable. Read uncommitted allows dirty reads while read committed does not. Repeatable read prevents non-repeatable reads and serializable prevents phantom records. The document also covers snapshot isolation and how to avoid deadlocks through proper database design and transaction ordering.
In-Memory features is the most perspective trend in the area of high performance. Columnstore Indexes is one of such features, and even with their restrictions, they can accelerate your queries at times! How to get more from this feature? In which situations should we use them? Which internal mechanisms help to achive that? You can get answers on these questions on this session.
Talk is called Deep Dive, so be prepared to hold your breath. In this talk we will take a look at the mechanisms of the SQL Server and literally dive into the bowels of SQL Server, going through all the stages of the request processing.
SQL Server 2012 introduced columnstore indexes which provide significant performance improvements for data warehouse and analytics queries against large datasets. Columnstore indexes store data by column rather than by row, allowing queries to access only the relevant columns needed. This results in lower I/O and higher data compression compared to row storage. Columnstore indexes also use a new batch processing execution mode which can further improve query performance by processing many rows at once in memory rather than row-by-row. Columnstore indexes require the table to be read-only but provide an easy way to boost query performance for analytics workloads by 10-100x without needing separate data marts or cubes.
TechEd 2012 - Сценарии хранения и обработки данных в windows azureДенис Резник
The document provides an agenda for a Windows Azure keynote presentation. It is divided into several sections including an introduction to Windows Azure, creating applications on Windows Azure, solving problems with Windows Azure, Windows Azure internals, storage and data processing scenarios, authentication using Azure ACS, Service Bus for connecting cloud services to on-premises systems, and several lab sessions on topics like Windows Azure Virtual Machines, diagnosing issues, and deploying Active Directory and SharePoint to Windows Azure. Slide details include storage metrics showing over 4 trillion objects stored and average/peak request rates. There are also client logos and case studies presented.
MS Swit 2012 - Windows 8 Application LifecycleДенис Резник
As your customers move your app between the foreground and background, Windows manages your app’s usage of critical system resources. Come learn the fundamentals of Process Lifetime Management and how to structure your app to suspend and resume quickly, save app state properly, and behave consistently. We will also highlight ways to keep your app fresh using push notifications and tile interactivity. Understanding these critical concepts will help you deliver a continuous experience that customers expect.
The new realise of one Microsoft flagman product is approaching – SQL Server. New realizes of SQL Server are not so often, that is why every new realise causes a splash of society activities and wide discussions. We already know the content of the new realise and the product is going through the last stages of testing before the launch. Let’s look, what new things wull bring us new SQL Server.
This document discusses federations in SQL Azure. Federations allow scaling out data by partitioning it across multiple databases. The document shows an example of a "CustData" federation with members for customer ID ranges that each contain sample data partitions. It also shows an "Orders_Fed" federation partitioned by customer ID that could include related order data spread across multiple databases. In the future, SQL Azure will support federations natively as a way to scale databases beyond a single server.
Если раньше при старте нового проекта нам нужно было выбрать одну из доступных на тот момент SQL баз данных, то за последние 5 лет ситуация кардинально изменилась. Теперь выбор стал гораздо сложнее. SQL или NoSQL? Сloud или on-premises? Если SQL/NoSQL - то какая именно? А может использовать и то и другое?
В данном докладе мы постараемся представить общий обзор доступных сегодня решений для хранения данных и определиться с критериями выбора.
The document discusses database locks and transaction isolation levels. It begins by defining shared, exclusive, and update locks. It then explains different isolation levels including read uncommitted, read committed, repeatable read, and serializable. Read uncommitted allows dirty reads while read committed does not. Repeatable read prevents non-repeatable reads and serializable prevents phantom records. The document also covers snapshot isolation and how to avoid deadlocks through proper database design and transaction ordering.
In-Memory features is the most perspective trend in the area of high performance. Columnstore Indexes is one of such features, and even with their restrictions, they can accelerate your queries at times! How to get more from this feature? In which situations should we use them? Which internal mechanisms help to achive that? You can get answers on these questions on this session.
Talk is called Deep Dive, so be prepared to hold your breath. In this talk we will take a look at the mechanisms of the SQL Server and literally dive into the bowels of SQL Server, going through all the stages of the request processing.
SQL Server 2012 introduced columnstore indexes which provide significant performance improvements for data warehouse and analytics queries against large datasets. Columnstore indexes store data by column rather than by row, allowing queries to access only the relevant columns needed. This results in lower I/O and higher data compression compared to row storage. Columnstore indexes also use a new batch processing execution mode which can further improve query performance by processing many rows at once in memory rather than row-by-row. Columnstore indexes require the table to be read-only but provide an easy way to boost query performance for analytics workloads by 10-100x without needing separate data marts or cubes.
TechEd 2012 - Сценарии хранения и обработки данных в windows azureДенис Резник
The document provides an agenda for a Windows Azure keynote presentation. It is divided into several sections including an introduction to Windows Azure, creating applications on Windows Azure, solving problems with Windows Azure, Windows Azure internals, storage and data processing scenarios, authentication using Azure ACS, Service Bus for connecting cloud services to on-premises systems, and several lab sessions on topics like Windows Azure Virtual Machines, diagnosing issues, and deploying Active Directory and SharePoint to Windows Azure. Slide details include storage metrics showing over 4 trillion objects stored and average/peak request rates. There are also client logos and case studies presented.
MS Swit 2012 - Windows 8 Application LifecycleДенис Резник
As your customers move your app between the foreground and background, Windows manages your app’s usage of critical system resources. Come learn the fundamentals of Process Lifetime Management and how to structure your app to suspend and resume quickly, save app state properly, and behave consistently. We will also highlight ways to keep your app fresh using push notifications and tile interactivity. Understanding these critical concepts will help you deliver a continuous experience that customers expect.
The new realise of one Microsoft flagman product is approaching – SQL Server. New realizes of SQL Server are not so often, that is why every new realise causes a splash of society activities and wide discussions. We already know the content of the new realise and the product is going through the last stages of testing before the launch. Let’s look, what new things wull bring us new SQL Server.
This document discusses federations in SQL Azure. Federations allow scaling out data by partitioning it across multiple databases. The document shows an example of a "CustData" federation with members for customer ID ranges that each contain sample data partitions. It also shows an "Orders_Fed" federation partitioned by customer ID that could include related order data spread across multiple databases. In the future, SQL Azure will support federations natively as a way to scale databases beyond a single server.
9. Windows Azure Roles Client Applications
Service Bus Castellan.Azure
• Box Office sales
• Ticket Printing
• System Administration
• Venue/Event
http:// TicketDirect .* Dynamic Worker Distributed Partitioner WCF Management
(tasks uploaded Cache Worker Worker • Partitioning
as blobs)
Windows Azure Storage On Premises
Blobs to -- -- Tables to
-- Queues for
SQL Server
store web
and worker --- -- record &
--- server
communication
between clients
role partition and roles
resources
-- information
Castellan Venue
SQL Azure
Castellan
Castellan Castellan
Castellan Castellan
Castellan
Castellan Venue DB 1
Venue
Venue Venue DB 2
Venue
Venue Venue DB N
Venue
Venue ...
DB’s
Partition(s) DB’s
Partition(s) DB’s
Partition(s) Castellan.old (VB6)
One application DB, many venue DB’s – each partitioned in to many parts (40+)
12. Резервирование Управление
• Рост и уменьшение объѐма • ПО, Обновление, Высокая
данных (покупка/продажа доступность
серверов)
Шардинг
Маршрутизация Управление секциями
• Где находятся мои данные? • Разбиение и слияние
• Распределение данных
13.
14. Federations
SalesDB
CustomerFederationeration
CustomerFederationeration
CustomerFederation
Federation Root
Federation Members
15. Federations member: Range [1000, 2000)
SalesDB AU AU AU
PK=5 PK=25 PK=35
CustomerFederationeration
CustomerFederationeration
AU
PK=5
AU
PK=25
AU
PK=35
CustomerFederation AU
PK=1005
AU
PK=1025
AU
PK=1035
Federation Root
Federation Members Atomic Units
16. Central Tables
Federations
SalesDB Federated Tables
CustomerFederationeration
CustomerFederationeration
CustomerFederation
Reference Tables
User Database and
Federation root Federation members
17. USE FEDERATION CustomerFederation(customer_id = 5075) …
SalesDB
CustomerFederationeration
CustomerFederationeration
CustomerFederation
Range Distribution [min,1000, 2000, 3000 ….. 5000, 10000, Max]
18. USE FEDERATION CustomerFederation(cid = 55)
WITH RESET, FILTERING=OFF
GO
FILTERING=OFF
Работаем с данными всего Federation member
Неограниченный доступ к данным базы: Всѐ равно что соединиться по имени БД
DDL, DML и доступ ко всем Atomic Units внутри Federation Member
Хорошо для…
Management Tasks: Обновление схемы данных
Fan-out Querying – получение данных нескольких atomic units
member: Range [100,200)
Products
(referece) Customer_id=55
SalesDB
CustomerFederation
CustomerFederation Customers Orders
(federated) (federated)
Microsoft Confidential Microsoft Confidential
19. USE FEDERATION CustomerFederation(cid = 55)
WITH RESET, FILTERING=ON
GO
FILTERING=ON
Работаем с данными одного Atomic Unit
Полностью доступны данные Reference Tables
Запрещены любые изменения глобального состояния Federation Member
Хорошо для…
Безопасной модели разработки
Предотвращения утечки данных
member: Range [100,200)
Products
(referece) Customer_id=55
SalesDB
CustomerFederation
CustomerFederation Customers Orders
(federated) Customer_id=55 (federated)
Microsoft Confidential
20. ALTER FEDERATION CustomerFederation SPLIT AT (tenant_id=7500)
SalesDB
Orders_federation
CustomerFederationeration
CustomerFederation
Range Distribution [min,1000, 2000, 3000 ….. 5000, 10000, Max]
21. App
member: Range [100,200)
PostalCode
SalesDB (reference)
CustomerFederationeration
CustomerFederationeration
CustomerFederation Customer CustomerAddress
(federated) (federated)
Member: Range [100,150) Member: Range [150,200)
22.
23. -- День #2 – Разворачиваем систему
CREATE DATABASE SalesDB
GO
CREATE FEDERATION CustomerFederation(CustomerId int RANGE)
GO
member: Range [MIN, NULL)
SalesDB
CustomerFederation
24. CREATE TABLE сProducts( member
-- Соедняемся federation
USE FEDERATION CustomerFederationeration(CustomerId = 0) WITH FILTERING = OFF, RESET
ProductId int NOT NULL,
GO
SupplierId int NOT NULL,
CREATE TABLE Customers(
CustomerId int nvarchar(50) NOT NULL,
ProductName NOT NULL,
…Price decimal(12,2) NOT NULL,
PRIMARY KEY (CustomerId) ) )
PRIMARY KEY(ProductId)
FEDERATED ON (CustomerId = CustomerId)
GO
GO
CREATE TABLE Orders
(
CustomerId int NOT NULL,
OrderId uniqueidentifier NOT NULL,
…
PRIMARY KEY (OrderId, CustomerId)
)
FEDERATED ON (CustomerId = CustomerId)
GO
member: Range [MIN, NULL)
Products
(reference)
SalesDB
CustomerFederation
CustomerFederation Customer Orders
(federated) (federated)
25. -- День #2 Трафик растёт!
ALTER FEDERATION CustomerFederation SPLIT AT(CustomerId = 1000)
GO
-- День #3 ПЯТНИЦЦО! Трафик взлетает до небес! (future)
ALTER FEDERATION CustomerFederation SPLIT AT(CustomerId = 100,200,300,…900)
GO
-- День #4 Наплыв трафика спадает! (future)
ALTER FEDERATION CustomerFederation MERGE AT(CustomerId = 100,200,300,…900)
GO
SalesDB
CustomerFederationeration
CustomerFederationeration
CustomerFederation
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36. Управление схемой данных
Поддержка управления схемами членов федерации. Больший контроль
процесса обновления схемы
Эмуляция Federations
Локальная эмуляция Federations, для того, чтобы разрабатывать
приложения под Federations, не используя SQL Azure
Автоматический шардинг
Автоматическое разбиение базы данных в зависимости от
определѐнного критерия (время отклика, размер базы данных и т.п.)
Распределѐнные запросы
Получение данных с нескольких Federation Members одним запросом