Q3: How scalable is the Report Server?
A: Lets approach this question in four parts:
Will the Report Server crash or do something bad if a
situation occurs where many users create reports within a one
second interval?
No, the COM interface is designed to handle concurrency.
How many concurrent users/report requests can Report
Server handle?
The Report Server processes report requests one at a time
on a first come first serve basis. Example: Five users
submit report requests during a one second interval of time,
each report takes one second to be generated
- user #1 waits for one second and gets his/her report back
- user #2 waits for two seconds and gets his/her report back
(had to wait for user #1's report to be processed and then for
his/her own report to be processed)
- user #3 waits for three seconds
- etc...
You do have an option to check the number of report
requests waiting in the report queue before generating the
report. Example: You could put in logic that if there
are more than 5 reports in the report queue instead of having
the user wait you send a message back to the user that things
are a bit busy right now and ask them to come back a bit
later. You can also save this number and pass it in to
the MakeReport() method, so in a month from now you can run
statistics to determine how many users had to wait for
reports.
How do I scale up this software?
You can run as many Report Servers as you need.
Example: You might be developing a reporting system to deliver
100 reports. You can split the processing so fifty of
the reports run on one report server and 50 run on the second
report server.
How many users can the Report Server support?
It all depends on complexity and size of reports being
delivered. You might be surprised how little actual concurrency
you do get. You can estimate report speed by running
tests and then calculate how many reports can be generated in
an hour, a day etc....
Developers at RPT Software have been operating the Report
Server at a company of approx. 1000 users delivering about 150
reports off a SQL Server 2000 data warehouse, with size ranging from one
page to about 800 pages with the average report being about
six to ten pages. Typical reports take a few seconds to
be generated. Monthly about 5000 reports are created
with 98% getting 0 report requests waiting and the other 2%
with one thru four report requests waiting. During
training sessions when the instructors tell everyone to press
submit at the same time is about the only time we see the
"too busy, please come back later..." messages.
A few Crystal Report servers where replaced because they
were crashing every month during the busy reporting
times. Only one report server product is being used.
top
|