Hi,

I have a partitioned cache distributed on 5 nodes without replication nor
persistence.
This cache contains 5000 items (id: [passage-0...4999]) of type:
public class SectiePassage implements Serializable {
    @QuerySqlField(index = true)
    public String id;
    @QuerySqlField
    public String sectieId;
    @QuerySqlField(index = true)
    public String passantId;
    /* afgeleidde, hoeft niet te worden bewaard */
    private transient AffinityKey<String> key;

    public SectiePassage(String id, String sectieId, String passantId) {
        this.id = id;
        this.sectieId = sectieId;
        this.passantId = passantId;
    }

    public SectiePassage() {
        
    }

    public AffinityKey<String> key() {
        if (key == null)
            key = new AffinityKey<>(id, sectieId);

        return key;
    }

    public String toString() {
        return this.getClass().getSimpleName() + "[" + id + "](" + key() +
")";
    }
}

This entity is registered with my cache configuration when my client
(mode=true) connects with the cluster using:
setIndexedTypes(String.class,SectiePassage.class);

When the client is connected and executes a SqlQuery:
        SqlQuery sql = new SqlQuery(SectiePassage.class,"id=?");
        List<String> error = new ArrayList<>();
        int found = 0;
        for(int i =0 ;i<5000;i++) {
            if (passageCache.query(sql.setArgs("passage-" +
i)).getAll().size()==0) 
                error.add("passage-" + i);
            else 
                found++;
        }
        System.out.println(error.size() + " not found");
        System.out.println(found + " found");
        System.out.println(passageCache.size(CachePeekMode.ALL) + " total");

The results would be:
4033 not found
967 found
5000 total

A) I expected 5000 found...
B) Also I expected SqlQuery to perform better as a map-reduce looping
through each and every item in the cache on each node locally (both take
approx. equal amount of time)

It seems SqlQuery only considers the data on the node my client is directly
connected with (thus query is not mapped to the other nodes).
What am I doing wrong here and is it normal the SqlQuery performance is not
faster than a simple map-reduce?



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Reply via email to