Understanding DB Throughput Calculations I'm trying to understand more about databases and am taking a course that calculates throughput throughout. An example for a DynamoDb table looks like...


  our application requires us to read 10 items of 6KB / second, what should we set the throughput for?


Coming at this from a web dev's perspective I want to understand what is happening here. 

Is this saying that if someone requests 10 items from our DB we want them to be able to get 6KB worth of data per second for each item? 

So if those 10 items total size is 100 KB and we have our DB configured to read 6 KB of data per second, it will take about 17 seconds to perform that read operation (100/6)?

Am I understanding the requirements correctly or do I have something fundamentally wrong? I want to make sure I have this concept down before moving on.
If we are talking about throughout and the scenario you describe i would consider that your requirement is 10 x 6kb/sec which would be 60kb/sec.

So yes assuming you had 10 concurrent requests and you tried to move 10 x 100kb it would take 17 seconds. 

In theory 1000kb / 60kb per sec = 16.66sec.

In the real world if the app required data from the db, the response time would vary depending on whether the db had to parse the query, create an execution plan and then read from disk. This all adds up to delays (latency) before the data starts being returned to the app. 

If this is a commonly executed query (for example in a stored proc) the query has already been parsed, execution plan created and data already held in memory this means the initial delay would be much lower. 

I would say it would be rare for an app to consistently consume data with 10 simultaneous connections. I guess a video streaming app could set a constant load for long durations. But more likely as other connections start and stop there would be more or less bandwidth available so transfer times could be lower. I would expect to see fluctuations in transfer rates. 

Also: watch out for kilobit vs kilobyte,  And expect there will be some overhead. I.e It takes more than 6kb to move 6kb worth of data.