Skip to content

perf: User delete - deletion handler veto improvement [DHIS2-21725]#24304

Merged
david-mackessy merged 5 commits into
masterfrom
user-delete-veto
Jun 30, 2026
Merged

perf: User delete - deletion handler veto improvement [DHIS2-21725]#24304
david-mackessy merged 5 commits into
masterfrom
user-delete-veto

Conversation

@david-mackessy

@david-mackessy david-mackessy commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Performance improvement

Change FlushMode from AUTO (default) to COMMIT in HibernateIdentifiableObjectStore.existsByUser

  • removes needless dirty checks during user deletes
  • checks were being run for every entity being checked for user association
  • deletion VETOs run first during user delete, so already reading from a correct state (no writes earlier in transaction)
  • only 1 caller of this method - IdObjectDeletionHandler.allowDeleteUser

2 existing tests now need flush before assertions to ensure reading correct state.

Tests

Local performance tests run show times almost halved

  • P95 ~1.4s -> ~0.8s
  • this includes the platform-perf DB having the following data associated with users to ensure that deletion handlers are exercised.
Data Table(s) per user Handler exercised
User settings usersetting 15 UserSettingDeletionHandler
Datastore entries userkeyjsonvalue 15 UserDatastoreDeletionHandler
Data-view OUs userdatavieworgunits 10 cascade cleanup
TEI-search OUs userteisearchorgunits 10 cascade cleanup
Previous passwords previouspasswords 3 cascade cleanup
Interpretations interpretation 5 InterpretationDeletionHandler (null-out)
Messages messageconversation +3 5 message handler (sender/recipient)
Dashboard items dashboarditem +_users 5 DashboardItemDeletionHandler

Next

  • User performance test will be updated to reflect new version of platform-perf DB with User data for deletion handler triggers
  • Upload new version of platform-perf DB with user deletion handler data

@sonarqubecloud

Copy link
Copy Markdown

@david-mackessy david-mackessy marked this pull request as ready for review June 29, 2026 14:05
@david-mackessy david-mackessy merged commit 7051ccf into master Jun 30, 2026
23 checks passed
@david-mackessy david-mackessy deleted the user-delete-veto branch June 30, 2026 07:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants