Projects:Upgrade Hibernate/QA
Testing
Some new automatic tests have been added to cover some specific behaviors:
- Usage of OB Context objects as query parameters
- Hibernate nullability check
- Proxies behavior
- Eviction of BaseOBObjects
All these new tests have been included in the existing DalTest.
Together with this, all the existing test infrastructure in CI should help to ensure that everything continues working as expected.
Performance
The performance tests have been focused in ensuring that the Hibernate upgrade does not introduce performance regressions in:
- Amount of memory heap consumed by the Hibernate's Session Factory
- The number of queries executed is not increased
To measure this, it has been compared the differences when using Hibernate 3.6 against Hibernate 5.3 with its different batch fetch styles. The results are summarized in the following sheet.
At at first stage, the PADDING style seemed to be the best option, but due to a bug in Hibernate this strategy was discarded. Therefore, we have decided to keep the same behavior in the batch fetching strategy by using the LEGACY style.
Besides, we have performed some profiling in order to make sure that:
- The time spent in executing some particular operations is not increased
- The number of objects being used is not increased
For the profiling we have use the same test both with Hibernate 3.6 and Hibernate 5.3. The profiling snapshots can be found here:
Code Review
https://docs.google.com/spreadsheets/d/17yeYflddoMJmsQ3lCKiUf1oJ_HZ1sx8xXMs4dfjTUY4/edit#gid=0