Hey Gitted,

These are excellent questions. I'll do my best to answer you:

There are numerous benchmarks performed by users and third-parties out 
there which can be found through Google searches. As far as I know, we 
don't host any benchmark data of our own. But that doesn't mean it's 
impossible to estimate the capacity of any service. We publish 
Service-Level Agreement information for most services, and the 
pricing/quotas information for a given service can also give an indication 
- you can use this information to roughly determine what each option is 
capable of handling.

I'll try to list each of the main storage options and discuss the general 
outlook on scaling for them. To determine whether each service can handle 
either 100's or 1000's of queries / inserts / etc. per second, you'll need 
to consider any rate-limiting quotas in effect and the state of the system 
as provisioned in the case where scaling is user-based, as for a Cloud SQL 
replica pool or BigTable cluster. 

1. Datastore

Scaling: Automatic, you will in theory* never exhaust the system as long as 
your billing account continues to work. You may want to contact us if 
planning any critical extremely-large workloads (especially since by 
default an overall limit of 100 million requests per day applies), even 
just to get some best-practices advice, but this service in general is 
highly, highly scalable, effectively* unlimited. You can read about all 
this in the documentation [1] [2].

Benchmarking: In addition to reading about benchmarks out there, to run 
your own, you'll want to write tests that use the main operations: put, 
get, query, mutli-put, multi-get

2. Memcache

Scaling: Not applicable, while there is no guaranteed capacity for shared 
memcache, dedicated memcache has between 1 to 100GB of capacity. You can 
contact [email protected] to request more capacity.

Benchmarking: The documentation [3] provides information on the above and 
more, describes the basic operations (set/get), as well as their 
rate-limits, and advice for scaling. As in all other cases, benchmaring is 
as much an art as a science, and the choice of the distribution over 
key-space your choose for your tests will impact the observed performance. 
Reading the docs is highly recommended, as for all services.

3. Cloud SQL 

Scaling: The scaling properties of your Cloud SQL database will be given by 
your own choices in replication and sharding, two topics important to MySQL 
servers in general. In many ways, Cloud SQL acts just like a thin layer of 
management and provisioning, with API access and integration with the Cloud 
Platform, on top of an SQL server. You can read about replication in the 
docs [4], and google search will bring up great general resources for MySQL 
database scaling.

Benchmarking: MySQL benchmarking is a huge topic, and there are many great 
frameworks and libraries which have been designed to assist in getting a 
MySQl benchmark running no matter the infrastructure the database is 
running on, and performing some rather exhaustive tests of all possible 
queries, etc.

4. BigTable

Scaling: Determined by your own monitoring [5] and provisioning [6] of 
nodes in the cluster. You should also take a look at the Quota 
documentation [7].

Benchmarking: Very similar to the methodology of running a benchmark for 
memcache, you'll want to simply test get/set operations.

5. BigQuery

Scaling: An extremely large amount of data can be stored in BigQuery. I 
suggest reading in the "Resources" section of the docs to see what 
rate-limit quotas exist [8].

Benchmarking: As for the other services, there are benchmarks out there 
online, although there are probably more for BigQuery than for many other 
services, and you can of course run tests using a relatively simple 
batching setup of a few instances running inserts, running queries, etc.

***

I hope this information has been helpful, feel free to let me know if you 
have any further questions, I'll be happy to assist.

Cheers,

Nick
Cloud Platform Community Support


[1] https://cloud.google.com/datastore/docs/pricing
[2] https://cloud.google.com/appengine/docs/quotas#Datastore
[3] https://cloud.google.com/appengine/docs/java/memcache/
[4] https://cloud.google.com/sql/docs/replication
[5] https://cloud.google.com/bigtable/docs/monitoring-cluster
[6] https://cloud.google.com/bigtable/docs/modifying-cluster
[7] https://cloud.google.com/bigtable/quota
[8] https://cloud.google.com/bigquery/docs/resources

On Friday, June 24, 2016 at 7:40:30 PM UTC-4, Gitted wrote:
>
> Hello,
>
> Is there a chart that compares the benchmarks of the various data stores 
> that app engine offers, with a focus on scaling/benchmarks?
>
> If my app will require 100's of writes per second, which store can I use?
> What if it requires 2-3K writes per second?
>
>
> Thanks.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/56ececb7-02da-4526-a73f-2eba34f00bdd%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to