Hi Gary I have and they don't know. Therefore, we are kind of looking at this afresh.
For a web server like this, where there are usually lots of reads and not many writes. Does having defaults: maxWaitMillis = 5000, maxIdle = 10, maxTotal = 30 Make more sense than the DCP2 defaults? maxWaitMillis = indefinitely, maxIdle = 8, maxTotal = 8 Perhaps having higher maxIdle and maxTotal can't hurt as these are maximum bounds but the unusually (right?) low maxWaitMillis seems like it could easily cause problems, right? Also, these are the only properties wrapped into the configurable DSpace configuration. What other properties are those most commonly tweaked from DBCP2 defaults? Happy new year Hrafn On Tue, Dec 29, 2020 at 2:31 PM Gary Gregory <[email protected]> wrote: > 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 <[email protected]> > 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 <[email protected]> > > 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 <[email protected] > > > > > 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 > > > > > > > > > >
