Why are you using index type FULLTEXT for a Long data type? That should be 
SORTED I think. 

> On 13 Nov 2020, at 09:57, Lieuwe <lieuwe.elger...@novatiq.com> wrote:
> 
> Gangaiah - this will reproduce what I am seeing:
> 
> #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
> #include <ignite/ignite_configuration.h>
> #include <ignite/ignition.h>
> #include <chrono>
> 
> #define CACHE_SIZE 100000
> #define CHRONO_MS std::chrono::duration_cast<std::chrono::milliseconds>
> 
> struct DataObject
> {
>    int64_t A, B, C;
>    ignite::Guid D;
> };
> 
> namespace ignite::binary
> {
>    template<>
>    struct BinaryType<DataObject> : BinaryTypeDefaultAll<DataObject>
>    {
>        static void GetTypeName(std::string &typeName) { typeName = "TEST";
> }
> 
>        static void Write(BinaryWriter& writer, const DataObject& obj)
>        {
>            writer.WriteInt64("A", obj.A);
>            writer.WriteInt64("B", obj.B);
>            writer.WriteInt64("C", obj.C);
>            writer.WriteGuid("D", obj.D);
>        }
> 
>        static void Read(BinaryReader& reader, DataObject& obj)
>        {
>            obj.A = reader.ReadInt64("A");
>            obj.B = reader.ReadInt64("B");
>            obj.C = reader.ReadInt64("C");
>            obj.D = reader.ReadGuid("D");
>        }
>    };
> }
> 
> int main(int arc, char* argv[])
> {
>    ignite::IgniteConfiguration cfg;
>    cfg.springCfgPath = "/tmp/ignite.xml";
>    ignite::Ignition::Start(cfg);
> 
>    ignite::cache::Cache<int64_t, DataObject> DataCache =
>            ignite::Ignition::Get().GetCache<int64_t, DataObject>("TEST");
> 
>    DataObject dataOb;
> 
>    auto time0 = std::chrono::high_resolution_clock::now();
> 
>    for(int64_t x=1;x<=CACHE_SIZE;x++)
>    {
>        dataOb.A = x;
>        DataCache.Put(x, dataOb);
>    }
> 
>    auto time1 = std::chrono::high_resolution_clock::now();
> 
>    std::cout << "Put: " << CACHE_SIZE*1000/CHRONO_MS(time1 - time0).count()
> <<" per sec" << std::endl;
> 
>    for(int64_t x=1;x<=CACHE_SIZE;x++)
>    {
>        DataObject newDataOb = DataCache.Get(x);
>        assert(newDataOb.A == x);
>    }
> 
>    auto time2 = std::chrono::high_resolution_clock::now();
> 
>    std::cout << "Get: " << CACHE_SIZE*1000/CHRONO_MS(time2 - time1).count()
> <<" per sec" << std::endl;
> 
>    ignite::cache::query::SqlFieldsQuery query1("SELECT A, B, C, D FROM TEST
> WHERE _key = ?");
> 
>    for(int64_t x=1;x<=CACHE_SIZE;x++)
>    {
>        query1.AddArgument<int64_t>(x);
>        ignite::cache::query::QueryFieldsCursor cursor =
> DataCache.Query(query1);
>        assert(cursor.IsValid() && cursor.HasNext());
>        query1.ClearArguments();
>    }
> 
>    auto time3 = std::chrono::high_resolution_clock::now();
> 
>    std::cout << "Select1: " << CACHE_SIZE*1000/CHRONO_MS(time3 -
> time2).count() << " per sec" << std::endl;
> 
>    ignite::cache::query::SqlFieldsQuery query2("SELECT A, B, C, D FROM TEST
> WHERE A = ?");
> 
>    for(int64_t x=1;x<=1000;x++)
>    {
>        query2.AddArgument<int64_t>(x);
>        ignite::cache::query::QueryFieldsCursor cursor =
> DataCache.Query(query2);
>        assert(cursor.IsValid() && cursor.HasNext());
>        query2.ClearArguments();
>    }
> 
>    auto time4 = std::chrono::high_resolution_clock::now();
> 
>    std::cout << "Select2: " << 1000*1000/CHRONO_MS(time4 - time3).count()
> <<" per sec" << std::endl;
> 
>    ignite::Ignition::StopAll(false);
> 
>    return 0;
> }
> 
> 
> 
> The xml I use looks like this:
> 
>        <property name="cacheConfiguration">
>            <list>
>                <bean
> class="org.apache.ignite.configuration.CacheConfiguration">
>                    <property name="name" value="TEST"/>
>                    <property name="cacheMode" value="PARTITIONED"/>
>                    <property name="atomicityMode" value="TRANSACTIONAL"/>
>                    <property name="writeSynchronizationMode"
> value="FULL_SYNC"/>
> 
>                    <property name="queryEntities">
>                        <list>
>                            <bean
> class="org.apache.ignite.cache.QueryEntity">
>                                <property name="keyType"
> value="java.lang.Long"/>
>                                <property name="valueType" value="TEST"/>
> 
>                                <property name="fields">
>                                    <map>
>                                        <entry key="A"
> value="java.lang.Long"/>
>                                        <entry key="B"
> value="java.lang.Long"/>
>                                        <entry key="C"
> value="java.lang.Long"/>
>                                        <entry key="D"
> value="java.util.UUID"/>
>                                    </map>
>                                </property>
> 
>                                <property name="indexes">
>                                    <list>
>                                        <bean
> class="org.apache.ignite.cache.QueryIndex">
>                                            <property name="fields">
>                                                <map>
>                                                    <entry key="A"
> value="true"/>
>                                                </map>
>                                            </property>
>                                            <property name="indexType"
> value="FULLTEXT"/>
>                                        </bean>
>                                    </list>
>                                </property>
>                            </bean>
>                        </list>
>                    </property>
>                </bean>
>            </list>
>        </property>
> 
> 
> 
> 
> 
> 
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/


Reply via email to