Documente Academic
Documente Profesional
Documente Cultură
a Serv
vicess Cap
pacity
y
nes
Guiidelin
Yair Helman
MasterDataServicesCapacityGuidelines
ThisdocumentprovidescapacityplanningguidelinesforMicrosoftSQLServer2012MasterData
Services(MDS).Theseguidelinesincludethefollowingsections:
MDSArchitectureOverview
CapacityConsiderations
CapacityModels
ImpactofRowLevelSecurityonPerformance
RecommendedHardware
PerformanceConsiderations
MDSArchitectureOverview
MasterDataServiceshasathreetieredarchitectureconsistingofthedatabase,service,and
architecturelayers,asshowninthefollowingdiagram.
MDShastwodeploymentconfigurations:
Singlebox(SQLServer+IISonthesamecomputer)
Twobox(SQLServerononecomputer,IISonthesecondcomputer)
MostofthecomputationalworkforMDSisdoneinthedatabaselayer,soinmostcasesinorderto
increasecapacity,astrongerSQLServercomputerisrequired.
CapacityConsiderations
Assumptions
MasterDataServiceswasdesignedtoworkwithdatathatisrelativelyslowlychanging.Datathatis
involvedinahighvolumeoftransactions(thatinsomecasesarestoredinfacttables)shouldnotbe
storedinMDS.
Fromaperformanceperspective,MDSwilllikelynotprocessmorethan50Kdistinctchangesperdayper
model.Bydistinctismeantaseparatecall(eithertoentitybasestagingortheWCFAPI).Ifsignificant
changesarerequired,itisrecommendthatyouperformtheminbatcheseitherthroughentitybased
stagingortheWCFAPIs.Bothinterfacesaretunedforbatchoperationsandwillgeneratemuchbetter
performancethanperformingeachchangeseparately.
Ifyouneedtoperformmorethan50Kcallsperdaypermodel,thenitisrecommendedthatyouperform
aproofofconceptonthedesignatedhardware.
DirectImpact
ThefollowingfactorswillhaveadirectimpactonMDSperformance:
Entitystructure
o Numberofmembersinthelargerentities
o Numberofattributes
o Numberofdomainbasedattributes
o Numberofversions
Note:Eachversiongeneratesacopyofallthedataintheentity,butallversionsarestill
storedinthesametable.
o Numberofbusinessrules.
Numberofconcurrentusers
Usingrowlevelsecurity.
Note:ThereismoreinformationonrowlevelsecurityintheImpactofRowLevelSecurityon
Performancesectionlaterinthisdocument.
SlightImpact
ThefollowingfactorswillhaveaslightimpactonMDSperformance:
Numberofentitiesandnumberofmodels
Usingrolebasedandattributelevelsecurity.
CapacityModels
Thefollowingthreemodelscanbeappliedtocapacityplanning.
MediumCapacityModel
Inthemediumcapacitymodel,theMDSsystemhasthefollowingcapacity:
Entitieswithlessthan500Kmembers
Numberofattributesinentitiesislessthan100
Numberofdomainbasedattributesinanentityislessthan20
15businessrulesperentity
5concurrentusers.
Mediumrangehardwareshouldeasilyhandlethiscapacity.However,whenusingaVirtualHardDrive
(VHD),itisrecommendedthatyouperformaproofofconcept.WhenusingaVHD,itisrecommended
thatyoumonitorthehostserverovertime,andverifythatthereissufficientsparecapacity.
LargeCapacityModel
Inthelargecapacitymodel,theMDSsystemhasthefollowingcapacity:
Entitieswithupto10millionmembershaveamaximumof30attributes
Entitieswithupto1millionmembershave100attributesormore(Note:fortheseentitiesitis
recommendedtouseattributegroups)
15ormorebusinessrulesperentity.
Forthelargecapacitymodel,seetherecommendationsbelowintheRecommendedHardware
section.Atthislevel,itisrecommendedthatyouperformaproofofconcept.
ExtraLargeCapacityModel
Anydeploymentthatislargerthanthelargecapacitymodelwilllikerequirestrongerhardwarethan
thatlistedintheRecommendedHardwaresection.Atthislevel,youshouldperformaproofof
conceptintheearlyphasesofthedevelopment.
ImpactofRowLevelSecurityonPerformance
TheMicrosoftMasterDataServicesengineeringteamcautionsagainstaddingrowlevelsecuritytolarge
datasets,becausethesepermissionswillgeneratesignificantpermissiondata.Theeffectsofhierarchy
membersecurityonperformancecanbeisolatedbycomparingperformanceofthemodeladministrator
tothesecuredusers.
ThefollowingaretipsforsecuringMDSusinghierarchymembersecurity:
AlwayssecureMDSusingActiveDirectorygroupsorlocalgroups.Thiswilllimitindividual
permissionsinthetables.
SecureMDSusingimplicitdeniesasmuchaspossible.Setpermissionsonlyforthoseareasthat
auserhasaccessto.
Donotgrantuserspermissionstomembersatahigherlevelofthehierarchywhileexplicitly
denyingpermissionsatalowerlevelofthehierarchy.
RecommendedHardware
Thespecificationbelowfocusesonthedatabasecomputerandtheoneboxconfigurationoption.
LargesizeHardwareModel
UseHWequivalenttothefollowingconfiguration:
HPProliantDL360G7
2IntelE5606CPUs(quadcore2.13GHz80W)
24GB(6x4GBPC310600E)
256MBCachemoduleforP410i
EnableHyperThreadingandTurboboost
EmbeddedP410i(SASArrayController)supportsRAID0and1(partoftheHWconfiguration)
8x10KRPM2.5HDD
*StoringmultiplemodelsmayrequireaddingmoreRAMtotheserver.
MidSizeHardwareModel
Themidsizemodelhasasimilarconfigurationtothelargesizemodel;however,youcanreducethe
amountofRAMto1216GBandhavefewerdisksintheraid.
Impactofservervirtualization
Ingeneralusingservervirtualizationshouldhaveaminimalimpactonperformance.
TherealchallengeistoknowhowmanyIOPS(IOperSec)youwillgetfromyourstorageandwhatthe
physicalstorageconfigurationbehindthevirtualdiskis.
AlsomakesurethatyoudedicateasufficientamountofmemoryandCPUasdescribedabove.
PerformanceConsiderations
Thissectionprovidesperformanceconsiderationsforentitybasedstaging,userinterface(UI)
operations,andExceloperations.
PerformanceScenariosThatWereTested
Themetricsprovidedbelowweretestedbyusingthefollowingtwotestmodels:
Customer(Long)Model:7millionmemberswith20attributesinthemainentity.Sixattributes
aredomainbasedattributestootherentitiesofvaryingsizes.Twelvebusinessruleswere
createdonthisentity.
Location(Wide)Model:1millionmemberswith100attributesinthemainentity,25ofwhich
aredomainbased.
Thetestswereperformedwithuptosevenconcurrentuserswhereeachuserwascreatingmembers,
updatingmembers,orreadingmembersatfullspeed.
Alltimeslistedbelowareinseconds.
EntityBasedStagingPerformance
UsingthenewentitybasedstaginginterfaceintroducedinSQLServer2012MDS,youcanload40K
cells/sec.
Ittookaboutanhourtoloadthe7Mmodelandapproximatelythesameamountoftimetoloadthe1M
widemodel.
UIOperationsPerformance
PerformanceconsiderationsforUIoperationsareasfollows:
ExplorerPageLoads:Whiletheinitialpageloadtakeslonger(about5seconds),subsequent
pageloadstakeaboutasecond.Skippingtothemiddleofthedatasettakesabout3seconds,
andloadingthelastpagedirectlytakesalittleover5seconds.
Memberactions:Selectingamembertoedittakes1secondnomatterwhatpagethememberis
on,andcreatinganewmembercompletesinalittleover3seconds.
Filter:Simplefilteroperations(equals,<,>,orlike(indexed))returnresultsinunder2seconds.
Complexoperationssuchasnonindexedlikeoperationsoramatchcompleteinlessthan10
secondsonaverage.
MDSExcelAddinOperations
PerformanceconsiderationsforExceloperationsareasfollows:
CreateEntity:CreatinganentityfromanExceltableisdependentonboththenumberofrecords
andthenumberofcolumns,andappearstobelinearinitsprogression.Thenumberof
attributessupportedisbasedonSQLtablelimits,whilethenumberofmemberswillbe
constrainedbyExcelworksheetrowlimitationsof1Mrows.
LoadMembers:Membersareloadedinabatchprocessandshouldincreaseinalinear
progression.
OpenFilterDialogue:Thetimerequiredtoopenthefilterdialogisdirectlyrelatedtothenumber
ofattributesontheselectedentity.Pleasebepatientforwideentities.Attributegroupsdonot
affectthisperformanceinExcel.
BusinessRules
Thenumberofbusinessrulesandtheirtypeshaveaminorperformanceimpactonasinglememberedit.
Asaresult,theywillnothaveaneffectontheuserexperienceofadding/updatingasmallnumberof
members.
Themainperformanceimpactinrelationtobusinessrulesisinthecaseoffirsttimevalidationorafter
changingoneormorebusinessrules.Inthiscase,thevalidationprocessneedstovalidateeachmember.
Thereisnosimplewaytocomputehoweachruleaddstotheoverallcomputationtimebecausethe
computationisdoneinbatches.
Notethatlatervalidationrunswillonlyrevalidatemembersthatchanged.
Onthe7Mcustomerslongmodel,wehad12differentrules(defaultvalues,mandatory,uniqueness,
concatenation,andmore),andittookabout2hourstovalidatetheentireentity.
ModelDeployment
MicrosoftSQLServer2012introducedanewcommandlinetool(MDSModelDeploy.exe)tohandlethe
exportandimportscenariosofmodels.Thecommandlinetoolenablestheexecutionofcreatingand
loadinglargemodelsthattakealongtime.
TheCumulativeUpdate#1releaseofMicrosoftSQLServer2012willincludeasetofperformance
improvementstothesescenarios.
Withthoseimprovements,theperformanceresultsthatweremeasuredforamodelwiththesame
schemaastheCustomer(Long)modelincludedthefollowing:
100Kmembers:1min.tocreateapackageand11min.toloadthepackagebacktoMDS
500Kmembers:18min.tocreatethepackageand60min.toloadthepackagebacktoMDS.