SharePoint 2013: Changes and Enhancements from SharePoint 2010
There is drastic change in the user interface of SharePoint 2013 in comparison with SharePoint 2010. I found SharePoint 2013 user interface more interactive and more usable. There are lots of platform level changes done in SharePoint 2013.
Below are the points where architectural changes & modification has been done in SharePoint 2013 in comparison with SharePoint 2010
- Shredded Storage
- SQL Improvements
- Cache Service
- Request Management
- Service Applications
- Office Web Apps
- Analytics
- Social
- SharePoint 2013 Farm Considerations
- UI improvements
Let me brief you about each bullet points of changes/enhancement done in SharePoint 2013:-
Shredded Storage
The goal is to make changes equal to the size of the change, not size of the file
How It Works in SharePoint 2010:
When a file is updated via Cobalt, only the bits that have changed are sent over the wire from the client to the SharePoint WFE. However, because SharePoint lacks the concept of incremental updates to SQL, so the system was forced to:
a) pull the entire file to the WFE
b) merge the changes into it
c) write the entire file back to SQL
How It Works in SharePoint 2013:
Now in SharePoint 2013 the file is break into pieces and store that in SQL
On update of the file, only the shredded blobs that correspond to the updated bits are touched and stored in SQL, so that means the entire file saved and after the modification only the changes are stored in SQL, so it avoid round tripping entire files to the WFE and back.
SQL Improvements
- Microsoft has reduced scenarios that might invoke full table scans. There have been lots of improvements around finding docs for link fix-up and alert handling
- Reduced data redundancy for some features
- Using advanced indexing features provided by SQL 2008 R2
- Changes in architecture to support wide lists, i.e. lists where a single item spans multiple rows in the database to hold the data
Cache Service
There is a new distributed cache service in SharePoint 2013 based on Windows Server AppFabric Distributed Caching, It is used in features like authentication token caching and My Site social feeds. SharePoint 2013 uses caching features that cloud-based cache (Windows Azure Cache) does not support at this time, so only local cache hosts can be used
SharePoint ONLY supports the version of caching that it ships – you cannot independently upgrade it.
The config DB keeps track of which machines in the farm are running the cache service, It is all provisioned by SharePoint setup
A new Windows service – the Distributed Cache service – is installed on each server in the farm when SharePoint is installed
Request Management
The purpose of the Request Management feature is to give SharePoint knowledge of and more control over incoming requests, Having knowledge over the nature of incoming requests – for example, the user agent, requested URL, or source IP – allows SharePoint to customize the response to each request, RM is applied per web app, just like throttling is done in SharePoint 2010.
RM is turned off by default
RM – Goals (you can think of RM as replacement of NLB):
RM can route to WFEs with better health, keeping low-health WFEs alive
RM can identify harmful requests and deny them immediately
RM can prioritize requests by throttling lower-priority ones (bots) to serve higher-priority ones (end-users)
RM can send all requests of specific type, like search for example, to specific machines
Isolated traffic can help troubleshoot errors on one machine
RM can send heavy requests to more powerful WFEs
RM Routing and Pools
Routing rules route requests and are associated with MachinePools, MachinePools contain servers, servers use weights for routing – static weights and health weights
Static weights are constant for WFEs; health weights change dynamically based on health scores
RM Routing Rules
Routing to a server in a MachinePool is based on matching a routing rule
Routing rules are placed in ExecutionGroups
These are numbered 0 to 2, with 0 the default
Rules are evaluated in each ExecutionGroup
As soon as a match is found no more ExecutionGroups are evaluated
All machines from pools that match any routing rules are union’ed together to determine possible target servers
This means that you create your most important rules in ExecutionGroup 0
There are some important caveats to remember about routing rules
If no rules are matched, then the request will get routed to any available routing target
If you want to route to a subset of machines, make a rule with no criteria and specify the subset of machines you want to routed to
RM – Why Not Throttling?
SharePoint 2010 has throttling but there is room for improvement
Uses a health score system in which WFEs attach their health info to all responses
The drawbacks from this approach were:
It was the clients’ responsibility to honor the health scores
It did not preclude WFE failure
Clients could be shown server busy messages from a poor-health WFE when other better-health WFEs were available
RM Throttling Rules
Routing rules process requests; throttling rules stop requests
It’s much like throttling in SharePoint 2010, only more sophisticated
You create criteria for the throttling rule, and if the criteria is met the request is throttled
The process and PowerShell for creating throttling rules is very similar to routing rules
Criteria's You Can Use for Routing and Throttling
Rules can match on these properties:
Url, UrlReferrer, UserAgent, Host, IP, HttpMethod, SoapAction, CustomHeader,
You can evaluate values using these methods:
StartsWith, EndsWith, Equals, RegEx
RM Routing Weights
RM uses static weights and health weights
Static weights are associated with WFEs so certain ones will always be favored when selecting.
This gives added weight to more powerful WFEs and less to weaker machines
Health weights are used to even out load and keep “sick” WFEs going
Health scores run from 0 to 10 where 0 is the healthiest and therefore will get the most requests; this score is used to derive the health weight
WFEs start with a healthy weight; the Policy Engine health rule updates health weights dynamically – you cannot change it manually
Service Applications
There are a few new service applications in SharePoint 2013:
App Management Service: allows you to install SharePoint apps from the Office Marketplace or the App Catalog
SharePoint Translation Services: does simple language translation of Word, PPT, and XLIFF files into HTML
Work Management Service: provides task aggregation across systems such as SharePoint, Exchange and Project.
Azure Workflow Server is new and not exactly a service app but similar. Provides an externalized host using REST and OAuth to run workflows.
Office Web Apps is no longer a service application
Web Analytics is no longer a service application
Office Web Apps
WAC is now a separate server product, not a service application
You can create a WAC farm that can support multiple SharePoint farms
You can view files from a number of different data sources, including:
SharePoint, Exchange, Lync, File servers
This allows you to scale and manage WAC separately from other Microsoft server products, as well as share that infrastructure between them
WAC farm version does not need to be in sync with SharePoint farm
You connect your SharePoint farm to the WAC farm using PowerShell
NewSPWOPIBinding
Analytics
New Replacement for Web Analytics Service
The Analytics Platform replaces the Web Analytics service application
Some of the reasons for that included:
There was no concept of item-to-item recommendations based on user behavior, i.e. people who viewed this also viewed foo
Couldn’t promote search results based on an item’s popularity (as determined by # of times an item was viewed)
It required a very powerful SQL box and significant storage and IO
Lists don’t have explicit view counts
The architecture had problems scaling to large numbers
How the New Platform Improves on Analytics
The new Analytics Processing engine aims to solve these issues:
Find relevant information (improve search relevance) – based on views, click thru, etc.
See what others are looking at (“hot” indicators and usage numbers – i.e. what’s popular based on # of views as well as # of unique users to view)
Understand how much content is being used (i.e. viewed) and how it compares to other documents
See discussion thread usage and find the hot topics
Use this popularity info to populate views through the Content by Search (CBS) WebPart
The model is extensible for 3rd parties to build into the platform
Processing and Storing Analytics Data
Data goes through an analysis and reporting process that is contained within the search service application
Things like views and counts are combined with click-thru and other search metrics and pushed into the reporting database
Some data like view counts are also pushed into the index so it can be included in search results, sorted on (i.e. what’s most viewed), etc.
An analytics processing job examines data for clicks, links, tags, etc., as well as the usage data to create the data points used for reporting
Social Changes
Much more detail on social in the presentation on Social features, but worth highlighting:
User Profile Replication Engine
Profile Sync Changes
My Site Data Store Changes
Profile Sync Performance Improvements
Performance improvement goals are to reduce full import time from 2 weeks down to 60 hours for very large directories (i.e. 200K users, 600K groups)
Recent anecdotal evidence: 300K users, less than 7 hours for full import
Some of those improvements included:
Adding indexes to certain user properties that eliminated full table scans
Importing data from BDC in batches rather than one by one
Removing unused provisioning steps
Cleaning up unused historical data
Move resolution of some objects out of SharePoint and into the sync system
New Profile Synchronization Option
Active Directory Direct Import
Active Directory forest with multiple domains, one connection per domain
Selection of OUs from which to import
Import User and Group objects
Simple text-filters written in LDAP syntax
Full and incremental import
You can switch back between FIM and AD Direct
Changes in Social Data Store
The store for social data now is your personal site now – it’s no longer in the social DB
That means that social feeds will now come out of the content DB for My Sites
That gives you much more power to scale social features than SharePoint 2010
Single Social DB could become an I/O bottleneck in 2010
It also means that My Sites are required for
some social features, including feeds
SharePoint 2013 Farm Considerations
Stretched farms are no longer supported in SharePoint 2013
“Stretched” means different data centers with less than 1ms latency
All servers in the farm must be in the same data center now
For 100% fidelity in 100% of features, all content must reside the same farm
Certain social features will have a very slightly degraded experience unless content databases, personal sites and community sites are all together
Still allows for geo-grouped farms with full fidelity
Specific feature differences will be discussed in social deck