Related to post:
http://groups.google.com/group/google-appengine-java/browse_thread/thread/f3fa2b04d2fa6a3

In a test app I have created, I am able to query only 50 rows per
request (for 1 entity with 10 properties only) from the datastore by
using low-level api without getting any warnings for cpu_ms /
api_cpu_ms usage.

However if I try to query more rows (again only 1 entity being
inserted), the cpu gets used for more than 1s thereby generating a
warning or error from GAE.

Stats from GAE log:

To retrieve 50 records -> /viewData.action?offset=0&range=50 200 142ms
861cpu_ms 678api_cpu_ms (everything ok)

To retrieve 100 records -> /viewData.action?offset=0&range=100 200
261ms 1653cpu_ms 1338api_cpu_ms (cpu_ms / api_cpu_ms in red)

Is there a more performant way to query the datastore for more records
in one request? Thanks in advance.

P.S: This is a test app and billing is not enabled.

Code in servlet:

Query query = persistenceManager.newQuery("SELECT FROM " +
                                                                                
 DetailsBean.class.getName());
        query.setOrdering("crDate asc");
        query.setRange(offset, range);

        data = (List<DetailsBean>) query.execute();

Code of Entity bean:

package com.pojo;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.NotPersistent;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class DetailsBean implements Serializable {

        private static final long serialVersionUID = 1L;

        @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Long slno;

        @Persistent
    private long column1;

        @Persistent
    private String column2;

        @Persistent
        private double column3;

        @Persistent
        private double column4;

        @Persistent
        private double column5;

        @Persistent
        private float column6;

        @Persistent
        private double column7;

        @Persistent
        private double column8;

        @Persistent
        private Date crDate;

        @Persistent
    private Date modDate;

        @NotPersistent
        private String message;

        @NotPersistent
        private int n;

        @NotPersistent
        private long offset;

        @NotPersistent
        private long range;

        @NotPersistent
        private List data;


        public DetailsBean() {

        }

        public DetailsBean(long v1, String v2, double v3, double v4, double
v5,
                                                                float v6, 
double v7, double v8) {
                this.column1 = v1;
                this.column2 = v2;
                this.column3 = v3;
                this.column4 = v4;
                this.column5 = v5;
                this.column6 = v6;
                this.column7 = v7;
                this.column8 = v8;
                Date now = new Date();
                this.crDate = now;
                this.modDate = now;
        }

        public Long getSlno() {
                return slno;
        }

        public void setSlno(Long slno) {
                this.slno = slno;
        }

        public long getColumn1() {
                return column1;
        }

        public void setColumn1(long column1) {
                this.column1 = column1;
        }

        public String getColumn2() {
                return column2;
        }

        public void setColumn2(String column2) {
                this.column2 = column2;
        }

        public double getColumn3() {
                return column3;
        }

        public void setColumn3(double column3) {
                this.column3 = column3;
        }

        public double getColumn4() {
                return column4;
        }

        public void setColumn4(double column4) {
                this.column4 = column4;
        }

        public double getColumn5() {
                return column5;
        }

        public void setColumn5(double column5) {
                this.column5 = column5;
        }

        public float getColumn6() {
                return column6;
        }

        public void setColumn6(float column6) {
                this.column6 = column6;
        }

        public double getColumn7() {
                return column7;
        }

        public void setColumn7(double column7) {
                this.column7 = column7;
        }

        public double getColumn8() {
                return column8;
        }

        public void setColumn8(double column8) {
                this.column8 = column8;
        }

        public Date getCrDate() {
                return crDate;
        }

        public void setCrDate(Date crDate) {
                this.crDate = crDate;
        }

        public Date getModDate() {
                return modDate;
        }

        public void setModDate(Date modDate) {
                this.modDate = modDate;
        }

        public String getMessage() {
                return message;
        }

        public void setMessage(String message) {
                this.message = message;
        }

        public int getN() {
                return n;
        }

        public void setN(int n) {
                this.n = n;
        }

        public long getOffset() {
                return offset;
        }

        public void setOffset(long offset) {
                this.offset = offset;
        }

        public long getRange() {
                return range;
        }

        public void setRange(long range) {
                this.range = range;
        }

        public List getData() {
                return data;
        }

        public void setData(List data) {
                this.data = data;
        }
}

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" 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-java?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to