Skip to content

Atomikos dynamic pool resizing#250

Closed
rrobetti wants to merge 18 commits intoatomikos:masterfrom
rrobetti:atomikos-dynamic-pool-resizing
Closed

Atomikos dynamic pool resizing#250
rrobetti wants to merge 18 commits intoatomikos:masterfrom
rrobetti:atomikos-dynamic-pool-resizing

Conversation

@rrobetti
Copy link
Copy Markdown

Fixes #249

GuyPardon and others added 18 commits March 12, 2024 13:44
Co-authored-by: rrobetti <7221783+rrobetti@users.noreply.github.com>
Co-authored-by: rrobetti <7221783+rrobetti@users.noreply.github.com>
Co-authored-by: rrobetti <7221783+rrobetti@users.noreply.github.com>
Co-authored-by: rrobetti <7221783+rrobetti@users.noreply.github.com>
Co-authored-by: rrobetti <7221783+rrobetti@users.noreply.github.com>
Co-authored-by: rrobetti <7221783+rrobetti@users.noreply.github.com>
- Replace synchronized with ReentrantLock for virtual thread compatibility
- Add AtomicInteger for thread-safe pool size tracking
- Implement setMinPoolSize(), setMaxPoolSize(), setPoolSizeRange() methods
- Add resetPoolSizes() rollback mechanism as requested
- Update AbstractDataSourceBean to support runtime pool size changes
- Graceful shrinking: never force-close active connections
- Extensive test suite with 15+ test cases including concurrency tests
- INFO level logging for all pool size changes
- Preserve configured values separately from current runtime values

Co-authored-by: rrobetti <7221783+rrobetti@users.noreply.github.com>
- Complete user guide with examples and best practices
- Basic usage, advanced usage, and troubleshooting sections
- JMX integration example
- Auto-scaling integration example
- Migration guide for existing users
- FAQ section
- Performance considerations
- API reference with code examples

Co-authored-by: rrobetti <7221783+rrobetti@users.noreply.github.com>
Deleted analysis documents as requested:
- ANALYSIS_COMPLETION_SUMMARY.txt
- ANALYSIS_README.md
- CONCERNS_AND_QUESTIONS.md
- DYNAMIC_POOL_RESIZING_ANALYSIS.md
- EXECUTIVE_SUMMARY.md
- REVIEW_CHECKLIST.md

Kept:
- DYNAMIC_POOL_RESIZING_USER_GUIDE.md (user documentation)
- README.md (project readme)
- LICENSE.txt (project license)

Co-authored-by: rrobetti <7221783+rrobetti@users.noreply.github.com>
…-pool

Implement dynamic connection pool resizing at runtime with virtual thread support
@CLAassistant
Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.

✅ rrobetti
❌ Copilot
You have signed the CLA already but the status is still pending? Let us recheck it.

@GuyPardon
Copy link
Copy Markdown
Contributor

Thank you! We are reviewing this and have the following question: our current pool design relies on getters of ConnectionPoolProperties to get size info from the datasource bean. Do you see any inconvenience in concentrating most of the changes in a datasource impl instead of in the pool so the design principle is preserved?

@rrobetti
Copy link
Copy Markdown
Author

Thank you! We are reviewing this and have the following question: our current pool design relies on getters of ConnectionPoolProperties to get size info from the datasource bean. Do you see any inconvenience in concentrating most of the changes in a datasource impl instead of in the pool so the design principle is preserved?

@GuyPardon I will have to review this with more time and come back to you.

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.

Allow runtime updates to min and max connection pool limits

5 participants