Hi, I think you will have to ask the Dspace committers why they chose those specific values.
Gary On Mon, Dec 21, 2020, 00:27 Hrafn Malmquist <hrafn.malmqu...@gmail.com> wrote: > Hi Gary > > Thanks for taking the time to respond. > > I hope you can bear with me as I am still learning about database > connection pooling. > > Perhaps I did not ask the question correctly. I am not asking about a site > specific setup but rather what defaults should be shipped with the > software. I am part of the minor version release team. > > Currently, the default setup is a DBCP2 v. 2.1.1 connection pool with > only maxWaitMillis, > maxIdle and maxTotal configurable in the DSpace configuration settings and > the default values for these settings set to 5000, 10 and 30 respectively. > It's unclear why these defaults were chosen to begin with, git blame shows > they were chosen back in 2015. I don't think a lot of thought went into > choosing 1) which parameters should be configurable nor 2) what their > defaults should be (or why they should differ from DBCP2 defaults). > > DSpace repositories are run by higher education institutions and all sorts > of institutions and organisations involved in research, for instance the > Smithsonian (https://repository.si.edu/). Therefore, although the vast > majority of instances are run by small institutions that get little > traffic, others are likely to receive relatively heavy traffic, from users > and crawlers. > > So the idea is to ask the experts what parameters should be configurable > for the average repository admin, keeping in mind that the aim is for > installation and setup to be simple (in effect, what are the "main" > parameters likely to need tweaking) and what should the out-of-the-box > defaults be (if at all different from the DBCP2 defaults). > > I am particularly surprised at the low maxWaitMillis chosen. Is that not > likely to cause problems for high traffic sites? > > Best regards, Hrafn > > > [1] : > > https://github.com/DSpace/DSpace/blob/250c87dc1604c34e2a963b6804163c73278e9ff7/dspace/config/spring/api/core-hibernate.xml#L41-L48 > > [2] : > > https://github.com/DSpace/DSpace/blob/250c87dc1604c34e2a963b6804163c73278e9ff7/dspace/config/dspace.cfg#L77-L86 > > On Sun, Dec 20, 2020 at 6:40 PM Gary Gregory <garydgreg...@gmail.com> > wrote: > > > Hi, > > > > Each new DBCP release brings fixes, additions, and other updates, as you > > can read in the release notes. > > > > How to best configure DBCP for any given combination of JDBC driver, its > > database, and application will be quite variable, which is somewhat out > of > > scope here IMO. > > > > Gary > > > > On Fri, Dec 18, 2020, 11:15 Hrafn Malmquist <hrafn.malmqu...@gmail.com> > > wrote: > > > > > Good day > > > > > > I'm wondering what are optimal defaults for DSpace, open source digital > > > repository software aimed especially at academic, non-profit, and > > > commercial organizations (see https://duraspace.org/dspace/). > > > > > > DSpace supports both Postgres and Oracle and recommends Tomcat, Jetty > or > > > Caucho Resin. I suspect 9/10 installations use Tomcat. > > > > > > DSpace comes packaged with Apache Commons DCBP 2.1.1. DSpace only > > > configures three configurations for DBCP2 using non-default settings. > > (see: > > > [1] and [2]) > > > > > > These are > > > maxTotal = 30 > > > maxIdle = 10 > > > maxWaitMillis = 5000 > > > > > > I am not sure what reasoning is behind the choice of these > configuration > > > settings. DSpace is used by all sorts of institutions, some receiving > > very > > > high traffic. My guess is that using the DBCP2 defaults is recommended. > > My > > > question is, is this a good default configuration? Should there be more > > > configuration configurable by DSpace users in the DSpace config? There > > have > > > been reports of the database not being reachable because of too many > idle > > > connections. According to one doc [3] maxWaitMillis should be at a > > > minimum of 10000 ms if I understand correctly. > > > > > > Also, I assume there are benefits to upgrading the DBCP2 dependency to > > the > > > most recent version, 2.8.0. I'm not sure what the major benefits are > > > though. I can see v. 2.5.0 only runs on Java 8. > > > > > > [1] - > > > > > > > > > https://github.com/DSpace/DSpace/blob/755f0732aeea7dd1449830593caa54d77890e5bd/dspace/config/local.cfg.EXAMPLE#L88-L99 > > > [2] - > > > > > > > > > https://github.com/DSpace/DSpace/blob/755f0732aeea7dd1449830593caa54d77890e5bd/dspace/config/spring/api/core-hibernate.xml#L46-L48 > > > [3] - > > > > > > > > > https://tomcat.apache.org/tomcat-8.0-doc/jndi-datasource-examples-howto.html#Intermittent_Database_Connection_Failures > > > > > >