Import pgbouncer.
PgBouncer is a lightweight connection pooler for PostgreSQL. With tweaks from jasper@ ok jasper@
This commit is contained in:
parent
ab1529e5eb
commit
7e1ada58fb
41
databases/pgbouncer/Makefile
Normal file
41
databases/pgbouncer/Makefile
Normal file
@ -0,0 +1,41 @@
|
||||
# $OpenBSD: Makefile,v 1.1.1.1 2010/07/08 16:18:06 pea Exp $
|
||||
|
||||
COMMENT = lightweight connection pooler for PostgreSQL
|
||||
|
||||
DISTNAME = pgbouncer-1.3.3
|
||||
|
||||
CATEGORIES = databases
|
||||
|
||||
HOMEPAGE = http://wiki.postgresql.org/wiki/PgBouncer
|
||||
|
||||
MAINTAINER = Pierre-Emmanuel Andre <pea@openbsd.org>
|
||||
|
||||
# BSD
|
||||
PERMIT_PACKAGE_FTP = Yes
|
||||
PERMIT_PACKAGE_CDROM = Yes
|
||||
PERMIT_DISTFILES_FTP = Yes
|
||||
PERMIT_DISTFILES_CDROM =Yes
|
||||
|
||||
WANTLIB = c event
|
||||
|
||||
MASTER_SITES = http://pgfoundry.org/frs/download.php/2677/
|
||||
|
||||
BUILD_DEPENDS = ::devel/libeventextra
|
||||
|
||||
CONFIGURE_STYLE = gnu
|
||||
CONFIGURE_ARGS = --with-libevent=${LOCALBASE}
|
||||
|
||||
USE_GMAKE = Yes
|
||||
|
||||
# The actual regress tests are (cd ${WRKSRC}/test; ./test.sh)
|
||||
# They want to create full postgres install and also play with
|
||||
# firewall (iptables)
|
||||
NO_REGRESS = Yes
|
||||
|
||||
post-install:
|
||||
${SUBST_CMD} -c ${FILESDIR}/README.OpenBSD \
|
||||
${PREFIX}/share/doc/pgbouncer/README.OpenBSD
|
||||
chown ${SHAREOWN}:${SHAREGRP} \
|
||||
${PREFIX}/share/doc/pgbouncer/README.OpenBSD
|
||||
|
||||
.include <bsd.port.mk>
|
5
databases/pgbouncer/distinfo
Normal file
5
databases/pgbouncer/distinfo
Normal file
@ -0,0 +1,5 @@
|
||||
MD5 (pgbouncer-1.3.3.tar.gz) = Lr0dkH24UYy540U0NyASrA==
|
||||
RMD160 (pgbouncer-1.3.3.tar.gz) = j/GS3Uuw33iVhYAmyM9H83Xbjms=
|
||||
SHA1 (pgbouncer-1.3.3.tar.gz) = JI9OSYwBKVQSd7bB2sUsyqoe61I=
|
||||
SHA256 (pgbouncer-1.3.3.tar.gz) = bIbik6KJ9Z6G0AUOKtNuGnjMR42zR0Y1/PH8rCYERjY=
|
||||
SIZE (pgbouncer-1.3.3.tar.gz) = 167476
|
28
databases/pgbouncer/files/README.OpenBSD
Normal file
28
databases/pgbouncer/files/README.OpenBSD
Normal file
@ -0,0 +1,28 @@
|
||||
$OpenBSD: README.OpenBSD,v 1.1.1.1 2010/07/08 16:18:06 pea Exp $
|
||||
|
||||
1) Carefully edit ${SYSCONFDIR}/pgbouncer/pgbouncer.ini and
|
||||
${SYSCONFDIR}/pgbouncer/userlist.txt to fit your needs.
|
||||
|
||||
|
||||
2) Launch pgbouncer in foreground mode to see if everything
|
||||
is ok:
|
||||
|
||||
# install -d -o _pgbouncer /var/run/pgbouncer
|
||||
# pgbouncer -u _pgbouncer /etc/pgbouncer/pgbouncer.ini
|
||||
|
||||
|
||||
3) Add the following to your /etc/rc.local:
|
||||
|
||||
if [ -x ${TRUEPREFIX}/bin/pgbouncer ]; then
|
||||
echo -n 'pgbouncer'
|
||||
install -d -o _pgbouncer /var/run/pgbouncer
|
||||
${TRUEPREFIX}/bin/pgbouncer -d -u _pgbouncer \
|
||||
/etc/pgbouncer/pgbouncer.ini
|
||||
fi
|
||||
|
||||
|
||||
|
||||
Random hints:
|
||||
|
||||
* Check /var/log/pgbouncer/pgbouncer.log if something
|
||||
goes wrong
|
11
databases/pgbouncer/patches/patch-Makefile
Normal file
11
databases/pgbouncer/patches/patch-Makefile
Normal file
@ -0,0 +1,11 @@
|
||||
$OpenBSD: patch-Makefile,v 1.1.1.1 2010/07/08 16:18:06 pea Exp $
|
||||
--- Makefile.orig Wed Jan 28 11:59:26 2009
|
||||
+++ Makefile Wed Jun 16 11:22:46 2010
|
||||
@@ -104,6 +104,7 @@ install: $(exe) doc-install
|
||||
mkdir -p $(DESTDIR)$(docdir)
|
||||
$(BININSTALL) -m 755 $(exe) $(DESTDIR)$(bindir)
|
||||
$(INSTALL) -m 644 $(srcdir)/etc/pgbouncer.ini $(DESTDIR)$(docdir)
|
||||
+ $(INSTALL) -m 644 $(srcdir)/etc/userlist.txt $(DESTDIR)$(docdir)
|
||||
ifeq ($(PORTNAME),win32)
|
||||
$(BININSTALL) -m 755 $(dll) $(DESTDIR)$(bindir)
|
||||
endif
|
34
databases/pgbouncer/patches/patch-etc_pgbouncer_ini
Normal file
34
databases/pgbouncer/patches/patch-etc_pgbouncer_ini
Normal file
@ -0,0 +1,34 @@
|
||||
$OpenBSD: patch-etc_pgbouncer_ini,v 1.1.1.1 2010/07/08 16:18:06 pea Exp $
|
||||
--- etc/pgbouncer.ini.orig Wed Apr 21 12:02:50 2010
|
||||
+++ etc/pgbouncer.ini Wed Jun 16 15:29:18 2010
|
||||
@@ -22,8 +22,8 @@ nondefaultdb = pool_size=50 reserve_pool=10
|
||||
;;; Administrative settings
|
||||
;;;
|
||||
|
||||
-logfile = pgbouncer.log
|
||||
-pidfile = pgbouncer.pid
|
||||
+logfile = /var/log/pgbouncer/pgbouncer.log
|
||||
+pidfile = /var/run/pgbouncer/pgbouncer.pid
|
||||
|
||||
;;;
|
||||
;;; Where to wait for clients
|
||||
@@ -39,16 +39,16 @@ unix_socket_dir = /tmp
|
||||
;;;
|
||||
|
||||
; any, trust, plain, crypt, md5
|
||||
-auth_type = trust
|
||||
+auth_type = md5
|
||||
#auth_file = 8.0/main/global/pg_auth
|
||||
-auth_file = etc/userlist.txt
|
||||
+auth_file = /etc/pgbouncer/userlist.txt
|
||||
|
||||
;;;
|
||||
;;; Users allowed into database 'pgbouncer'
|
||||
;;;
|
||||
|
||||
; comma-separated list of users, who are allowed to change settings
|
||||
-admin_users = user2, someadmin, otheradmin
|
||||
+admin_users = admin, pgbouncer
|
||||
|
||||
; comma-separated list of users who are just allowed to use SHOW command
|
||||
stats_users = stats, root
|
8
databases/pgbouncer/patches/patch-etc_userlist_txt
Normal file
8
databases/pgbouncer/patches/patch-etc_userlist_txt
Normal file
@ -0,0 +1,8 @@
|
||||
$OpenBSD: patch-etc_userlist_txt,v 1.1.1.1 2010/07/08 16:18:06 pea Exp $
|
||||
--- etc/userlist.txt.orig Wed Jun 16 12:27:35 2010
|
||||
+++ etc/userlist.txt Wed Jun 16 12:27:56 2010
|
||||
@@ -1,3 +1,2 @@
|
||||
-"marko" "asdasd"
|
||||
-"postgres" "asdasd"
|
||||
+"admin" "admin"
|
||||
"pgbouncer" "fake"
|
12
databases/pgbouncer/patches/patch-src_util_c
Normal file
12
databases/pgbouncer/patches/patch-src_util_c
Normal file
@ -0,0 +1,12 @@
|
||||
$OpenBSD: patch-src_util_c,v 1.1.1.1 2010/07/08 16:18:06 pea Exp $
|
||||
--- src/util.c.orig Wed Jun 23 09:44:05 2010
|
||||
+++ src/util.c Wed Jun 23 09:51:41 2010
|
||||
@@ -68,7 +68,7 @@ static void render_time(char *buf, int max)
|
||||
struct tm *tm;
|
||||
struct timeval tv;
|
||||
gettimeofday(&tv, NULL);
|
||||
- tm = localtime(&tv.tv_sec);
|
||||
+ tm = localtime((time_t *)&tv.tv_sec);
|
||||
snprintf(buf, max, "%04d-%02d-%02d %02d:%02d:%02d.%03d",
|
||||
tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
|
||||
tm->tm_hour, tm->tm_min, tm->tm_sec,
|
30
databases/pgbouncer/pkg/DESCR
Normal file
30
databases/pgbouncer/pkg/DESCR
Normal file
@ -0,0 +1,30 @@
|
||||
PgBouncer is a lightweight connection pooler for PostgreSQL.
|
||||
|
||||
Features:
|
||||
* Several levels of brutality when rotating connections:
|
||||
+ Session pooling
|
||||
Most polite method. When client connects, a server connection will
|
||||
be assigned to it for the whole duration it stays connected. When
|
||||
client disconnects, the server connection will be put back into
|
||||
pool. This mode supports all PostgeSQL features.
|
||||
+ Transaction pooling
|
||||
Server connection is assigned to client only during a transaction.
|
||||
When PgBouncer notices that transaction is over, the server will be
|
||||
put back into pool. This mode breaks few session-based features of
|
||||
PostgreSQL. You can use it only when application cooperates by not
|
||||
using features that break. See the table below for incompatible
|
||||
features.
|
||||
+ Statement pooling
|
||||
Most aggressive method. This is transaction pooling with a twist -
|
||||
multi-statement transactions are disallowed. This is meant to
|
||||
enforce "autocommit" mode on client, mostly targeted for PL/Proxy.
|
||||
|
||||
* Low memory requirements (2k per connection by default). This is due to
|
||||
the fact that PgBouncer does not need to see full packet at once.
|
||||
* It is not tied to one backend server, the destination databases can reside
|
||||
on different hosts.
|
||||
* Supports online reconfiguration for most of the settings.
|
||||
* Supports online restart/upgrade without dropping client connections.
|
||||
* Supports protocol V3 only, so backend version must be >= 7.4.
|
||||
|
||||
|
2
databases/pgbouncer/pkg/MESSAGE
Normal file
2
databases/pgbouncer/pkg/MESSAGE
Normal file
@ -0,0 +1,2 @@
|
||||
Please see ${PREFIX}/share/doc/pgbouncer/README.OpenBSD for
|
||||
a brief intro to using pgbouncer on OpenBSD.
|
22
databases/pgbouncer/pkg/PLIST
Normal file
22
databases/pgbouncer/pkg/PLIST
Normal file
@ -0,0 +1,22 @@
|
||||
@comment $OpenBSD: PLIST,v 1.1.1.1 2010/07/08 16:18:06 pea Exp $
|
||||
@newgroup _pgbouncer:653
|
||||
@newuser _pgbouncer:653:653:daemon:pgbouncer:/nonexistent:/sbin/nologin
|
||||
@bin bin/pgbouncer
|
||||
@man man/man1/pgbouncer.1
|
||||
@man man/man5/pgbouncer.5
|
||||
@owner _pgbouncer
|
||||
@sample ${SYSCONFDIR}/pgbouncer/
|
||||
@owner
|
||||
share/doc/pgbouncer/
|
||||
share/doc/pgbouncer/README.OpenBSD
|
||||
@mode 640
|
||||
@group _pgbouncer
|
||||
share/doc/pgbouncer/pgbouncer.ini
|
||||
@sample ${SYSCONFDIR}/pgbouncer/pgbouncer.ini
|
||||
share/doc/pgbouncer/userlist.txt
|
||||
@sample ${SYSCONFDIR}/pgbouncer/userlist.txt
|
||||
@mode
|
||||
@owner _pgbouncer
|
||||
@group
|
||||
@sample /var/log/pgbouncer/
|
||||
@extraunexec rm -rf /var/log/pgbouncer
|
Loading…
Reference in New Issue
Block a user