SFPUG Beta 测试日

来自 PostgreSQL wiki
跳转到导航跳转到搜索

概述

旧金山 PostgreSQL 用户组计划于 2010 年 4 月 3 日举办 PostgreSQL 9 Beta 测试日。本页面旨在帮助协调此活动。

地点

  • Noisebridge,旧金山
    • 2169 Mission Street
    • 充足的电源,以及吸引其他人的地方。需要询问他们。
    • 厨房
    • 靠近 BART
    • *停车位紧张*,计划乘坐公共交通工具。如果您需要卸货,请在卸货前协调好,以便有人可以接收货物。
  • 直播视频流
  • 测试人员的 IRC 聊天:irc.freenode.net,#pgtestfest

食物

将提供食物。感谢 EnterpriseDB 的赞助。

我们需要帮助

  • 搭建团队:从上午 10 点开始,需要 2 人帮助搭建场地。
  • 清理团队:下午 6 点后,需要 2 人帮助清理。
  • 打包的数据库应用程序及其测试套件:如果您熟悉 Rails、phpBB、LegerSMB、OpenStreetMap 等应用程序,请携带软件包和示例数据库进行分发,以便我们能够使用版本 9 对其进行测试。

计算机设置

在此添加标准设置。为避免连接混乱,我们可能需要为机器分配硬编码 IP,而不是使用 DHCP。如果是这样,我们可以开始一个包含 IP 地址和相关机器描述的列表。如果您能提供一台机器,请在下面的部分列出其信息。

测试台计算机列表

测试机器
机器拥有者 架构 操作系统 分配的 IP
David Fetter x86_64 Mac OS/X 10.6 t.b.d.d00d
David Fetter x86_64(虚拟机) 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 远程访问

准备

以下是要带的东西,以确保测试日顺利进行。

  • 一台或多台计算机。
    • ... 以及编译 PostgreSQL 和您计划使用的任何支持模块所需的所有工具。如果您有任何问题,请在邮件列表中咨询。
    • ... 对于 Windows 用户,请安装 Beta 软件包(并且请务必携带 Windows 机器!)
    • 此外,请考虑您可以通过互联网访问的远程访问服务器。
  • 一个或多个个人/公共域数据库,这些数据库已经移植到以前版本的 PostgreSQL。
  • 一个或多个在 PostgreSQL 上运行的流行开源应用程序。重点是那些具有回归测试套件的应用程序。

可能帮助的 Shell 变量

export PG_PREFIX=$HOME/alpha5 export PGDATA=$PG_PREFIX/data export PATH=$PG_PREFIX/bin:$PATH export PGPORT=5485

解压缩后构建

cd postgresql-9.0alpha5 ./configure --prefix=$PG_PREFIX --with-pgport=$PGPORT --enable-cassert --enable-debug make check make install

在您的计算机上安装 Alpha5

Alpha5 刚刚发布,您可以在此处下载源代码:[1]

对于 Windows 和其他用户,一键安装程序在以下位置:[2] Dave Page 提醒您,此二进制文件尚未经过测试,特别是 pgAdmin 可能无法正常工作。

在您的计算机上安装 Alpha4。

由于 Alpha5 未经测试,并且可能存在构建问题,因此您也可以尝试安装 Alpha4。

您可以在此处下载它:[3]

windows:[4]

在您的计算机上安装 8.4

如果可以,请还安装一个版本 8.4.3 的副本,以便我们可以进行比较测试。

如果任何人需要帮助编译 PostgreSQL,请在邮件列表中咨询。

此外,我建议您安装您最喜欢的 PostgreSQL 应用程序,并在 9.0 上试用。如果应用程序相对可移植,请将副本放在 USB 密钥上。

支持设备

数量和规格待定。如果您能提供某些东西,请在旁边写上您的姓名(以及数量)。

支持设备
项目 数量 提供者 备注
重型延长线 2 条或更多,12 英尺以上 Steve Crawford 电源由场地提供。
可能不需要
电源线 3 条或更多 Josh Berkus(3),Steve Crawford(2)
网线 10 条或更多,6-12 英尺 Steve Crawford 我有一个装有 7 英尺和 10 英尺电缆的箱子
8-16 端口快速以太网交换机 1 Steve Crawford 拥有一台 5 端口 100MB 交换机
10MB 以太网集线器 1 Steve Crawford 旧的 8 端口 Linksys
100MB 或千兆以太网交换机 1
投影仪/屏幕 1 Josh Berkus 也由场地提供
电风扇 1 Steve Crawford 摇摆式

Steve Crawford 评论:如果日期不适合我,我会将设备交给其他人带到活动现场。我还有一个 100MB 集线器,如果需要的话。

要执行的具体测试

为了让这一天变得有价值,我们需要进行一些 Beta 测试。请在您能够准备和运行的任何测试旁边写上您的姓名。

  • 编译测试
    • 带选项
    • contrib 模块
    • 外部模块
    • 回归
  • 面对面 pgBench 测试
    • 8.4 与 9.0
  • 功能测试
    • 热备
    • 流式复制
    • 排除约束
    • LISTEN/NOTIFY
    • DO()(所有语言)
    • 可延迟的 UNIQUE
    • 新的 VACUUM FULL
    • 其他?
  • 数据库移植测试 - 请携带您自己的数据库!
  • 应用程序移植测试
    • MediaWiki
    • Openstreetmap 数据?我已经联系了他们,看看是否可以获得标准的 PG 数据转储。
    • Slony
    • Bucardo
    • pgsnmpd
    • 其他?
  • 驱动程序回归测试
    • Java
    • Python
      • psycopg2
    • Perl
      • DBD::Pg
    • PHP
      • pgsql - Eric T
    • R - Eric T
    • Ruby - Eric T
    • 其他?
  • ORM 回归测试
    • SQLAlchemy
    • Django
    • Doctrine (PHP) - Eric T (可能)
    • 其他?

热备/流式复制

  1. 在两台机器之间设置复制。
  2. 克隆
  3. 启动复制
  4. 在主服务器上运行 pgbench。
  5. 在从服务器上以只读模式运行 pgbench
  6. 测试不同的延迟设置。
  7. 测试故障转移到从服务器。
  8. 使用 pgPool 设置并尝试。

额外:设置一个具有 3 个副本的主服务器

DO()

  • 编写一个简单的、不写入数据的 plpgsql 脚本并运行它。
  • 使用 DO() 运行一个修改数据的脚本
  • 使用 DO() 运行 pl/perl 或 pl/python
  • 使用 DO() 运行以下位置的修改统计信息的脚本:[5]

GRANT

  1. 使用一个具有复杂模式的数据库加载其中一个数据库
  2. 对一些单独的表执行授予和撤销操作
  3. 对模式中的所有表执行 GRANT
  4. 对模式中的所有函数执行 GRANT
  5. 执行更多单独的授予和撤销操作
  6. 对模式中的所有表执行 REVOKE

LISTEN/NOTIFY

  1. 在 pgbench 表上设置一个 NOTIFY,并带有有效负载
    1. 一个 ID
    2. 一个序列化行
  2. 监听该通知
  3. 从远程客户端监听

排除约束

  1. 安装 Temporal 和 Intarray
  2. 设置带有 PERIOD 和 INT[] 列的表
  3. 使用 overlaps 或 contains 在这些列上设置排除索引
  4. 测试冲突

可延迟的唯一

  • 创建一个 Celko 树并移动节点
  • 对一个大型表执行 id = id + 5

新的 VACUUM FULL

  1. 运行大量 pgbench 测试
  2. 对整个数据库执行 VACUUM FULL
  3. 尝试在 vacuum full 运行时查询表

额外:对正在被 HA/SR 复制的数据库执行此操作