Hi Igniters, I have a 6 node cluster with one partitioned cache and one replicated cache.
I run a join query on the two caches with a few indexes defined, but ignite is not using an index for the query - <bean class="org.apache.ignite.configuration.CacheConfiguration"> <property name="name" value="SHOP_ITEM_BITMAP_CACHE" /> <property name="eagerTtl" value="false"/> <property name="copyOnRead" value="false"/> <property name="atomicityMode" value="ATOMIC"/> <property name="backups" value="0"/> <property name="memoryMode" value="ONHEAP_TIERED"/> <property name="offHeapMaxMemory" value="0"/> <property name="swapEnabled" value="false"/> <property name="evictionPolicy"> <bean class="org.apache.ignite.cache.eviction.fifo.FifoEvictionPolicy"> <property name="maxSize" value="30500000"/> </bean> </property> <property name="cacheMode" value="PARTITIONED" /> <property name="affinity"> <bean class="org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction"> <property name="partitions" value="64"/> </bean> </property> <property name="cacheStoreFactory"> <bean class="javax.cache.configuration.FactoryBuilder$SingletonFactory"> <constructor-arg> <bean class="com.nielsen.poc.aggregation.ignite.datagrid.store.ShopItemBitmapStore"> </bean> </constructor-arg> </bean> </property> <property name="readThrough" value="true" /> <property name="queryEntities"> <list> <bean class="org.apache.ignite.cache.QueryEntity"> <property name="keyType" value="com.nielsen.poc.aggregation.ignite.datagrid.model.ShopItemBitmapKey" /> <property name="valueType" value="com.nielsen.poc.aggregation.ignite.datagrid.model.ShopItemBitmap" /> <property name="fields"> <map> <entry key="id" value="java.lang.Integer" /> <entry key="sid_per_id" value="java.lang.Integer" /> <entry key="sid_mah_id" value="java.lang.Integer" /> <entry key="sid_itm_id" value="java.lang.Integer" /> <entry key="sid_prm_id" value="java.lang.Integer" /> <entry key="sid_cha_code" value="java.lang.String" /> <entry key="sid_service" value="java.lang.String" /> <entry key="sid_itm_dist" value="java.lang.String" /> <entry key="category" value="java.lang.String" /> </map> </property> <property name="indexes"> <list> <bean class="org.apache.ignite.cache.QueryIndex"> <constructor-arg value="category" /> </bean> </list> </property> </bean> </list> </property> </bean> <bean class="org.apache.ignite.configuration.CacheConfiguration"> <property name="name" value="MARKET_POD_ACV_CACHE" /> <property name="copyOnRead" value="false"/> <property name="eagerTtl" value="false"/> <property name="atomicityMode" value="ATOMIC"/> <property name="backups" value="0"/> <property name="memoryMode" value="ONHEAP_TIERED"/> <property name="offHeapMaxMemory" value="0"/> <property name="evictionPolicy"> <bean class="org.apache.ignite.cache.eviction.fifo.FifoEvictionPolicy"> <property name="maxSize" value="21000"/> </bean> </property> <property name="swapEnabled" value="false"/> <property name="cacheMode" value="REPLICATED" /> <property name="cacheStoreFactory"> <bean class="javax.cache.configuration.FactoryBuilder$SingletonFactory"> <constructor-arg> <bean class="com.nielsen.poc.aggregation.ignite.datagrid.store.MarketPodAcvStore"> </bean> </constructor-arg> </bean> </property> <property name="readThrough" value="true" /> <property name="queryEntities"> <list> <bean class="org.apache.ignite.cache.QueryEntity"> <property name="keyType" value="java.lang.Integer" /> <property name="valueType" value="com.nielsen.poc.aggregation.ignite.datagrid.model.MarketPodAcv" /> <property name="fields"> <map> <entry key="id" value="java.lang.Integer" /> <entry key="mrkt_key" value="java.lang.Integer" /> <entry key="prd_id" value="java.lang.Integer" /> <entry key="chld_mrkt_key" value="java.lang.Integer" /> </map> </property> <property name="indexes"> <list> <bean class="org.apache.ignite.cache.QueryIndex"> <constructor-arg index="0"> <list> <value>mrkt_key</value> <value>prd_id</value> <value>chld_mrkt_key</value> </list> </constructor-arg> <constructor-arg index="1" value="SORTED"/> </bean> <bean class="org.apache.ignite.cache.QueryIndex"> <constructor-arg value="chld_mrkt_key" /> </bean> </list> </property> </bean> </list> </property> </bean> the query is - SELECT distinct sid_per_id, sid_mah_id, sid_itm_id, sid_prm_id, sid_cha_code, sid_service, sid_itm_dist FROM ShopItemBitmap as bitmap JOIN \"" + MRKT_POD_ACV_CACHE + "\".MarketPodAcv as mkt ON bitmap.SID_MAH_ID = mkt.CHLD_MRKT_KEY and bitmap.SID_PER_ID = mkt.prd_id and bitmap.category = '"+category+"'" WHERE mkt.prd_id = "+period and mkt.MRKT_KEY = "+market its not using the index on the field "category" in ShopItemBitmap cache. This query runs for more that 20 secs for a case when the number of records in the results is more than 900,000 records. I want it to return in < 5 secs. I have colocated the records in ShopItemBitmap cache based on category field. Thanks, Arthi -- View this message in context: http://apache-ignite-users.70518.x6.nabble.com/Why-does-ignite-not-use-an-index-tp4057.html Sent from the Apache Ignite Users mailing list archive at Nabble.com.