Anonymous | Login
Project:
RSS
  
News | My View | View Issues | Roadmap | Summary

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
Powered by Mantis Bugtracker