Project:
View Revisions: Issue #37115 | [ All Revisions ] [ Back to Issue ] | ||
Summary | 0037115: HQL constant parsing causes contention | ||
Revision | 2017-10-19 14:13 by alostale | ||
Description | With high concurrency contention at JVM level occurs when Hibernate is creating AST tree for queries at at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:187) at org.hibernate.util.ReflectHelper.getConstantValue(ReflectHelper.java:266) This is caused because HQL allows to include Java constant values, to determine whether a token is or not a constant it performs a classForName whenever it includes a dot, which finally reaches a synchronized block causing this contention. More info here [1]. This is a Hibernate issue HHH-4959 that's fixed starting from 5.2.6 and HHH-11377 (5.2.7). --- [1] https://vladmihalcea.com/2016/12/14/the-performance-penalty-of-class-forname-when-parsing-jpql-and-criteria-queries/ [^] |
||
Revision | 2017-10-19 14:12 by alostale | ||
Description | With high concurrency contention at JVM level occurs when Hibernate is creating AST tree for queries at at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:187) at org.hibernate.util.ReflectHelper.getConstantValue(ReflectHelper.java:266) This is caused because HQL allows to include Java constant values, to determine whether a token is or not a constant it performs a classForName whenever it includes a dot, which finally reaches a synchronized block causing this contention. More info [[https://vladmihalcea.com/2016/12/14/the-performance-penalty-of-class-forname-when-parsing-jpql-and-criteria-queries/ [^] |here]]. This is a Hibernate issue HHH-4959 that's fixed starting from 5.2.6 and HHH-11377 (5.2.7). |
||
Revision | 2017-10-19 14:09 by alostale | ||
Description | With high concurrency contention at JVM level occurs when Hibernate is creating AST tree for queries at at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:187) at org.hibernate.util.ReflectHelper.getConstantValue(ReflectHelper.java:266) This is caused because HQL allows to include Java constant values, to determine whether a token is or not a constant it performs a classForName whenever it includes a dot, which finally reaches a synchronized block causing this contention. More info here [1]. This is a Hibernate issue HHH-4959 that's fixed starting from 5.2.6 and HHH-11377 (5.2.7). --- [1] https://vladmihalcea.com/2016/12/14/the-performance-penalty-of-class-forname-when-parsing-jpql-and-criteria-queries/ [^] |
||
Revision | 2017-10-19 14:07 by alostale | ||
Description | With high concurrency contention at JVM level occurs when Hibernate is creating AST tree for queries at at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:187) at org.hibernate.util.ReflectHelper.getConstantValue(ReflectHelper.java:266) This is caused because HQL allows to include Java constant values, to determine whether a token is or not a constant it performs a classForName whenever it includes a dot, which finally reaches a synchronized block causing this contention. This is a Hibernate issue HHH-4959 that's fixed starting from 5.2.6 and HHH-11377 (5.2.7). |
||
Revision | 2017-10-19 13:12 by alostale | ||
Description | With high concurrency contention at JVM level occurs when Hibernate is creating AST tree for queries at at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:187) at org.hibernate.util.ReflectHelper.getConstantValue(ReflectHelper.java:266) This is caused because HQL allows to include Java constant values, to determine whether a token is or not a constant it performs a classForName which finally reaches a synchronized block causing this contention. This is a Hibernate issue HHH-4959 that's fixed starting from 5.2.6 and HHH-11377 (5.2.7). |
||
Revision | 2017-10-19 13:11 by alostale | ||
Description | With high concurrency contention at JVM level occurs when Hibernate is creating AST tree for queries at at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:187) at org.hibernate.util.ReflectHelper.getConstantValue(ReflectHelper.java:266) This is caused because HQL allows to include Java constant values, to determine whether a token is or not a constant it performs a classForName which finally reaches a synchronized block causing this contention. This is a Hibernate issue HHH-4959 that's fixed starting from 5.2.6 and HHH-11377 (5.2.7). |
Copyright © 2000 - 2009 MantisBT Group |