IMK Stall with certain query

#1

Hello,

I am experiencing constant IMK Stall notifications from Java when using certain query:

2015-09-01 16:53:15.785 java[3678:5217999] IMK Stall detected, *please Report* your user scenario in <rdar://problem/16792073> - (imkxpc_deadKeyStateWithReply:) block performed very slowly (4.63 secs)

i am sure it is linked with objectdb as these are thrown each time one particular query is used:

String param = "%"+begining+"%";
CriteriaBuilder cb = DataBase.em.getCriteriaBuilder();
CriteriaQuery<OrderData> query = cb.createQuery(OrderData.class);       
Root<OrderData> order = query.from(OrderData.class);
Predicate p1 = cb.like(cb.lower(order.get("buyerId")), param);
Predicate p2 = cb.like(cb.lower(order.get("buyerName")), param);
query.select(order);
query.where(cb.or(p1, p2));
List<OrderData> orders = DataBase.em.createQuery(query).getResultList();

Is it a known issue? Is there anything i can do?

Thanks.

#2

No such known issue. The query looks fine. It could be slow if you have many orders.

Indexes on buyerId (if not the PK) and buyerName may improve performance.

 

ObjectDB Support
#3

OK, yes quantity is very large, these entities have too many fields and yet worst contains many strings. Primary Key is separate so i can use indexes, thank you for the documentation on this topic, concise and clear as usual.

Thank you support

Reply