{"id":171093,"date":"2013-02-14T19:54:15","date_gmt":"2013-02-14T19:54:15","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/project\/sqlvm-performance-isolation-in-multi-tenant-relational-database-as-a-service\/"},"modified":"2017-06-19T10:16:54","modified_gmt":"2017-06-19T17:16:54","slug":"sqlvm-performance-isolation-in-multi-tenant-relational-database-as-a-service","status":"publish","type":"msr-project","link":"https:\/\/www.microsoft.com\/en-us\/research\/project\/sqlvm-performance-isolation-in-multi-tenant-relational-database-as-a-service\/","title":{"rendered":"SQLVM: Performance Isolation in Multi-Tenant Relational Database-as-a-Service"},"content":{"rendered":"<p>Multi-tenancy and resource sharing are essential to make a Database-as-a-Service (DaaS). However, resource sharing usually results in the performance of one tenant\u2019s workload to be affected by other co-located tenants. In the SQLVM project, our approach to performance isolation in a DaaS is to isolate the key resources, such as CPU, I\/O and memory, needed by the tenants\u2019 workload. Mechanisms designed in the SQLVM project are now in production in Azure SQL Database Service Tiers<\/p>\n<p>In today\u2019s relational Database-as-a-Service providers such as Microsoft Azure SQL Database, resources of a single database server are shared among workloads from multiple tenants. This multi-tenancy enables cost reduction for the cloud service provider which it can pass on as savings to the tenants. However, resource sharing can adversely affect a tenant\u2019s performance due to resource demands of other tenants\u2019 workloads. Service providers today do not provide any assurances to a tenant in terms of isolating its performance from other co-located tenants.<\/p>\n<p>SQLVM is a mechanism for performance isolation via a promise of reservation of key database server resources, such as CPU, I\/O, and memory for each tenant. One key challenge is supporting this abstraction within the database server process without statically allocating resources to tenants while scaling to large numbers of tenants. Another challenge is to devise low-overhead metering mechanisms to objectively establish accountability if a resource reservation is not met. SQLVM can be viewed as a building block upon which higher-level performance assurances (e.g., at the workload level) can be designed.<\/p>\n<h2>Business Impact<\/h2>\n<p><em>Technology developed in the SQLVM project\u00a0formed the basis of CPU and I\/O performance-isolation capabilities in multi-tenant <\/em><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" href=\"http:\/\/azure.microsoft.com\/en-us\/services\/sql-database\/\" target=\"_blank\"><em>Microsoft Azure SQL Database<\/em><span class=\"sr-only\"> (opens in new tab)<\/span><\/a><em>. The new <\/em><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/azure\/dn741336.aspx\"><em>Service Tiers and Performance Levels<\/em><span class=\"sr-only\"> (opens in new tab)<\/span><\/a><em>, made generally available in September 2014, relies on these capabilities to enforce improved performance levels. <\/em><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/bb510411.aspx#RG\"><em>New I\/O Resource Governor functionality<\/em><span class=\"sr-only\"> (opens in new tab)<\/span><\/a><em> based on this technology has shipped with SQL Server 2014.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Multi-tenancy and resource sharing are essential to make a Database-as-a-Service (DaaS). However, resource sharing usually results in the performance of one tenant\u2019s workload to be affected by other co-located tenants. In the SQLVM project, our approach to performance isolation in a DaaS is to isolate the key resources, such as CPU, I\/O and memory, needed [&hellip;]<\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"msr-url-field":"","msr-podcast-episode":"","msrModifiedDate":"","msrModifiedDateEnabled":false,"ep_exclude_from_search":false,"_classifai_error":"","footnotes":""},"research-area":[13563,13555],"msr-locale":[268875],"msr-impact-theme":[],"msr-pillar":[],"class_list":["post-171093","msr-project","type-msr-project","status-publish","hentry","msr-research-area-data-platform-analytics","msr-research-area-search-information-retrieval","msr-locale-en_us","msr-archive-status-active"],"msr_project_start":"2013-02-14","related-publications":[164318,164319,165282,215038,238274],"related-downloads":[],"related-videos":[],"related-groups":[],"related-events":[],"related-opportunities":[],"related-posts":[],"related-articles":[],"tab-content":[],"slides":[],"related-researchers":[{"type":"user_nicename","value":"chrisko","display_name":"Arnd Christian K\u00f6nig","author_link":"<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/chrisko\/\" aria-label=\"Visit the profile page for Arnd Christian K\u00f6nig\">Arnd Christian K\u00f6nig<\/a>","is_active":false,"user_id":31427,"last_first":"K\u00f6nig, Arnd Christian","people_section":0,"alias":"chrisko"},{"type":"user_nicename","value":"manojsy","display_name":"Manoj Syamala","author_link":"<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/manojsy\/\" aria-label=\"Visit the profile page for Manoj Syamala\">Manoj Syamala<\/a>","is_active":false,"user_id":32792,"last_first":"Syamala, Manoj","people_section":0,"alias":"manojsy"},{"type":"user_nicename","value":"surajitc","display_name":"Surajit Chaudhuri","author_link":"<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/surajitc\/\" aria-label=\"Visit the profile page for Surajit Chaudhuri\">Surajit Chaudhuri<\/a>","is_active":false,"user_id":33764,"last_first":"Chaudhuri, Surajit","people_section":0,"alias":"surajitc"},{"type":"user_nicename","value":"viveknar","display_name":"Vivek Narasayya","author_link":"<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/viveknar\/\" aria-label=\"Visit the profile page for Vivek Narasayya\">Vivek Narasayya<\/a>","is_active":false,"user_id":34602,"last_first":"Narasayya, Vivek","people_section":0,"alias":"viveknar"}],"msr_research_lab":[199565],"msr_impact_theme":[],"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-project\/171093","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-project"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/types\/msr-project"}],"version-history":[{"count":2,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-project\/171093\/revisions"}],"predecessor-version":[{"id":391487,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-project\/171093\/revisions\/391487"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media?parent=171093"}],"wp:term":[{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=171093"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=171093"},{"taxonomy":"msr-impact-theme","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-impact-theme?post=171093"},{"taxonomy":"msr-pillar","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-pillar?post=171093"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}