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
> > >
> >
>

Reply via email to