This Week in OpenNMS: Wading Into the (Connection) Pool
by Benjamin Reed: March 7, 2011
It’s time for This Week in OpenNMS. In the last week we worked on JRobin, connection pooling, the Page Sequence Monitor, and event-related code.
- 1.8: Current Release is 1.8.10 (Loggerhead Shrike)
1.8.10 is the current stable release, tagged 24 February, 2011. For a complete list of changes and updates, see the “New and Noteworthy” page on the OpenNMS wiki. As always, it is recommended that you back up your database before upgrading. A large number of bugs were fixed since 1.8.7, it is highly recommended that you upgrade to this release.
- 1.9: Current release is 1.9.6 (Barbat)
1.9.6 is the current unstable release, tagged 24 February, 2010. This release is not recommended for production use, but for developers and users who want to try out the very latest features.
- Ben spent some time doing optimization and cleaning up bugs found by FindBugs.
- Seth worked on integration/unit tests for the web UI, using the page sequence monitor.
- Ben and Craig worked on the JRobin codebase some more.
- [JRB-16] – RrdCommander “graph” command hopelessly broken
- [NMS-3826] – Provisioning a node with RANCID enabled caused error if rancid group does not exist
- [NMS-4388] – Remove c3p0 dependencies from installer code so we can change the DB connection pooling implementation
- [NMS-4473] – Remote Polling documentation is confusing
- [NMS-4484] – PageSequenceMonitor double-URL-encodes query parameters
- [NMS-4489] – All Event creation should use the EventBuilder
- [NMS-4491] – jdbc-datacollection-config.xml has hard coded path for rrdRepository
New Database Connection Pooling
One of our customers has a large number of remote pollers reporting in (about 3000 of them, which translates to each of them reporting in every 30 seconds with some kind of poll data). In doing thread dumps, we saw that a large majority of threads were just waiting to return a connection. C3P0, our current connection pooling implementation, is rather long in the tooth and predates newer, smarter, thread-contention algorithms. This last week, I refactored the database connection code to allow alternative implementations of connection pooling, and created an implementation that uses DBPool, a nice modern connection pooling implementation.
By default, OpenNMS will continue to use C3P0, but if you are running an OpenNMS 1.9 snapshot later than March 2nd, you can try out the new code. In the latest 1.9 snapshots, you’ll note that the
opennms-datasources.xml file has a new addition: the “connection-pool” tag. To configure connection pooling to use DBPool, just change the factory:
In my quick testing, it feels snappier, but I haven’t had too much time to do proper benchmarks yet. I’d appreciate feedback from folks in the community if they see a performance increase from this.
OpenNMS Users Conference Americas
One of our OGP members, Mike Huot, has been spearheading a campaign to create an OpenNMS Users Conference Americas, on June 17th and 18th at the Unniversity of Minnesota, Twin Cities, just before Dev-Jam 2011. We are still working on finalizing arrangements, but should have this completed by mid-March. The fee will be $65.
We have a minimum threshold of attendees we need to get to before we can hold this event, so please sign up here to register your interest (no fee will be charged) and we can gauge whether we have enough folks to put together the event.
- 26 March 2011: Tarus to keynote the inaugural Indiana LinuxFest
- 26 through 27 May 2011: OpenNMS Users Conference Europe
- 17 through 18 June 2011: OpenNMS UC Americas (Tentative)
- 19 through 24 June 2011: OpenNMS Dev-Jam 6
Until Next Week…
As always, if there’s anything you’d like me to talk about in a future TWiO, or you just have a comment or criticism that you’d like to share, don’t hesitate to say hi.
Recent News and Events
- OpenNMS Sponsors barCampRDU
- OpenNMS Brings MC Frontalot to SELF
- Tarus Balog and MC Frontalot at Ohio Linuxfest
Subscribe to this site and get the latest project and event updatesSubscribe via RSS