On Thu, Dec 31, 2020 at 11:55 AM Hrafn Malmquist <[email protected]>
wrote:

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

DBCP is agnostic to reading vs. writing, that all happens in SQL as I am
sure you know ;-)


> Does having defaults:
> maxWaitMillis = 5000,
> maxIdle = 10,
> maxTotal = 30
>
> Make more sense than the DCP2 defaults?
>

Only if you think so, I'm sorry I can't offer any guidelines for your
application.


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

Maybe some else here has generic advice for you but I do not, as each
customer I've seen at work all have highly variable needs, configurations,
and operating environments, everything from Linux, Windows, to IBM i/Series
and z/Series.


> Also, these are the only properties wrapped into the configurable DSpace
> configuration. What other properties are those most commonly tweaked from
> DBCP2 defaults?
>

Again, this is highly dependent on your use case. You'll have to experiment
within your operating envirnoment.

Gary


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

Reply via email to