Any pointers please Thanks Rajesh
On 5 Feb 2018 10:53 p.m., "Rajesh Kishore" <rajesh10si...@gmail.com> wrote: > Hi Christos > > Does that mean Ignite cannot scale well against Berkley dB Incase of > single node? > > Regards > Rajesh > > On 5 Feb 2018 10:08 p.m., "Christos Erotocritou" <chris...@gridgain.com> > wrote: > >> Hi Rajesh, >> >> Ignite is a distributed system, testing with one node is really not the >> way. >> >> You need to consider having multiple nodes and portion and collocate your >> data before. >> >> Thanks, >> C >> >> On 5 Feb 2018, at 16:36, Rajesh Kishore <rajesh10si...@gmail.com> wrote: >> >> Hi, >> >> We are in the process of evaluating Ignite native persistence against >> berkely db. For some reason Ignite query does not seem to be performant the >> way application code behaves against berkley db >> >> Background: >> Berkley db - As of now, we have berkley db for our application and the >> data is stored as name value pair as byte stream in the berkley db's native >> file system. >> >> Ignite DB - We are using Ignite DB's native persistence file system. >> Created appropriate index and retrieving data using SQL involving multiple >> joins. >> >> Ignite configuration : with native persistence enabled , only one node >> >> Data: As of now in the main table we have only *.1 M records *and in >> supporting tables we have around 2 million records >> >> Ignite sql query used >> >> SELECT f.entryID,f.attrName,f.attrValue, f.attrsType FROM >> ( select st.entryID,st.attrName,st.attrValue, st.attrsType from >> (SELECT at1.entryID FROM "objectclass".Ignite_ObjectClass >> at1 WHERE at1.attrValue= ? ) t >> INNER JOIN >> "Ignite_DSAttributeStore".IGNITE_DSATTRIBUTESTORE st ON >> st.entryID = t.entryID WHERE st.attrKind IN ('u','o') >> ) f >> INNER JOIN (SELECT entryID from "dn".Ignite_DN where parentDN like ? >> ) dnt ON f.entryID = dnt.entry >> >> The corresponding EXPLAIN PLAN >> >> >> >> [[SELECT >> F__Z3.ENTRYID AS __C0_0, >> F__Z3.ATTRNAME AS __C0_1, >> F__Z3.ATTRVALUE AS __C0_2, >> F__Z3.ATTRSTYPE AS __C0_3 >> FROM ( >> SELECT >> ST__Z2.ENTRYID, >> ST__Z2.ATTRNAME, >> ST__Z2.ATTRVALUE, >> ST__Z2.ATTRSTYPE >> FROM ( >> SELECT >> AT1__Z0.ENTRYID >> FROM "objectclass".IGNITE_OBJECTCLASS AT1__Z0 >> WHERE AT1__Z0.ATTRVALUE = ?1 >> ) T__Z1 >> INNER JOIN "Ignite_DSAttributeStore".IGNITE_DSATTRIBUTESTORE ST__Z2 >> ON 1=1 >> WHERE (ST__Z2.ATTRKIND IN('u', 'o')) >> AND (ST__Z2.ENTRYID = T__Z1.ENTRYID) >> ) F__Z3 >> /* SELECT >> ST__Z2.ENTRYID, >> ST__Z2.ATTRNAME, >> ST__Z2.ATTRVALUE, >> ST__Z2.ATTRSTYPE >> FROM ( >> SELECT >> AT1__Z0.ENTRYID >> FROM "objectclass".IGNITE_OBJECTCLASS AT1__Z0 >> WHERE AT1__Z0.ATTRVALUE = ?1 >> ) T__Z1 >> /++ SELECT >> AT1__Z0.ENTRYID >> FROM "objectclass".IGNITE_OBJECTCLASS AT1__Z0 >> /++ "objectclass".OBJECTCLASSNDEXED_ATTRVAL_IDX: ATTRVALUE = >> ?1 ++/ >> WHERE AT1__Z0.ATTRVALUE = ?1 >> ++/ >> INNER JOIN "Ignite_DSAttributeStore".IGNITE_DSATTRIBUTESTORE ST__Z2 >> /++ "Ignite_DSAttributeStore".IGNITE_DSATTRIBUTESTORE_ENTRYID_IDX: >> ENTRYID = T__Z1.ENTRYID ++/ >> ON 1=1 >> WHERE (ST__Z2.ATTRKIND IN('u', 'o')) >> AND (ST__Z2.ENTRYID = T__Z1.ENTRYID) >> */ >> INNER JOIN ( >> SELECT >> __Z4.ENTRYID >> FROM "dn".IGNITE_DN __Z4 >> WHERE __Z4.PARENTDN LIKE ?2 >> ) DNT__Z5 >> /* SELECT >> __Z4.ENTRYID >> FROM "dn".IGNITE_DN __Z4 >> /++ "dn".EP_DN_IDX: ENTRYID IS ?3 ++/ >> WHERE (__Z4.ENTRYID IS ?3) >> AND (__Z4.PARENTDN LIKE ?2): ENTRYID = F__Z3.ENTRYID >> */ >> ON 1=1 >> WHERE F__Z3.ENTRYID = DNT__Z5.ENTRYID >> ORDER BY 1], [SELECT >> __C0_0 AS ENTRYID, >> __C0_1 AS ATTRNAME, >> __C0_2 AS ATTRVALUE, >> __C0_3 AS ATTRSTYPE >> FROM PUBLIC.__T0 >> /* "Ignite_DSAttributeStore"."merge_sorted" */ >> ORDER BY 1 >> /* index sorted */]] >> >> >> Any pointers , how should I proceed , Following is the JFR report for the >> code used >> cursor = cache.query(new SqlFieldsQuery(query).setEnforceJoinOrder(true); >> cursor.getAll(); >> >> >> <image.png> >> >> >> >> Thanks, >> Rajesh >> >> >>