views:

477

answers:

1

I have a BerkeleyDB key/value datastore embedded in my Google App Engine project, which does not use the Google Datastore.

When I upload the application to Google App Engine, the database will be less than 1MB.

But is it possible that, as it grows, over time it will eventually exceed an App Engine file-size limitation?

What would be the consequence of that to my running production application?

+2  A: 

App Engine DataStore entity is limited to 1MB. You won't be able to save a larger entity.

Free quota for DataStore is 1 GB. If you exceed it with billing disabled, you won't be able to save new entities or enlarge existing entities. If you have billing enabled, you will be charged for additional storage.

App Engine static file limit is 10 MB. Static file can't be changed by your application, only re-uploaded or deleted by appcfg.py tool. You won't be able to upload a file larger than 10 MB.

Constantin
So my app will not be able to update my embedded Berkeley datastore after I upload the app to App Engine? Your answer mentions the App Engine Datastore as well as static files - but I am not using either of these.
jbancroft
@Constantin's answer correctly gives the current limits/quotas (and the single one which you can exceed by paying: the total datastore size). Your claim that you're using neither storage nor files to hold your bsddb file is simply false: there is nowhere else you could keep it in GAE. So please clarify!
Alex Martelli
More than that - a BDB database is not going to work in production App Engine at all: It requires a C extension module that isn't available on GAE.
Nick Johnson
Apologies and thank you for clarifying my misunderstanding.
jbancroft
Perhaps if you explain your requirements, we can suggest an alternative? The App Engine datastore bears many design similarities to BDB.
Nick Johnson