Recently I profiled App Engine Data Store Operations with AppWrench
Java Console.
Results was very repeatable and it inspired me to build simple
empirical math model for calculating API cost of data store
operations.
According to my measurements the cost of basic operations is
following:
Get: costs 10 API megacycles per entity and this cost does not depends
from entity size.
Query: costs 11-13 API megacycles per entity and this cost nearly does
not depends from result set size. (there is small cost(~20) when query
returns now results.
Put: costs 48 API megacycles - per entity if transaction is started
(does not depends from entity size). If transaction is not used then
you should add cost of 'Commit' to cost of 'Put' to get right value.
Commit: costs 48 API megacycles - per changed or created entity +
(20-40 megacycles for each changed indexed property value). I am
planning to research this more but rough estimation is that formula
for commit costs is: 48*n +f(n)*20*k*n where n is number of changed or
created entities and k is a number of changed indexed properties. Each
value in list property is threaded as separate changed indexed
property value.
Delete: 0 API megacycles per entity (in other words delete is free)
So my initial rough conclusions are:
* API cost is ~ entity count
* API cost does not depends from entity size
* API cost of storing data is ~number of changed indexed property
values.
* Deleting entities is free
Does any body else tried to measure/analyze cost of data store
operations?
Is there any official guide to predicting/estimating API cost, for
particulate queries?
Thanks in advance,
Pavel
--
You received this message because you are subscribed to the Google Groups
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-appengine?hl=en.