major
minor
minor
#27027
Declarative forms: SelectField disappears after upload if option list depends on mandatory property
#27042
MaintenanceJspBase should write to the log first, then to the client, instead of the other way around.
enhancement
When using TL-Sync with large amounts of data, we've noticed that it can be very slow at times and could likely be significantly optimized.
By “large amounts of data,” we mean changesets with about one million changes.
Improvement
The sending process has been optimized. Previously, sending a changeset with 1,800,000 changes took 6 hours. After the optimization, it now takes only 2.5 minutes. That is perfectly sufficient. Specifically, the following optimizations were implemented:
- A quadratic complexity issue in filtering out changes that should not be sent was resolved.
- Ticket #27057: A database query is no longer made for each object.
- Ticket #27063: ClassLoader.loadClass(String) is no longer called for each object.
- The tl:KBDataProducerTask now logs whether progress was made in the event of errors.
Test
No automated test. It can be tested manually in the Kafka demo with some effort:
- Reconfigure the Kafka demo to use MySQL.
- H2 appears to cause extreme performance issues starting at around one million objects.
- Start the Kafka Demo.
- Disable the tl:KBDataProducerTask in the SchedulerGUI.
- Use the "Create Many Objects" button to generate a large changeset.
- Restart the application to clear all tl:KnowledgeBase caches.
- Reactivate the task above.
- Measure how long the task takes to transfer the objects.