Maybe you should not use fetch() or a gql() with LIMIT and OFFSET but
use the Query object and GqlQuery object as iterators. The filter()
method is a good way to reduce the number of objects in the result
.
>From the following page:
http://code.google.com/appengine/docs/datastore/queryclass.html
-
Just use the following app.yaml lines
- url: /news-wsj-.*
script: news.py
and filter in the main program for the specific version
application = webapp.WSGIApplication(
[('/news-wsj-biz', BizNews),
('/news-wsj-popular', PopularNews),
],
debug=False)
These handlers can
ewbie, is there a similar way without the WebApp
> framework to get the parsed mappings?
>
> -nick
>
> On Sep 16, 12:39 pm, djidjadji <[EMAIL PROTECTED]> wrote:
>> Just use the following app.yaml lines
>>
>> - url: /news-wsj-.*
>> script: news.py
>&
matching index found.
This query needs this index:
- kind: FooA
ancestor: yes
properties:
- name: myID
===
When I look in the Dashboard this index is "Serving". And it tells the
index is Ascending sorted, this is maybe the default.
What is
a lot of (quota) messages.
After careful looking at the date-time I find there are NO new ones.
Is it possible to purge the log messages you know or that I have
downloaded with appcfg.py?
djidjadji
--~--~-~--~~~---~--~~
You received this message because you are subsc
myself and implemented
the filter
with python if-statement. At the moment the parent does not have a lot
of FooA childs but that might not be the case in the future ( and then
I get hit by the CPU quota ;-)
djidjadji
2008/9/22 Marzia Niccolai <[EMAIL PROTECTED]>:
> Hi,
>
> From the descri
3600 (60min), large time between mutations.
djidjadji
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubs
It looks like your data is gone through the "pickle" module, have a
look in the python manual how to use the string to unpickle it to a
dictionary.
2008/9/24 theaellen <[EMAIL PROTECTED]>:
>
> I have an html form input value where I have a dictionary stashed.
> When I read it back with request.PO
Hi Tony,
after a few other observations I think the Firefox cache is doing
things different then I suspect. Now I have added a 'no-cache' to the
response for the HTML pages.
I will see if the problem is solved. The images are still cached.
Djidjadji
2008/9/23 Tony Arkles <[EM
just put the original UsersSettings object(s) back with
the statement
> db.put(result)
Djidjadji
2008/9/27 Peter Recore <[EMAIL PROTECTED]>:
>
> In general, if you want to do something Only Once per user, like your
> thread title says, you need to use transactions, else you risk doing
&
If you use a file in your application code it CAN NOT be put in a static folder.
You have to make a separate folder for the templates and not set it to static.
Static files are NOT accessible for code.
2008/9/27 fedekun <[EMAIL PROTECTED]>:
> Hi, im having a problem :(
> I have all static files
To filter you better use the following URL
www.site.com/user/username
in app.yaml
- url: /user/.*
script: user.py
in user.py
application = webapp.WSGIApplication([('/user/(.*)', Showuser) ],
debug=True)
Look at this link on how to implement the handler (
The refers to the major version number in the app.yaml file.
You only see one subversion number for every major version, the
subversion is incremented on each upload.
Now the link does not have a sub-version but the word latest, to
enable to bookmark it.
http://2.latest.myapp.appspot.com
This mak
Python 2.6 and 3.0 will be maintained in parallel for the next couple of years.
They will have the same language features except 3.0 will implement a
few of them
a bit different (e.q. exceptions[only classes] and print[now a function] ).
This is done so people have time to make the transition from
While reading the article on pagination I noticed a small error in one
of the examples.
http://code.google.com/appengine/articles/paging.html
Near the mid of the page there is the suggestion to make the property
unique by adding the email address and a counter value.
The counter values for j...@
And the strings for
2008-10-26 03:35:58|f...@example.org|1
2008-10-26 03:35:58|j...@bitworking.org|2
should change places. The list is sorted in descending order.
2009/12/28 djidjadji :
> While reading the article on pagination I noticed a small error in one
> of the examples.
&g
Look in the window where you are running the dev-server.
The logging messages are printed there.
2009/12/27 dhruvg :
> is there a way to view logs on the development server?
> i am using the standard logging framework, but currently, i need to
> upload my app to the web to see the logs in the admi
What it means is that if you want to update multiple objects in a
transaction they HAVE to be in the same entity group, have a
parent-child relation.
It is good practice to use the parent-child relation if you need to
find the parent based on the child instance.
parent_key = child_inst.key().paren
Your biggest problem is that you don't have the index needed to
perform the query if you have a pool of 20 parameters to choose from,
and you can pick any number of them.
For 20 parameters that is Total[Table[Binomial[20, k], {k, 1,
20}]]=1048575 distinct indices.
A bit too much for GAE for one app
appcfg.py will only upload the changed files.
It first collects hash-md5 values for all files that are part of the
application.
Sends these hash values to the server, in filename-hash combos.
The server returns the filenames it does not have, in any of the
versions of the app.
Then appcfg.py upload
I just received the following request to my GAE application
12-31 xx:xxXM /_vti_bin/_vti_aut/author.dll 404 1388ms 777cpu_ms
0kb core-project/1.0,gzip(gfe)
xxx.xxx.xxx.xxx - - [31/Dec/2009:xx:xx:xx -0800] "POST
/_vti_bin/_vti_aut/author.dll HTTP/1.1" 404 124 -
"cor
I have just received requests for the following URLs
/%20&Merry%2010th
/%20&Merry%2010th!
/%20&Merry%2010thday
/%20&Merry%2010th%20day
What is the purpose of that?
--
You received this message because you are subscribed to the Google Groups
"Google App Engine" group.
To post to this group, sen
http://code.google.com/appengine/docs/python/datastore/gqlreference.html
2010/1/5 Grant :
> Hi
>
> Wonder if anyone can help me with this...
>
> How do I do a query against a date from the admin console data
> explorer. I know how to do it from Java/Python, but am unable to
> phrase it correctly f
Collect offline the Facebook data with cron and taskqueue requests.
Setup the taskqueue to request only 1 every x seconds, to be sure the
previous one terminated.
Cache the results of these collects in datastore objects.
When the user requests, show the datastore object.
2010/1/13 Tom :
> Hello!
>
Why do these small entities need to be a child of the Main entity?
What do you gain with the parent-child relation?
If none, then don't use (large) entity groups.
There is not much storage gain in elimination of an object reference,
because the key of the child will be larger because it has a paren
If no order is specified it will be ordered according to Key.
So yes, the results will be always the same for the same query, if no
objects are created or deleted.
2010/1/14 Erem :
> Hey all,
>
> Let's say the results of a datastore query are not ordered by any
> particular variable. Can I nonethe
I use the following Cookbook recipe
http://appengine-cookbook.appspot.com/recipe/run-tasks-automatically-on-your-local-development-server/
2010/1/13 Wesley Chun (Google) :
> greetings!
>
>
> let us know how you end up implementing it. does anyone else out there
> have a different way of auto-exec
serve them 500 response code
2010/1/26 dreadjr :
> yeah i tried redirecting them, but it looks like they don't follow
> redirects. Any other suggestions?
>
> On Jan 25, 1:26 pm, Stephen wrote:
>> On Jan 23, 7:42 pm, Joshua Smith wrote:
>>
>> > How about going to sleep for 29 seconds, then retur
There is an article series about the datastore. It explains that the
Timeouts are inevitable. It gives the reason for the timeouts. They
will always be part of Bigtable and the Datastore of GAE.
The only solution is a retry on EVERY read. The get by id/key and the queries.
If you do that then very
If you want to get multiple objects with a list of ids and it only
works if they have the same parent then it is a bug, if the parent
parameter of Model.get_by_id([1,2,3],parent=None) is None. The code of
Model.get_by_id(ids) only constructs a list of keys with
db.Key.from_path and calls db.get(key
I have changed the mimetypes.py file that is in the Python25 directory.
Add a line that handles the ico file extension.
2010/1/31 风笑雪 :
> Put favicon.ico section before docs section.
>
> 2010/1/31 samwyse :
>> I moved the mime_type to the end, but it's still not working:
>>
>> handlers:
>> - url:
If you look at the code in the SDK the value you pass (30 days) is
interpreted as an absolute value.
If you just subtract a few seconds it will be treated as an offset.
2010/2/7 Denis Bilenko :
> I've bumped into the same issue and came to conclusion that *time* you
> pass is treated like an absol
GAE does not have a notion of Tables like an SQL Database, there are
NO rows in GAE.
In SQL when you add a *column* to a table, for all the existing *rows*
the value is set to NULL.
In GAE when you add a *property*, all the existing *objects* have an
empty value for this property, they are NOT upda
In the development environment clear your index.yaml.
Run through your app completely, get every query to execute once.
Your index.yaml contains all the currently needed indices.
Upload index.yaml
Vacuum indices.
2010/3/4 Jairo Vasquez Moreno :
> Hi all,
> I'm starting to have problems with my ent
What is the value of 'path' after the os.path.join()?
2010/3/15 Kenchu :
> Displaying a template that resides in the main folder together with
> the script works just fine, but as soon as I try to display one in a
> subfolder, I get an error:
>
> TemplateDoesNotExist: index.htm
>
> It's weird that
Are you aware that after an update of the code the cron jobs get a
reset of the timer.
Maybe the time before cron gets back after an update is 10 minutes.
My cron jobs run hours apart.
2010/3/19 stumpy :
> To provide a little more information:
>
> I have a cron that is set up to run every one min
If you want to compare lowercase you have to store the value lowercase
in the object.
GQL != SQL You can't do more then described on the GQL reference page.
You have to traverse (get) all you current objects and make the field
login lowercase and store the object back and as such update the index
Change the version name of the app, upload the new version, make it
default and remove the old version.
2010/3/22 Snoopy :
> i just uploaded wrong files to my application..so,is there any way to
> delete them or reset that to undeveloped?
>
> --
> You received this message because you are subscrib
To my knowledge the appid can only be once allocated.
If you delete the app the appid is no more available.
2010/3/23 Mariano Benitez :
> I understand I cannot change the option while the application is
> enabled. Also that the application Id is reserved if I delete the
> application. But... can I
If you look in the doc of the Key class you see that there is no
parent_key() method
http://code.google.com/appengine/docs/python/datastore/keyclass.html
2010/3/25 matic :
> We have simple app on gae that broadcasts each entity to a few hundred
> users.
> We had some scaling issues and now we are
They can be static, but your storage is limited to the number of files
and the storage size.
If I remember the max file count for upload is 3000 and max static
storage is 150MB.
If you serve your 'static' pages/images/css from the datastore you
have no limits.
Have a look at the article about ser
You can make a zip file and serve the files from it with a request handler.
Maximum zip file size is 10Mb.
2010/3/28 François Masurel :
> Hi,
>
> While trying to deploy our internationalized GWT 2.0 application into
> production we encountered the error : "Applications are limited to
> 3000 files,
Just use this
-
- url: /mypicpickup_(.+?)\.jpg
script: mypicpickup.py
-
script should only point to the python file. NO static file syntax.
2010/3/29 . :
> Dear all
>
> I fou
Search this list and you see a lot of post asking this and getting the answer
IT CAN'T
2010/4/1 lSaint :
> How can i view my uploaded file online?
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email
The 30 sec limit is still in operation for all the requests: browser,
cron and task queue
2010/4/2 conman :
> I searched the docs but didn't find something about the request
> timout.
>
> The last time I read something about (around Feb 09) it it was at max.
> 30 sec per request.
>
> Does this lim
It is a 'known fact that the cron job times are reset when you upload
a new version.
If you tell it "every 24 hours" and within 24 hours you do another
upload no cron job is called.
Better is to specify a time of day to run the job "every day 00:00"
2010/4/11 conman :
> I am not sure why that is,
You have to write your own Template filters.
One that extracts all the attr names of an object - "allAttrs",
and one that gets the attr with a given name from an object with
obj.getattr() - "getobjattr"
In the template you just call these filters
{%for attr in obj | allAttrs %}
{{attr}} = {{obj
Add part of the required admin email address to the subject line and
the app name and setup filters to reject the mail not intended for you
as admin for this app
Subject: [App-Select-yossie] Some Error
filter 1: Accept all mail with "[App-Select-yossie]" in subject
filter 2: Reject all mail with
1TB = 1024 GB = 1024 x 1024 MB = 1024^4 byte = 1.1x10^12 byte
if you have 500x10^6 entries of 7KB you need
500x10^6 x 7x1024 = 3.584x10^12 bytes = 3.26TB
But this is only the RAW data need, if you take the indices into
account it would be even larger. db.TextProperty and db.BlobProperty
don't use
If you have used dos.yaml to block IP numbers then the way to clear
the block is to use an EMPTY dos.yaml file.
2010/4/23 Anand Mistry :
> Hi,
>
> Can you please provide some details on the error you are seeing, as
> well as steps to reproduce. Note that simply deleting the dos.yaml
> file will no
The decision to rerun a task is done based on the HTTP response code.
There is always a response code, even when the connection is lost.
When the code is 200 the task is considered complete and will not be rerun.
Any other code means the task needs a rerun.
The time between the reruns is increased
I don't think that Google runs Windows-XP-Vista-7 on there servers.
2010/4/27 Wooble :
>
>
> On Apr 26, 7:11 pm, Hanh wrote:
>> I'm trying to create an app on the cloud, and it needs to launch a
>> program from the Program Files on the host machine. I tried it with
>> Windows Azure, and they do n
If you update the default version sometimes the new static files are
not updated correctly.
Workaround: use 2 versions and update the non-default version and make
it default when update is complete.
2010/5/6 Andrew Johnson :
> I pushed a new version of my website, but now the CSS and static images
Maybe you can use the client side of the process.
Write a piece of Javascript that uses Ajax calls to perform multiple
requests simultaneous (Ajax=asynchronous) that each retrieve part of
the objects (there should be some range on the 'the_order' field, chop
it in pieces). Return XML or Jason for t
ybe this is a situation when
> AppEngine simply is not the answer...?
> I'm asking this myself couple of days now, is there any kind of application
> we would admit of that is not suited for AppEngine?
>
> On Sun, May 9, 2010 at 3:16 PM, djidjadji wrote:
>>
>> Maybe
Have you done a search on this list?
The result will be: that it can't and never will be.
Use source control and/or backup.
2010/5/10 ninety :
> I'm a very beginner...
> I lost the source codes of my app on my local PC but don't know if it
> is possible to download it from the web..
> Thanks a lot
If it was possible to get the source code through remote_api or
appcfg.py-hacking it would be possible for the client who only has the
use right of the code to download it too. The client is administrator
of the app too.
This is not what a number of GAE developers would like to see possible.
2010/
the stackoverflow page linked from that thread, its written
>
> "If your app was written in Python, and had both the remote_api and
> deferred handlers defined, it's possible to recover your source code
> through the interaction of these two APIs."
>
> Written by Nic
2010/5/12 djidjadji :
> If you want to prevent your client to download your code with the
> method Nick describes just choose some random URLs for the remote_api
> and the deferred handler
>
The problem is that these random URLs are visible in the logs.
The only solution is to preven
With the remote_api you can write a small script that deletes all the
items off a certain class.
Have a look at the article about the remote_api.
The MyModelDeleter class is all you need, and some of CPU time.
One time/CPU saver would be to adjust a Mapper class to only retrieve
the object keys.
2
If you remove the local copy of the file and upload the updated
version the file is removed from GAE if no other version is having a
reference to this file.
You can have multiple versions of a file present at GAE, but only one
can be active for a given app version.
2010/5/13 Sam Krishna :
> Hi,
>
Have a look at
http://code.google.com/appengine/docs/python/datastore/functions.html
2010/5/16 Herbert :
> hi all,
>
> I have a list of keys to feed in db.get() to return multiple entities,
> and I'm wondering if the order of the returned results = order of the
> keys. This seems to be the case s
BigTable does not work with tables.
It contains objects belonging to a certain class, that have values for
attributes of a certain type.
You can define as much db.Model subclasses as you like and you can
modify then at will.
If you add new attributes (Property-s) make sure you gives them
default va
And if you know that SMS traffic does not cost any bandwidth for the
provider it should be as cheap as email.
SMS messages are transmitted over the network in the slots used for
network management. When there are no management messages to be send.
That is the reason they are limited in length, thes
There has been a post from a GAE-team member (Ikai??) that states that
if you get this "check again" with time greater then 32 the upload has
succeeded, and you should be able to make this version the default.
If you made changes to cron.yaml or index.yaml upload them with a
specific excution of ap
I just started the dev_server and it came with this message.
INFO 2010-05-22 09:46:54,467 appcfg.py:357] Checking for updates to the SDK.
INFO 2010-05-22 09:46:55,655 appcfg.py:387] This SDK release is
newer than the advertised release.
I use SDK
I don't think the SDK will ever upload pyc files.
It could be handcrafted to do some non-pythonic things.
I looked at the code for appcfg.py and it does processes this directive.
I does the precompilation by sending a '/api/appversion/precompile'
command to the server.
I have enabled it for a tes
I'm ahead a few hours of UTC and for me the automatic task queue works.
I have not modified the 1.3.4 SDK code.
2010/5/27 Kenneth :
> The problem with the task not running automatically is because of this
> bug:
>
> http://code.google.com/p/googleappengine/issues/detail?id=2508
>
> Basically it wo
Could it be possible to use the hooks functionality [1] to throw a
CapabilityDisabledError exception when a Put or Delete call is made?
You can add the hooks only when you are running in the dev environment
debugEnv=os.environ['SERVER_SOFTWARE'].startswith('Dev')
if debugEnv:
patch_appengine()
Read the TOS (Term Of Service) you might be in violation
2009/7/13 alf :
>
> Hi all,
>
> wath is the best practices to share data between two application ids.
>
> obviosly we are speaking data on one application´s datastore
>
> best regards
> >
>
--~--~-~--~~~---~--~-
You can a few of these things by integrating http://shell.appspot.com
into your application
2009/7/15 JoeM :
>
> Hi All,
>
> Does anyone know of a datastore utility that can do the following
> things:
>
> 1) Run on a developers machine accessing the local datastore.
> 2) Test the integrity of a
Do you have these lines at the end of your handler.py file
if __name__ == "__main__":
main()
2009/7/18 David Goehrig :
> Google AppEngineers,
> I'm experiencing a prolonged annoyance that started with my second google
> app engine app. What is happening is that the handler for the main page
If my memory is correct Bret Slatkin talked about these type of
queries in a I/O 2009 presentation. You don't need a composite index
for this type of query. It uses the single property indexes.
You have to write your code to deal with TimeOut Exceptions.
You can retry the read when you get a Time
If every GAE page was written for the python starter it would be a big book.
You could follow this link
http://lmgtfy.com/?q=PYTHONPATH
2009/7/25 Holger :
>
> Finally got data_upload working.
>
> This Google explanation
> http://code.google.com/appengine/docs/python/tools/uploadingdata.html
> ma
's article was there
first but you speak in the present time.
Learning people how to find information is much more valuable then
giving it on a plate.
2009/7/25 Holger :
>
> By the way
>
> that funny tool of djidjadji
> http://lmgtfy.com/?q=PYTHONPATH
>
> is a sample how
You can write a property that stores a dictionary. Search this list
and the Appengine-Cookbook.
The method is converting the dictionary with the pickle module or the
simple JSON module to text and store it in a TextProperty or
BlobProperty. And when needed 'decode' it.
2009/7/26 Bob :
>
> Hi,
>
On GAE you can only run pure Python and pure Java code. No C or C++
code is allowed.
Some people have managed to get a PHP implementation running on the Java VM.
2009/7/25 ni :
>
> Hi team,
> i am evaluating google appengine for creating an application and was
> wondering if there is a way to hos
Is the GAE SDK causing more harddisk failures then average?
Am I at risk having the SDK on my harddisk?
I have it now for almost a year on my computer.
Possible solutions for all coders losing there code.
1) use an SVN/GIT/SCCS/CVS/RCS/... version control system, repository
on a different compute
Another solution proposed in this group was to put the "appcfg.py
update myappdir" in a script/batch file and before the appcfg.py call
a commandline version of a zip tool that zips up the whole myappdir
(except *.pyc files).
Move the file to myappdir.
In a static file directory, or create a handl
You can have a look at the web based archive of this group and see if
the message is there.
The link is the last one in every signature.
2009/7/31 Martyn Cutcher :
>
> Hi there,
>
> I sent a post to the discussion forum yesterday and it still hasn't
> appeared. I believe it was titled something
why do you skip app.yaml and index.yaml?
2009/7/31 Shawn A. :
>
> Hi,
>
> I am just getting into google app engines. After pushing my app up to
> production i am getting a 500 error when i hit
> my application url. Nothing but requests show up in the logs. So i
> commented out everything but the
You should move your remote_api handler to the top.
It will never be called because the handler above it has the regex "/.*"
2009/8/1 Shawn A. :
>
> Hello Holger,
>
> Wow! I could have stared at the file for hours and not noticed that.
> sometimes all you need is another pair of eyes. Thank you
>
The string you want to store contains characters that are not in the
ascii range 0..127.
You string uses some encoding, like utf-8 or iso8859-
You must tell in your bulkloader that it is not a byte string, but a
string with a certain encoding.
Use a lambda function that converts it to a unicode us
Does this work?
{%for key in dictionary %}
{{key}}:{{display.key}}
{%endfor%}
2009/8/3 oscarWu :
>
> I wanna put my dicitonary object on template
> sth more like
>
>
>
> {%for value,key in dictionary.items%}
> display key:display value
> {%endfor%}
>
>
>
> but my1 doesnt word, any1
You must not put this yaml file in a directory for static content.
You can't open these static files with python/java code
2009/8/2 VKM :
>
> Hi,
>
> I am writing a yaml configuration file for my application. This config
> file will contain few static settings (eg. drop down menu options). I
> ma
if you key list is larger then 1000 items it will be a problem (hard limit).
if you partition the db.get() for n*100 keys at the time it will not
be a problem.
For n=3 it should work. ( I might remember reading the number 300
sometime in this list for db.get() )
2009/8/4 Oliver Zheng :
>
> I have
>> that they can modify the file and can update the content without
>> worrying about Python code.
>>
>> Regards,
>> VKM
>>
>> On Aug 4, 4:50 pm, djidjadji wrote:
>>
>> > You must not put this yaml file in a directory for static content.
>&g
In the beginning of Appengine some objects got lost in the index.
The solution was get the object by key and put() it again.
This solved it for some people who where missing objects with a query
that has a filter.
If you don't know the key of the object, page over all keys of that
object type and
probably not, from the Python 2.5 manual
--
hasattr( object, name)
The arguments are an object and a string. The result is True if the
string is the name of one of the object's attributes, False if not.
(This is implemented by calling getattr(object, name) and seeing
whether it r
The reference property contains the Key of the object referred to.
You can get this key with
key = MyModel.assigned.get_value_for_datastore(obj2)
obj1 = db.get(key)
if obj is None:
pass # invalid reference
Or you can put a "try: except" around the code and as such find out if
the object exis
Some have been reported here in this group.
2009/8/18 Joshua Smith :
>
> Cool, thanks.
>
> What's the best way to report documentation bugs?
>
> >
>
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups
"Google App Engine
http://code.google.com/appengine/docs/python/tools/webapp/requestclass.html#Request_url
2009/8/20 Bob :
>
> Hi,
>
> I wonder how to write the python to get what the exact url that the
> user is trying to get in my appengine.
>
> Thanks,
> Bob
> >
>
--~--~-~--~~~---~--
There is a small bug in the SDK version of the DataViewer
in the file google_appengine/google/appengine/ext/admin/__init__.py
in class DatastoreQueryHandler(DatastoreRequestHandler): the get()
handler around line 665 (SDK 1.2.3).
The page_start variable can be a float, the range() call a few line
All GAE servers have GMT/UTC as there current time.
The times across different servers may very a few seconds because they
are distributed.
2009/8/20 herbie <4whi...@o2.co.uk>:
>
> How do I calculate the elapsed time since model instance was first
> stored in the datastore. My model has a prop
Have a look at this article
http://code.google.com/appengine/articles/images.html
It shows how to do it with images but other file types stored in GAE
objects can be served the same way.
Did you succeed to store the file in a GAE object?
2009/8/21 S K :
> Hi All, I have one form
Every object can have a ReferenceProperty that points to One (1) object.
There is no limit to the number of references to an object.
2009/8/23 Devel63
>
> Is there a limit to the number of entities that can reference a given
> entity?
>
> For example,
>
> class Class1(db.Model):
> prop1 : db
Your query will probably fetch more then 25 Action objects. Fetching
all those Keys is fast. Fetching all the complete objects is slow, you
fetch a lot more then you need.
If you iterate over the GQL query, no fetch, that requests full Action
objects (SELECT * FROM ACTION...), the objects wil
Every "a.project" statement results in a db.get() operation.
Try to batch get() the project_key cache misses, and then set_multi()
these in memcache.
Put/Copy the project.active and project.deleted booleans in the Action object.
Then you can use them in the query and just fetch 25 Action objects
If it is about response time I think the normal-fetch(3) is faster.
Only one call to the datastore, objects are fetched and converted to
python-objects in parallel.
If you also want to optimize the CPU-ms it depends on the size of the objects.
Writing a test is the only way to know for your type
No difference, if both objects have the same number and type of attributes.
The index scan time is independent of the number of entries in the index.
2009/8/25 Juraj Vitko :
>
> There is a KindA with 1,000 entities, and a KindB with 1,000,000
> entities.
>
> Query is run to find 10 entities in ea
101 - 200 of 550 matches
Mail list logo