ignite-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Neeraj Bhatt <neerajbhatt2...@gmail.com>
Subject RE: Group index taking too much time
Date Wed, 05 Jul 2017 17:25:34 GMT
Hi Mike

Yes, item has same index.
configured as item 2

We have a cluster of 3 nodes. Item is a partitioned cache with backup as
one.

We are executing queries from a single client.



On 05-Jul-2017 7:46 PM, "Michael Griggs" <michael.griggs@gridgain.com>
wrote:

Hi,

I see that you are referencing "Item" not "Item2" in your SQL query.  Does
"Item" have the same index configured?  Also, please describe your network
topology, how many server and client nodes are you running?

I built a reproducer based on your code, executed your query 5000 times, and
each query takes an average of 140 microseconds :

Executing query...
Query executed.
Execution time for 5000 queries = 700191368ns.  Avg Per Query: 140
microseconds

Kind regards
Mike


-----Original Message-----
From: neerajbhatt [mailto:neerajbhatt2000@gmail.com]
Sent: 05 July 2017 14:18
To: user@ignite.apache.org
Subject: Group index taking too much time

Hi All

We have pushed around 1.4 million item objects (with group index) and with
following query takes around 80 ms (on server), which is way ahead for our
use case. Please suggest

String rating="0";
String review="0";
String download="0";

StringBuilder buff = new StringBuilder("SELECT T._VAL FROM "
                                + "ITEMCACHE.Item as T "
                                + " WHERE  "
                                + " T.rating=? AND T.reviews=? AND
T.downloads=? "
                                + " limit 10");

SqlFieldsQuery qry = new SqlFieldsQuery(buff.toString());

List<List&lt;?>> res = cache.query(qry.setArgs(new
Object[]{rating,review,download})).getAll();

///Item object is

public class Item2 implements Serializable {

        private static final long serialVersionUID = 1L;

        @QuerySqlField(index = true, orderedGroups = {
@QuerySqlField.Group(name = "idx1", order = 2) })
        private int downloads;

        @QuerySqlField(index = true, orderedGroups = {
@QuerySqlField.Group(name = "idx1", order = 0) })
        private double rating;

        @QuerySqlField(index = true, orderedGroups = {
@QuerySqlField.Group(name = "idx1", order = 1) })
        private int reviews;
        @QuerySqlField(index = true)
        @AffinityKeyMapped
        private String id;
        public int getDownloads() {
                return downloads;
        }
        public void setDownloads(int downloads) {
                this.downloads = downloads;
        }
        public double getRating() {
                return rating;
        }
        public void setRating(double rating) {
                this.rating = rating;
        }
        public int getReviews() {
                return reviews;
        }
        public void setReviews(int reviews) {
                this.reviews = reviews;
        }
        public String getId() {
                return id;
        }
        public void setId(String id) {
                this.id = id;
        }
        public static long getSerialversionuid() {
                return serialVersionUID;
        }






--
View this message in context:
http://apache-ignite-users.70518.x6.nabble.com/Group-index-taking-too-much-t
ime-tp14320.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.

Mime
View raw message