Share via


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