-
The wording of the documentation discussing connect pool testing is confusing. I think I understand what it's trying to say, but I'd like to discuss it a little to make sure my understanding of this documentation is right. Let's work through an example, and then I want to ask some questions. I run a short test with time profile enabled, a 1min ramp, and 6min run, and this is what i see:
Questions:
|
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
Hi, Many thanks for the questions and yes your understanding in the context of PostgreSQL is correct, probably the main reason for the confusion is that different databases can work in different ways in a cluster, with Oracle RAC the best example. I'll answer the questions directly in turn and address this for the last question that should explain the way it works.
Yes, this is correct, it is known, and it is also the same for the time profiling #233 so during the rampup phase not all virtual users will be connected and the data may not be cached so there is more I/O - both of these reasons will account for lower throughput.
In theory yes they should be equal but they are measured differently and we are relying on the database for the server side result whereas the client is counting how many times the client transaction is called. Also there are intentional rollbacks as part of new order so this will also account for some of the difference as the client just measures the number of times NEWORD is called whereas the server will report when it completed by updating the district table metric.
Yes, this is exactly correct, it is a check on the server side result. So for example with Oracle RAC you can point the transactions to any of the nodes in the cluster as if it were one database instance and therefore any server you connect to with the main connection will report the same clusterwide NOPM metric. However, if you took this approach with a database that does not view transactions cluster wide (i.e. run new order transactions against multiple nodes in the database) then the numbers from client and server will not align. Therefore, the client side metrics enable you to clearly see whether your configuration makes sense in the context of running a valid test.
Yes, again, this is exactly correct! Given more time I would have used Oracle RAC, the example is taken from a desktop/laptop to write the documentation, hence the discrepancy. But your understanding is correct - the workload enables you to direct individual transactions against multiple nodes in a cluster regardless of how the database itself handles these transactions and whether there is functionality to report cluster wide metrics, Therefore the client side metrics are an additional check to report where the individual virtual users sent their transactions. |
Beta Was this translation helpful? Give feedback.
-
Thanks for the quick response. Ok, this all makes sense in my head now. :) |
Beta Was this translation helpful? Give feedback.
Hi, Many thanks for the questions and yes your understanding in the context of PostgreSQL is correct, probably the main reason for the confusion is that different databases can work in different ways in a cluster, with Oracle RAC the best example. I'll answer the questions directly in turn and address this for the last question that should explain the way it works.
Yes, this is correct, it is known, and it is also the same for the time profiling #233 …