Upload
johnseq
View
217
Download
0
Embed Size (px)
Citation preview
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 1/28
Performance Testing
Results
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 2/28
Lab Configuration
SQL Server 2005
HP Proliant DL 385 G12 32 Bits Processors (1.8Ghz)4 GB Memory4 spindles SCSI 10000RPM
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 3/28
Extensibility Patterns• Extension Table
• Fixed Columns
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 4/28
Extension Table• Shared table
with schema
common to alltenants
• Shared
extension tablethat containsone row for
each field
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 5/28
SELECT
OPERATIONS
Extension Table
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 6/28
Extension Table – View(one join per table)
Sharedfields
Custom fieldsA view is createdfor each tenant
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 7/28
Test• Retrieve a random page of records from arandom tenant view
SELECT *, ROW_NUMBER() OVER (ORDER BY Id) asRowNumberFROM entity_tenant(x)WHERE RowNumber >= (#y) and RowNumber <= (#z)
Notes: (#y) and (#z) are random values based on the
number of recordsPage Size = (#z) - (#y)
Randomization
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 8/28
How Does it Scale?
9 Extension Fields
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 9/28
Analysis• With more tenants and rows in the
database, as the number of
concurrent users increases, theretrieval of randomized rows causesmemory pressure and consequently
I/O activity due to paging.
• Let’s validate this behavior by
looking at the next chart…
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 10/28
How Does it Scale?
Tx/sec, CPU use and memory (with side effect of I/O activity)
25 concurrentusers
Memorypressure
&I/O Activity
No relevantI/O Activity
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 11/28
Measuring the effect of adding fields
25 concurrentusers
Increasing the number of fields impacts on theoverall throughput anorder of magnitude
While increasing thenumber of tenants and
rows per tenant does notimpact in the same way
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 12/28
Test• Retrieve rows filtered by a random field
value from a random tenant view
SELECT * FROM entity_tenant(x)WHERE field(n) = ‘value’
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 13/28
How Does it Scale?
The behavior remainssimilar
GetOne(filteri
ng)
GetAll(no
filtering)
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 14/28
Conclusions• Filtering by a value in the extension
table has little effect on the overall
performance• It’s expected an increase of the
processor usage due to the row
filtering. This becomes evident in the0 fields scenario
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 15/28
Extension Table – View( using PIVOT )
Create a view foreach tenant
Transpose theresults
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 16/28
Comparing to PIVOT
Current query
PIVOT query
New SQL 2005 feature, PIVOT,has lower throughput than
the regular approach.CPU and I/O Usage remains
similar
The slope of the PIVOT approachseems to be better compared tothe current query, however 20fields is already an edge case
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 17/28
To keep in mind• Indexes help!
– Clustered Index on “tenant id and record
id” – Clustered Index on “record id and
extension id”
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 18/28
INSERT
OPERATIONS
Extension Table
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 19/28
Test• Get Entity Schema from
TenantMetaDataStore DB (retrieves
entity fields definition)• Insert Shared Data in TenantDataStoreDB
• Insert Custom Data in TenantDataStore
DB
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 20/28
The effect on Tx/sec and CPU usage
5 extension
fields
As we addconcurrent users,
throughput increasesin a healthy way
DataFile LogFile
Relevant forinserts
Metadata (3000 tenantsand 10 fields or more)is causing memorypressure and
consequently I/OActivity
Next Steps:
Analyze how toimprove Metadata
Retrieval
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 21/28
Conclusions• At 500,000 rows (100 tenants)
– Throughput increases with the number of concurrent users. Resources remain inacceptable levels.
• At 15,000,000 rows (3000 tenants) – Minimal gain in throughput due to memory
pressure and consequently intensive I/Oactivity (page file).• Next Steps: Analyze how to improve
metadata retrieval
• Analysis hints: – “Writes” use sequential I/O for log files, “Reads” involve
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 22/28
Fixed Columns
There is a preset number of customfields in every table you wish to allow
tenants to extend
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 23/28
Testing Approach
• Testing performance for the fixedcolumns approach works against a
single, fixed-schema table• This is analogous to the extension
table approach but without extension
fields (no extension field table)
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 24/28
SELECT
OPERATIONS
Fixed Columns
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 25/28
Fixed ColumnsFixed Columns
approach scalesbetter than
extension tableeven with a large
number of
tenants
Response time isnot affected by
concurrency
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 26/28
Analysis
• Fixed Columns approach(analogous to 0 extension fields)
scales better than extensiontable – Extension table is CPU intensive when
adding fields (98% vs. 35%)
• When adding concurrent users, wegain throughput while response timeis not affected
•
Memory remains the same
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 27/28
Bottom Line
• Developing multi-tenantarchitectures requires stressing the
database to detect the glass ceilingof customers you can handle in asingle instance. This involves:
–
Developing unit and load tests foreach scenario
– Generating a massive set of simulated data
– Deploying the tests in a rig and
8/14/2019 Multi-tenant Database Performance Tests Results - Litwarehr
http://slidepdf.com/reader/full/multi-tenant-database-performance-tests-results-litwarehr 28/28
Introducing the Multi-tenant
Database Performance TestGuide