Added
- Performance and reliability improvements to balance fast-path caching and background persistence.
Changed
- Reduced DB contention and improved fast-path caching semantics for balances to provide more consistent immediate responses under load.
- Withdraw fast-path: added per-key striped locking to prevent concurrent over-reservations.
- Shutdown ordering: background persistence flush now runs before closing JDBC pools to guarantee pending deltas are persisted.
Economy Benchmark Summary
| Plugin | Version | Storage | Redis | Status | Run time (s) | Deposit avg (ms) | Withdraw avg (ms) | Balance/Has avg (ms) | RAM avg (MiB) | RAM peak (MiB) | ? vs EzEconomy baseline |
|---|---|---|---|---|---|---|---|---|---|---|---|
| essentialsx | 2.21.1 | file | off | ok | 1.021 | 0.483072 | 0.276326 | 0.005248 | 465.76 | 466.50 | N/A |
| ezeconomy | 3.1.2 | mysql | off | ok | 0.090 | 0.008794 | 0.007697 | 0.004436 | 415.20 | 415.50 | 1.00x deposit |
| ezeconomy | 3.1.2 | mysql | on | ok | 0.098 | 0.012991 | 0.008751 | 0.004505 | 405.67 | 406.02 | 1.48x deposit |
| ezeconomy | 3.1.2 | sqlite | off | ok | 0.034 | 0.008090 | 0.003718 | 0.003299 | 420.58 | 420.78 | 1.00x deposit |
| ezeconomy | 3.1.2 | sqlite | on | ok | 0.036 | 0.007114 | 0.004541 | 0.003127 | 447.34 | 447.37 | 0.88x deposit |
| xconomy | 2.26.3 | mysql | off | ok | 0.547 | 0.164429 | 0.129993 | 0.191681 | 465.28 | 467.52 | 18.70x deposit |
| xconomy | 2.26.3 | sqlite | off | ok | 0.290 | 0.109194 | 0.061594 | 0.080283 | 428.20 | 430.39 | 13.50x deposit |
Bank Operation Benchmarks
| Plugin | Version | Storage | Redis | Status | Run time (s) | BankDeposit avg (ms) | BankWithdraw avg (ms) | BankBalance/Has avg (ms) | RAM avg (MiB) | RAM peak (MiB) |
|---|---|---|---|---|---|---|---|---|---|---|
| essentialsx | 2.21.1 | file | off | skipped (Vault bank API not supported by this economy provider) | N/A | N/A | N/A | N/A | N/A | N/A |
| ezeconomy | 3.1.2 | mysql | off | ok | 3.330 | 1.225967 | 1.153788 | 0.567417 | 449.95 | 458.75 |
| ezeconomy | 3.1.2 | mysql | on | ok | 3.090 | 1.122824 | 1.078041 | 0.516253 | 440.06 | 448.27 |
| ezeconomy | 3.1.2 | sqlite | off | ok | 2.126 | 0.960253 | 0.838308 | 0.061351 | 463.86 | 469.28 |
| ezeconomy | 3.1.2 | sqlite | on | ok | 1.864 | 0.827309 | 0.747836 | 0.064934 | 490.66 | 496.37 |
| xconomy | 2.26.3 | mysql | off | skipped (Vault bank API not supported by this economy provider) | N/A | N/A | N/A | N/A | N/A | N/A |
| xconomy | 2.26.3 | sqlite | off | skipped (Vault bank API not supported by this economy provider) | N/A | N/A | N/A | N/A | N/A | N/A |
-
Configuration: moved MySQL tuning keys into
performance.mysqlin the mainconfig.yml. The plugin now prefersperformance.mysql.*with fallbacks tomysql.*inconfig-mysql.yml; documentation and default configs were updated. -
Added MySQL tuning options and safer defaults: background persistence batching/queueing settings and additional Hikari pool tuning keys (
leak-detection-threshold-ms,validation-timeout-ms,initialization-fail-timeout-ms,auto-commit). JDBC params now include UTF-8 encoding by default. -
Security:
/ecocommand permissions tightened. New granular permission nodes added:ezeconomy.eco.give,ezeconomy.eco.take,ezeconomy.eco.set,ezeconomy.eco.gui(GUI opens requireezeconomy.eco.gui), andezeconomy.ecoremains the umbrella admin node. Console execution still allowed.
Fixed
- Race conditions where multiple concurrent withdraws could exceed the persisted balance.
- Background flush failures during shutdown caused by closed connections.