{"id":12707,"date":"2013-11-20T07:07:00","date_gmt":"2013-11-20T07:07:00","guid":{"rendered":"https:\/\/viewmyprojects.com\/winwirewp\/?p=12707"},"modified":"2025-07-07T08:51:03","modified_gmt":"2025-07-07T08:51:03","slug":"large-scale-document-repositories-with-high-availability-in-sharepoint","status":"publish","type":"post","link":"https:\/\/viewmyprojects.com\/winwirewp\/blog\/large-scale-document-repositories-with-high-availability-in-sharepoint\/","title":{"rendered":"Large Scale Document Repositories with High Availability in SharePoint"},"content":{"rendered":"\n<p>Here\u2019s a key thing to remember when you\u2019re designing the SharePoint applications (Extranet\/Intranet) end-user perceived performance <em>matters<\/em>, and SharePoint\u2019s performance has come a long way, particularly with the new 2013 release. The new release boasts:<\/p>\n\n\n\n<p class=\"blog-detail-list\">\u2022 A content-first focus with active download management<br>\u2022 Smooth page transitions with animations and a better download strategy<br>\u2022 Richer and more interactive browser experiences<\/p>\n\n\n\n<p>SharePoint deployments have also shown:<\/p>\n\n\n\n<p class=\"blog-detail-list\">\u2022 50% faster server response<br>\u2022 4 X faster profile sync<br>\u2022 10 X faster w\/ Active Directory import<br>\u2022 40% more efficient use of bandwidth<br>\u2022 80% less file I\/O related SQL IOPS<br>\u2022 More scalable SharePoint farms<\/p>\n\n\n\n<p>SharePoint farms also scale more than ever, but with logical system limitations:<\/p>\n\n\n\n<p class=\"blog-detail-list\">\u2022 750K sites in a farm (500K My Sites + 250 K sites.) from 250K<br>\u2022 10K sites in a content DB (7.5 K MySites + 2.5 sites) from 5,000<br>\u2022 500 content DBs in a farm from 300<\/p>\n\n\n\n<p>The system also features designing for better SLA, with scale out and scale up independently with respective latency and throughput and routing &amp; caching, front-end, batch processing and database layers.<\/p>\n\n\n\n<p>Typical Topology:<\/p>\n\n\n\n<p class=\"blog-detail-list\">\u2022 &lt;100 users: 1 server: Very light and simple workload<br>\u2022 &lt;1000 users: 1-n front end and data base servers (simple workload, small content, fault tolerance)<br>\u2022 &lt;10 K users: 1-n front end, batch, query, crawl and data base servers (more workloads, more resources, &lt;10M items)<br>\u2022 More and more users: All the above + 1-n Routing &amp; Caching servers (more workloads, large content, multiple index partitions, Advanced Routing)<\/p>\n\n\n\n<p>Once you get familiar with the SharePoint platform improvements and limitations in the new 2013 version, you can plan a large-scale document repository with high availability. Here are the steps to follow:<\/p>\n\n\n\n<p><strong>1.<\/strong><strong>SharePoint 2013 Scale Divisional Benchmark:<\/strong><\/p>\n\n\n\n<p>If you\u2019re very new to designing SharePoint farms, following the divisional benchmark will help you in your server farm architecture:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"734\" height=\"353\" src=\"https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/Divisional-Benchmark.webp\" alt=\"\" class=\"wp-image-18042\" srcset=\"https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/Divisional-Benchmark.webp 734w, https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/Divisional-Benchmark-300x144.webp 300w\" sizes=\"auto, (max-width: 734px) 100vw, 734px\" \/><\/figure>\n\n\n\n<p><strong>2.<\/strong><strong>End User Security Recommendations:<\/strong><\/p>\n\n\n\n<p>Once you design a SharePoint farm (as referenced in the above benchmark), you need to look at how to plan for end-user security for the document repository. It can quickly get out of control if you don\u2019t define a process or a method for how you are going to allow pre-defined users permissions for all of the documents (including item-level permissions).<\/p>\n\n\n\n<p><strong>End User Security Recommendations \u2013 Inheritance:<\/strong>Wherever possible, use the inheritance. For example, roles assignments are inherited by child objects \u2013 Subsite, list, library, folder, item or document.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"790\" height=\"421\" src=\"https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/Inheritence.webp\" alt=\"\" class=\"wp-image-18044\" srcset=\"https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/Inheritence.webp 790w, https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/Inheritence-300x160.webp 300w, https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/Inheritence-768x409.webp 768w\" sizes=\"auto, (max-width: 790px) 100vw, 790px\" \/><\/figure>\n\n\n\n<p><strong>End User Security Recommendations \u2013 Fine-grained Permissions:<\/strong>For requirements where you will not be able to use the inheritance, you can break inheritance and assign explicit permissions with dynamic security changing code redesign. Our recommendation? Modify scope architecture so that scope membership does not cause ACL recalculation at the parent document library and web. One note this is only possible with custom code.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"790\" height=\"423\" src=\"https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/Fine-grained-permission.webp\" alt=\"\" class=\"wp-image-18045\" srcset=\"https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/Fine-grained-permission.webp 790w, https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/Fine-grained-permission-300x161.webp 300w, https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/Fine-grained-permission-768x411.webp 768w\" sizes=\"auto, (max-width: 790px) 100vw, 790px\" \/><\/figure>\n\n\n\n<p><strong>3.<\/strong><strong>Production Farm Disaster Recovery Architecture:<\/strong><\/p>\n\n\n\n<p>You have to plan for the worst. Here are your options for disaster recovery:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"690\" height=\"521\" src=\"https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/Recovery-Architecture.webp\" alt=\"\" class=\"wp-image-18046\" srcset=\"https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/Recovery-Architecture.webp 690w, https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/Recovery-Architecture-300x227.webp 300w\" sizes=\"auto, (max-width: 690px) 100vw, 690px\" \/><\/figure>\n\n\n\n<p>You have to plan for the worst. Here are your options for disaster recovery:<\/p>\n\n\n\n<p><strong>Hot Standby<\/strong>: A second data center that can provide availability within seconds or minutes.<\/p>\n\n\n\n<p class=\"blog-detail-list\">\u2022 Pros: Relatively fast to recover<br>\u2022 Cons: Can be quite expensive to configure and maintain<\/p>\n\n\n\n<p><strong>Warm Standby<\/strong>: A second data center that can provide availability within minutes or hours<\/p>\n\n\n\n<p class=\"blog-detail-list\">\u2022 Pros: Relatively inexpensive to recover, since a virtual server farm can require little configuration upon recovery<br>\u2022 Cons: Can be very expensive and time-consuming to maintain<\/p>\n\n\n\n<p><strong>Cold Standby<\/strong>: A second data center that can provide availability within hours or days<\/p>\n\n\n\n<p class=\"blog-detail-list\">\u2022 Pros: Often the cheapest option to maintain, operationally.<br>\u2022 Cons: A very slow option to recover. It can be expensive, too; it requires that virtual servers be configured correctly after a disaster has occurred. The slowest option to recover<\/p>\n\n\n\n<p><strong>4. High availability (HA) with RBS:<\/strong><\/p>\n\n\n\n<p>The SharePoint server stores all its data in the database. As increasing amounts of content are stored, the size of the database can grow very rapidly; this growth is caused by the new content uploaded into the server, as well as revisions to existing content when SharePoint versioning is enabled. These processes can result in exponential growth in the size of the content. As the database grows, it becomes increasingly difficult to manage the system and ensure the best performance.<\/p>\n\n\n\n<p>If you use RBS, your application can store large amounts of unstructured data like rich-media videos or audio files so you can leverage the best of the rational capabilities of the SQL server and the scalability of a Windows file system BLOB store. Additionally, the RBS feature offers several other advantages related to storage costs, maintainability, performance and flexibility.<\/p>\n\n\n\n<p>Using RBS, your application can store large amounts of unstructured data such as rich-media videos or audio files, leveraging the best of both the relational capabilities of SQL Server and the scalability of a Windows file system BLOB store.<\/p>\n\n\n\n<p>In addition to this main advantage, the RBS feature offers numerous other advantages related to storage costs, maintainability, performance, and flexibility:<\/p>\n\n\n\n<p class=\"blog-detail-list\">\u2022 Smaller database sizes, resulting in optimal use of expensive database server resources like processors, memory and disks<br>\u2022 Smaller database backup files<br>\u2022 Faster backup and restore times<br>\u2022 Faster database maintenance operations like defragmentation and index rebuild<br>\u2022 Better overall performance, especially for storing and accessing large objects.<\/p>\n\n\n\n<p><em>Take a look at the sample test results of RBS on SQL Server Database Size:<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"585\" height=\"459\" src=\"https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/RBS-Test-Results.webp\" alt=\"\" class=\"wp-image-18048\" srcset=\"https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/RBS-Test-Results.webp 585w, https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/RBS-Test-Results-300x235.webp 300w\" sizes=\"auto, (max-width: 585px) 100vw, 585px\" \/><\/figure>\n\n\n\n<p><strong>In Summary:<\/strong>These key architectural points need to be taken into account when you design a farm with large document repositories with fine-grained (item-level) permissions:<\/p>\n\n\n\n<p id=\"blog-detail-list\">\u2022 How do you scale out and up independently to support SLA\u2019s with needed latency and throughput?<br>\u2022 What are the SharePoint platform limitations?<br>\u2022 Which benchmark result do you refer to?<br>\u2022 How do you plan for end user security? Through self-service or controlled fashion?<br>\u2022 How do you plan database storage? Remote BLOB storage?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here\u2019s a key thing to remember when you\u2019re designing the SharePoint applications (Extranet\/Intranet) end-user perceived performance matters, and SharePoint\u2019s performance has come a long way, particularly with the new 2013 release. The new release boasts: \u2022 A content-first focus with active download management\u2022 Smooth page transitions with animations and a better download strategy\u2022 Richer and&hellip; <a class=\"more-link\" href=\"https:\/\/viewmyprojects.com\/winwirewp\/blog\/large-scale-document-repositories-with-high-availability-in-sharepoint\/\">Continue reading <span class=\"screen-reader-text\">Large Scale Document Repositories with High Availability in SharePoint<\/span><\/a><\/p>\n","protected":false},"author":110,"featured_media":16766,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_eb_attr":"","_uag_custom_page_level_css":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-12707","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","entry"],"acf":[],"featured_image_src":"https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/Large-Scale-Document-Repositories-with-High-Availability-in-SharePoint-graphic.webp","author_info":{"display_name":"Chandra G","author_link":"https:\/\/viewmyprojects.com\/winwirewp\/author\/chandra-g\/"},"views":3790,"uagb_featured_image_src":{"full":["https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/Large-Scale-Document-Repositories-with-High-Availability-in-SharePoint-graphic.webp",800,440,false],"thumbnail":["https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/Large-Scale-Document-Repositories-with-High-Availability-in-SharePoint-graphic-150x150.webp",150,150,true],"medium":["https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/Large-Scale-Document-Repositories-with-High-Availability-in-SharePoint-graphic-300x165.webp",300,165,true],"medium_large":["https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/Large-Scale-Document-Repositories-with-High-Availability-in-SharePoint-graphic-768x422.webp",750,412,true],"large":["https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/Large-Scale-Document-Repositories-with-High-Availability-in-SharePoint-graphic.webp",750,413,false],"1536x1536":["https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/Large-Scale-Document-Repositories-with-High-Availability-in-SharePoint-graphic.webp",800,440,false],"2048x2048":["https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/Large-Scale-Document-Repositories-with-High-Availability-in-SharePoint-graphic.webp",800,440,false],"post-thumbnail":["https:\/\/viewmyprojects.com\/winwirewp\/wp-content\/uploads\/2023\/11\/Large-Scale-Document-Repositories-with-High-Availability-in-SharePoint-graphic.webp",800,440,false]},"uagb_author_info":{"display_name":"Chandra G","author_link":"https:\/\/viewmyprojects.com\/winwirewp\/author\/chandra-g\/"},"uagb_comment_info":0,"uagb_excerpt":"Here\u2019s a key thing to remember when you\u2019re designing the SharePoint applications (Extranet\/Intranet) end-user perceived performance matters, and SharePoint\u2019s performance has come a long way, particularly with the new 2013 release. The new release boasts: \u2022 A content-first focus with active download management\u2022 Smooth page transitions with animations and a better download strategy\u2022 Richer and&hellip;&hellip;","_links":{"self":[{"href":"https:\/\/viewmyprojects.com\/winwirewp\/wp-json\/wp\/v2\/posts\/12707","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/viewmyprojects.com\/winwirewp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/viewmyprojects.com\/winwirewp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/viewmyprojects.com\/winwirewp\/wp-json\/wp\/v2\/users\/110"}],"replies":[{"embeddable":true,"href":"https:\/\/viewmyprojects.com\/winwirewp\/wp-json\/wp\/v2\/comments?post=12707"}],"version-history":[{"count":4,"href":"https:\/\/viewmyprojects.com\/winwirewp\/wp-json\/wp\/v2\/posts\/12707\/revisions"}],"predecessor-version":[{"id":23639,"href":"https:\/\/viewmyprojects.com\/winwirewp\/wp-json\/wp\/v2\/posts\/12707\/revisions\/23639"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/viewmyprojects.com\/winwirewp\/wp-json\/wp\/v2\/media\/16766"}],"wp:attachment":[{"href":"https:\/\/viewmyprojects.com\/winwirewp\/wp-json\/wp\/v2\/media?parent=12707"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/viewmyprojects.com\/winwirewp\/wp-json\/wp\/v2\/categories?post=12707"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/viewmyprojects.com\/winwirewp\/wp-json\/wp\/v2\/tags?post=12707"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}