SFPUG Beta Test Day

== Overview ==
The San Francisco PostgreSQL User's Group is planning a PostgreSQL 9 beta-test day on April 3, 2010. This page is to help coordinate this event.
== Location ==
* Noisebridge, San Francisco
** 2169 Mission Street
** Plenty of power, other people to draw in. Need to ask them.
** Kitchen
** Near BART
** *Parking is scarce*, plan to take public transportation. If you have to drop off equipment, coordinate before drop-off so that someone can receive it.
* Tokyo, Japan (via live video link)
** See: TestFest_For_9_JP
* Live Video Stream
* IRC Chat for Testers: irc.freenode.net, #pgtestfest
== Food ==
Will be served. Thanks, EnterpriseDB for sponsoring this.
== Help We Need ==
* Set Up Crew: 2 people to help set up the venue starting at 10am.
* Clean Up Crew: 2 people to help clean up after us after 6pm.
* Packaged Database Applications with Test Suites: if you know an application like Rails, phpBB, LegerSMB, OpenStreetMap etc. well, please bring packages and sample databases to distribute so we can test it with version 9.
== Computer Setup(s) ==
Add standard setup(s) here. To avoid connection confusion, we may want to assign hard-coded IPs to the machines instead of using DHCP. If so, we can start a list of IP addresses and associated machine descriptions. If you can volunteer a machine, please list its info in the section below.
== Testbed Computer List ==
 
Test Machines
Machine Owner	Architecture	OS 	IP assigned
David Fetter 	x86_64 	Mac OS/X 10.6 	t.b.d.d00d
David Fetter 	x86_64 (VM) 	Windows XP SP2	t.b.d.d00d
David Fetter 	x86 	Linux 	t.b.d.d00d
Josh Berkus 	x86 	Ubuntu 8.04 	
Josh Berkus 	x86 	Mac OSX 10.5 	
Josh Berkus 	x86 	Ubuntu 9.10 	remote access
== Preparation ==
These are things you need to bring to make the test day successful.
* One or more computers.
** ... with all of the tools required to compile PostgreSQL and any supporting modules you plan to use. Ask on-list if you have questions.
** ... For Windows users, have the beta packages installed (and please do bring Windows machines!)
** Also, consider remote access servers you can reach over the internet.
* One or more personal/public domain databases which have already been ported to a previous version of PostgreSQL.
* One or more popular open source applications which work on PostgreSQL. Emphasis on those which have regression test suites.
=== Shell variables that may help === 
export PG_PREFIX=$HOME/alpha5
export PGDATA=$PG_PREFIX/data
export PATH=$PG_PREFIX/bin:$PATH
export PGPORT=5485
=== Building after tarball ===
cd postgresql-9.0alpha5
./configure --prefix=$PG_PREFIX --with-pgport=$PGPORT --enable-cassert --enable-debug
make check
make install
=== INSTALL Alpha5 on your computers ===
Alpha5 has just been rolled and you can download source here: 
For Windows and other users, one-click installs are here: Dave Page warns that this binary is untested, and particularly pgAdmin may break.
=== INSTALL Alpha4 on your computers. ===
Since Alpha5 was not tested and may have build issues, you may try installing Alpha4 as well:
You can download it here:
windows: 
=== INSTALL 8.4 on your computers ===
IF you can, please also install a copy of version 8.4.3 so that we can do comparison testing.
If anyone needs help compiling PostgreSQL, please ask on the list.
Also, I would suggest installing your favorite PostgreSQL applications to try out on 9.0. If the applications are relatively portable, please bring copies on a USB key.
== Support Equipment ==
Quantities and specifics to be determined. Put your name by it (and quantity) if you can bring something.
 
Support Equipment
Item 	Quantity 	Provided by 	Comments
Heavy duty extension cords 	2 or more, 12+ feet 	Steve Crawford 	Power supplied by the venue.Probably not needed
Power strips 	3 or more 	Josh Berkus (3), Steve Crawford (2)	
Network cables 	10 or more, 6-12 feet	Steve Crawford 	I have a box of 7 and 10 foot cables
8-16 port fast ethernet switch	1 	 	Steve Crawford has a 5-port 100MB switch
10MB ethernet hub 	1 	Steve Crawford 	Old 8-port Linksys
100MB or gig ethernet switch 	1 	 	
Projector/Screen 	1 	Josh Berkus 	Also supplied by the venue
Electric fan 	1 	Steve Crawford 	Oscillating
Steve Crawford comment: If the date does not work for me I'll give the equipment to someone else to take to the event. I also have a 100MB hub if needed.
== Specific Tests to be Done ==
We need to do a number of beta tests in order to make the day worthwhile. Please put your name next to any test which you can prepare for and run.
* Compile Tests
** with options
** contrib modules
** external modules
** regressions
* Head-to-Head pgBench Tests
** 8.4 vs. 9.0
* Feature Tests
** Hot Standby
** Streaming Replication
** Exclusion Constraints
** LISTEN/NOTIFY
** DO() (all languages)
** Deferrable UNIQUE
** New VACUUM FULL
** Others??
* Database Porting Test -- bring your own database!
* Application Porting Test
** MediaWiki
** Openstreetmap data?? I contacted them to see about getting a standard PG data dump.
** Slony
** Bucardo
** pgsnmpd
** Others??
* Driver Regression Tests
** Java
** Python
*** psycopg2
** Perl
*** DBD::Pg
** PHP
*** pgsql -- Eric T
** R -- Eric T
** Ruby -- Eric T
** Others?
* ORM Regression Tests
** SQLAlchemy
** Django
** Doctrine (PHP) -- Eric T (maybe)
** Others?
=== Hot Standby / Streaming Replication ===
# Set up replication between two machines.
# Clone
# Start Replication
# Run pgbench on the master.
# Run pgbench in select-only mode on the slave
# Test with different delay settings.
# Test failover to the slave.
# Set up with pgPool and try.
Bonus: set up a master with 3 replicas
=== DO() ===
* Write a simple, non-data-writing plpgsql script and run it.
* Use DO() to run a data-modifying script
* Use DO() to run pl/perl or pl/python
* Use DO() to run the stats-modifying script here: 
=== GRANT ===
# Load one of your databases with a complex schema
# do grants and revokes on some individual tables
# do GRANT ON ALL TABLES IN SCHEMA
# do GRANT ON ALL FUNCTIONS IN SCHEMA
# do some more individual grants and revokes
# do REVOKE ON ALL TABLES IN SCHEMA
=== LISTEN/NOTIFY ===
# Set up a NOTIFY on one or more pgbench tables, with payloads
## an ID
## a serialized row
# LISTEN to that notification
# LISTEN from a remote client
=== Exclusion Constraints ===
# Install Temporal and Intarray
# Set up tables with PERIOD and INT[] columns
# Set up exclusion indexes on these using overlaps or contains
# Test for conflicts
=== Deferrable Unique ===
* Create a Celko Tree and move the nodes
* Do an id = id + 5 on a large table
=== New VACUUM FULL ===
# Run a bunch of pgbench tests
# VACUUM FULL the whole database
# Attempt to query tables while vacuum full is running
Bonus: do this on a database which is being replicated by HA/SR
Category:PostgreSQL Events