prestogres 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (393) hide show
  1. data/.gitignore +4 -0
  2. data/Gemfile +2 -0
  3. data/Gemfile.lock +20 -0
  4. data/LICENSE +202 -0
  5. data/NOTICE +22 -0
  6. data/README.md +217 -0
  7. data/Rakefile +13 -0
  8. data/VERSION +1 -0
  9. data/bin/prestogres +254 -0
  10. data/config/pcp.conf.sample +28 -0
  11. data/config/pgpool.conf +678 -0
  12. data/config/pool_hba.conf +84 -0
  13. data/config/pool_passwd +0 -0
  14. data/config/postgresql.conf +2 -0
  15. data/ext/.gitignore +6 -0
  16. data/ext/depend +26 -0
  17. data/ext/extconf.rb +4 -0
  18. data/ext/prestogres_config.c +12 -0
  19. data/pgpool2/.gitignore +36 -0
  20. data/pgpool2/AUTHORS +4 -0
  21. data/pgpool2/COPYING +12 -0
  22. data/pgpool2/ChangeLog +1 -0
  23. data/pgpool2/INSTALL +1 -0
  24. data/pgpool2/Makefile.am +159 -0
  25. data/pgpool2/Makefile.in +1187 -0
  26. data/pgpool2/NEWS +4960 -0
  27. data/pgpool2/README +1 -0
  28. data/pgpool2/README.euc_jp +1 -0
  29. data/pgpool2/README.online-recovery +62 -0
  30. data/pgpool2/TODO +103 -0
  31. data/pgpool2/ac_func_accept_argtypes.m4 +85 -0
  32. data/pgpool2/aclocal.m4 +1088 -0
  33. data/pgpool2/c-compiler.m4 +134 -0
  34. data/pgpool2/c-library.m4 +325 -0
  35. data/pgpool2/child.c +2097 -0
  36. data/pgpool2/config.guess +1532 -0
  37. data/pgpool2/config.h.in +332 -0
  38. data/pgpool2/config.sub +1640 -0
  39. data/pgpool2/configure +15752 -0
  40. data/pgpool2/configure.in +392 -0
  41. data/pgpool2/depcomp +522 -0
  42. data/pgpool2/doc/basebackup.sh +17 -0
  43. data/pgpool2/doc/pgpool-de.html +4220 -0
  44. data/pgpool2/doc/pgpool-en.html +5738 -0
  45. data/pgpool2/doc/pgpool-fr.html +4118 -0
  46. data/pgpool2/doc/pgpool-ja.css +198 -0
  47. data/pgpool2/doc/pgpool-ja.html +11279 -0
  48. data/pgpool2/doc/pgpool-zh_cn.html +4445 -0
  49. data/pgpool2/doc/pgpool.css +280 -0
  50. data/pgpool2/doc/pgpool_remote_start +13 -0
  51. data/pgpool2/doc/recovery.conf.sample +117 -0
  52. data/pgpool2/doc/tutorial-en.html +707 -0
  53. data/pgpool2/doc/tutorial-ja.html +422 -0
  54. data/pgpool2/doc/tutorial-memqcache-en.html +325 -0
  55. data/pgpool2/doc/tutorial-memqcache-ja.html +370 -0
  56. data/pgpool2/doc/tutorial-memqcache-zh_cn.html +322 -0
  57. data/pgpool2/doc/tutorial-watchdog-en.html +306 -0
  58. data/pgpool2/doc/tutorial-watchdog-ja.html +343 -0
  59. data/pgpool2/doc/tutorial-watchdog-zh_cn.html +301 -0
  60. data/pgpool2/doc/tutorial-zh_cn.html +537 -0
  61. data/pgpool2/doc/watchdog.png +0 -0
  62. data/pgpool2/doc/wd-en.html +236 -0
  63. data/pgpool2/doc/wd-en.jpg +0 -0
  64. data/pgpool2/doc/wd-ja.html +219 -0
  65. data/pgpool2/doc/wd-ja.jpg +0 -0
  66. data/pgpool2/doc/wd-zh_cn.html +201 -0
  67. data/pgpool2/doc/where_to_send_queries.odg +0 -0
  68. data/pgpool2/doc/where_to_send_queries.pdf +0 -0
  69. data/pgpool2/general.m4 +166 -0
  70. data/pgpool2/getopt_long.c +200 -0
  71. data/pgpool2/getopt_long.h +44 -0
  72. data/pgpool2/install-sh +251 -0
  73. data/pgpool2/ltmain.sh +8406 -0
  74. data/pgpool2/m4/libtool.m4 +7360 -0
  75. data/pgpool2/m4/ltoptions.m4 +368 -0
  76. data/pgpool2/m4/ltsugar.m4 +123 -0
  77. data/pgpool2/m4/ltversion.m4 +23 -0
  78. data/pgpool2/m4/lt~obsolete.m4 +92 -0
  79. data/pgpool2/main.c +2971 -0
  80. data/pgpool2/md5.c +444 -0
  81. data/pgpool2/md5.h +28 -0
  82. data/pgpool2/missing +360 -0
  83. data/pgpool2/mkinstalldirs +40 -0
  84. data/pgpool2/parser/Makefile.am +50 -0
  85. data/pgpool2/parser/Makefile.in +559 -0
  86. data/pgpool2/parser/copyfuncs.c +3310 -0
  87. data/pgpool2/parser/gram.c +39100 -0
  88. data/pgpool2/parser/gram.h +940 -0
  89. data/pgpool2/parser/gram.y +13408 -0
  90. data/pgpool2/parser/gramparse.h +74 -0
  91. data/pgpool2/parser/keywords.c +32 -0
  92. data/pgpool2/parser/keywords.h +39 -0
  93. data/pgpool2/parser/kwlist.h +425 -0
  94. data/pgpool2/parser/kwlookup.c +88 -0
  95. data/pgpool2/parser/list.c +1156 -0
  96. data/pgpool2/parser/makefuncs.c +518 -0
  97. data/pgpool2/parser/makefuncs.h +83 -0
  98. data/pgpool2/parser/memnodes.h +79 -0
  99. data/pgpool2/parser/nodes.c +29 -0
  100. data/pgpool2/parser/nodes.h +609 -0
  101. data/pgpool2/parser/outfuncs.c +5790 -0
  102. data/pgpool2/parser/parsenodes.h +2615 -0
  103. data/pgpool2/parser/parser.c +262 -0
  104. data/pgpool2/parser/parser.h +46 -0
  105. data/pgpool2/parser/pg_class.h +158 -0
  106. data/pgpool2/parser/pg_config_manual.h +273 -0
  107. data/pgpool2/parser/pg_list.h +352 -0
  108. data/pgpool2/parser/pg_trigger.h +147 -0
  109. data/pgpool2/parser/pg_wchar.h +492 -0
  110. data/pgpool2/parser/pool_memory.c +342 -0
  111. data/pgpool2/parser/pool_memory.h +77 -0
  112. data/pgpool2/parser/pool_parser.h +222 -0
  113. data/pgpool2/parser/pool_string.c +121 -0
  114. data/pgpool2/parser/pool_string.h +37 -0
  115. data/pgpool2/parser/primnodes.h +1280 -0
  116. data/pgpool2/parser/scan.c +4094 -0
  117. data/pgpool2/parser/scan.l +1451 -0
  118. data/pgpool2/parser/scanner.h +120 -0
  119. data/pgpool2/parser/scansup.c +221 -0
  120. data/pgpool2/parser/scansup.h +28 -0
  121. data/pgpool2/parser/snprintf.c +1102 -0
  122. data/pgpool2/parser/stringinfo.c +294 -0
  123. data/pgpool2/parser/stringinfo.h +178 -0
  124. data/pgpool2/parser/value.c +78 -0
  125. data/pgpool2/parser/value.h +62 -0
  126. data/pgpool2/parser/wchar.c +2048 -0
  127. data/pgpool2/pcp.conf.sample +28 -0
  128. data/pgpool2/pcp/Makefile.am +40 -0
  129. data/pgpool2/pcp/Makefile.in +771 -0
  130. data/pgpool2/pcp/libpcp_ext.h +250 -0
  131. data/pgpool2/pcp/md5.c +444 -0
  132. data/pgpool2/pcp/md5.h +28 -0
  133. data/pgpool2/pcp/pcp.c +1652 -0
  134. data/pgpool2/pcp/pcp.h +61 -0
  135. data/pgpool2/pcp/pcp_attach_node.c +172 -0
  136. data/pgpool2/pcp/pcp_detach_node.c +185 -0
  137. data/pgpool2/pcp/pcp_error.c +87 -0
  138. data/pgpool2/pcp/pcp_node_count.c +160 -0
  139. data/pgpool2/pcp/pcp_node_info.c +198 -0
  140. data/pgpool2/pcp/pcp_pool_status.c +166 -0
  141. data/pgpool2/pcp/pcp_proc_count.c +166 -0
  142. data/pgpool2/pcp/pcp_proc_info.c +261 -0
  143. data/pgpool2/pcp/pcp_promote_node.c +185 -0
  144. data/pgpool2/pcp/pcp_recovery_node.c +172 -0
  145. data/pgpool2/pcp/pcp_stop_pgpool.c +179 -0
  146. data/pgpool2/pcp/pcp_stream.c +385 -0
  147. data/pgpool2/pcp/pcp_stream.h +52 -0
  148. data/pgpool2/pcp/pcp_systemdb_info.c +194 -0
  149. data/pgpool2/pcp/pcp_watchdog_info.c +211 -0
  150. data/pgpool2/pcp_child.c +1493 -0
  151. data/pgpool2/pg_md5.c +305 -0
  152. data/pgpool2/pgpool.8.in +121 -0
  153. data/pgpool2/pgpool.conf +553 -0
  154. data/pgpool2/pgpool.conf.sample +666 -0
  155. data/pgpool2/pgpool.conf.sample-master-slave +665 -0
  156. data/pgpool2/pgpool.conf.sample-replication +664 -0
  157. data/pgpool2/pgpool.conf.sample-stream +664 -0
  158. data/pgpool2/pgpool.spec +264 -0
  159. data/pgpool2/pgpool_adm/TODO +7 -0
  160. data/pgpool2/pgpool_adm/pgpool_adm--1.0.sql +85 -0
  161. data/pgpool2/pgpool_adm/pgpool_adm.c +558 -0
  162. data/pgpool2/pgpool_adm/pgpool_adm.control +5 -0
  163. data/pgpool2/pgpool_adm/pgpool_adm.h +46 -0
  164. data/pgpool2/pgpool_adm/pgpool_adm.sql.in +85 -0
  165. data/pgpool2/pool.h +655 -0
  166. data/pgpool2/pool_auth.c +1390 -0
  167. data/pgpool2/pool_config.c +5007 -0
  168. data/pgpool2/pool_config.h +284 -0
  169. data/pgpool2/pool_config.l +3281 -0
  170. data/pgpool2/pool_config_md5.c +29 -0
  171. data/pgpool2/pool_connection_pool.c +812 -0
  172. data/pgpool2/pool_error.c +242 -0
  173. data/pgpool2/pool_globals.c +27 -0
  174. data/pgpool2/pool_hba.c +1723 -0
  175. data/pgpool2/pool_hba.conf.sample +67 -0
  176. data/pgpool2/pool_ip.c +567 -0
  177. data/pgpool2/pool_ip.h +65 -0
  178. data/pgpool2/pool_ipc.h +38 -0
  179. data/pgpool2/pool_lobj.c +242 -0
  180. data/pgpool2/pool_lobj.h +32 -0
  181. data/pgpool2/pool_memqcache.c +3818 -0
  182. data/pgpool2/pool_memqcache.h +268 -0
  183. data/pgpool2/pool_params.c +163 -0
  184. data/pgpool2/pool_passwd.c +249 -0
  185. data/pgpool2/pool_passwd.h +41 -0
  186. data/pgpool2/pool_path.c +193 -0
  187. data/pgpool2/pool_path.h +81 -0
  188. data/pgpool2/pool_process_context.c +247 -0
  189. data/pgpool2/pool_process_context.h +62 -0
  190. data/pgpool2/pool_process_query.c +5001 -0
  191. data/pgpool2/pool_process_reporting.c +1671 -0
  192. data/pgpool2/pool_process_reporting.h +44 -0
  193. data/pgpool2/pool_proto2.c +671 -0
  194. data/pgpool2/pool_proto_modules.c +3524 -0
  195. data/pgpool2/pool_proto_modules.h +185 -0
  196. data/pgpool2/pool_query_cache.c +1020 -0
  197. data/pgpool2/pool_query_context.c +1871 -0
  198. data/pgpool2/pool_query_context.h +105 -0
  199. data/pgpool2/pool_relcache.c +284 -0
  200. data/pgpool2/pool_relcache.h +78 -0
  201. data/pgpool2/pool_rewrite_outfuncs.c +9060 -0
  202. data/pgpool2/pool_rewrite_query.c +715 -0
  203. data/pgpool2/pool_rewrite_query.h +192 -0
  204. data/pgpool2/pool_select_walker.c +1150 -0
  205. data/pgpool2/pool_select_walker.h +68 -0
  206. data/pgpool2/pool_sema.c +161 -0
  207. data/pgpool2/pool_session_context.c +952 -0
  208. data/pgpool2/pool_session_context.h +203 -0
  209. data/pgpool2/pool_shmem.c +185 -0
  210. data/pgpool2/pool_signal.c +158 -0
  211. data/pgpool2/pool_signal.h +61 -0
  212. data/pgpool2/pool_ssl.c +339 -0
  213. data/pgpool2/pool_stream.c +962 -0
  214. data/pgpool2/pool_stream.h +61 -0
  215. data/pgpool2/pool_system.c +659 -0
  216. data/pgpool2/pool_timestamp.c +1215 -0
  217. data/pgpool2/pool_timestamp.h +38 -0
  218. data/pgpool2/pool_type.h +171 -0
  219. data/pgpool2/pool_worker_child.c +384 -0
  220. data/pgpool2/ps_status.c +404 -0
  221. data/pgpool2/recovery.c +435 -0
  222. data/pgpool2/redhat/pgpool.conf.sample.patch +52 -0
  223. data/pgpool2/redhat/pgpool.init +201 -0
  224. data/pgpool2/redhat/pgpool.sysconfig +7 -0
  225. data/pgpool2/redhat/rpm_installer/basebackup-replication.sh +53 -0
  226. data/pgpool2/redhat/rpm_installer/basebackup-stream.sh +55 -0
  227. data/pgpool2/redhat/rpm_installer/config_for_script +17 -0
  228. data/pgpool2/redhat/rpm_installer/failover.sh +64 -0
  229. data/pgpool2/redhat/rpm_installer/getsources.sh +141 -0
  230. data/pgpool2/redhat/rpm_installer/install.sh +1363 -0
  231. data/pgpool2/redhat/rpm_installer/pgpool_recovery_pitr +47 -0
  232. data/pgpool2/redhat/rpm_installer/pgpool_remote_start +15 -0
  233. data/pgpool2/redhat/rpm_installer/recovery.conf +4 -0
  234. data/pgpool2/redhat/rpm_installer/uninstall.sh +57 -0
  235. data/pgpool2/sample/dist_def_pgbench.sql +73 -0
  236. data/pgpool2/sample/pgpool.pam +3 -0
  237. data/pgpool2/sample/pgpool_recovery +20 -0
  238. data/pgpool2/sample/pgpool_recovery_pitr +19 -0
  239. data/pgpool2/sample/pgpool_remote_start +13 -0
  240. data/pgpool2/sample/replicate_def_pgbench.sql +18 -0
  241. data/pgpool2/sql/insert_lock.sql +15 -0
  242. data/pgpool2/sql/pgpool-recovery/pgpool-recovery.c +280 -0
  243. data/pgpool2/sql/pgpool-recovery/pgpool-recovery.sql.in +19 -0
  244. data/pgpool2/sql/pgpool-recovery/pgpool_recovery--1.0.sql +24 -0
  245. data/pgpool2/sql/pgpool-recovery/pgpool_recovery.control +5 -0
  246. data/pgpool2/sql/pgpool-recovery/uninstall_pgpool-recovery.sql +3 -0
  247. data/pgpool2/sql/pgpool-regclass/pgpool-regclass.c +206 -0
  248. data/pgpool2/sql/pgpool-regclass/pgpool-regclass.sql.in +4 -0
  249. data/pgpool2/sql/pgpool-regclass/pgpool_regclass--1.0.sql +7 -0
  250. data/pgpool2/sql/pgpool-regclass/pgpool_regclass.control +5 -0
  251. data/pgpool2/sql/pgpool-regclass/uninstall_pgpool-regclass.sql +1 -0
  252. data/pgpool2/sql/system_db.sql +38 -0
  253. data/pgpool2/strlcpy.c +85 -0
  254. data/pgpool2/test/C/test_extended.c +98 -0
  255. data/pgpool2/test/jdbc/.cvsignore +2 -0
  256. data/pgpool2/test/jdbc/AutoCommitTest.java +45 -0
  257. data/pgpool2/test/jdbc/BatchTest.java +55 -0
  258. data/pgpool2/test/jdbc/ColumnTest.java +60 -0
  259. data/pgpool2/test/jdbc/CreateTempTableTest.java +48 -0
  260. data/pgpool2/test/jdbc/InsertTest.java +34 -0
  261. data/pgpool2/test/jdbc/LockTest.java +36 -0
  262. data/pgpool2/test/jdbc/PgpoolTest.java +75 -0
  263. data/pgpool2/test/jdbc/README.euc_jp +73 -0
  264. data/pgpool2/test/jdbc/RunTest.java +83 -0
  265. data/pgpool2/test/jdbc/SelectTest.java +37 -0
  266. data/pgpool2/test/jdbc/UpdateTest.java +32 -0
  267. data/pgpool2/test/jdbc/expected/CreateTempTable +1 -0
  268. data/pgpool2/test/jdbc/expected/autocommit +10 -0
  269. data/pgpool2/test/jdbc/expected/batch +1 -0
  270. data/pgpool2/test/jdbc/expected/column +100 -0
  271. data/pgpool2/test/jdbc/expected/insert +1 -0
  272. data/pgpool2/test/jdbc/expected/lock +100 -0
  273. data/pgpool2/test/jdbc/expected/select +2 -0
  274. data/pgpool2/test/jdbc/expected/update +1 -0
  275. data/pgpool2/test/jdbc/pgpool.properties +7 -0
  276. data/pgpool2/test/jdbc/prepare.sql +54 -0
  277. data/pgpool2/test/jdbc/run.sh +6 -0
  278. data/pgpool2/test/parser/.cvsignore +6 -0
  279. data/pgpool2/test/parser/README +32 -0
  280. data/pgpool2/test/parser/expected/copy.out +17 -0
  281. data/pgpool2/test/parser/expected/create.out +64 -0
  282. data/pgpool2/test/parser/expected/cursor.out +37 -0
  283. data/pgpool2/test/parser/expected/delete.out +10 -0
  284. data/pgpool2/test/parser/expected/drop.out +12 -0
  285. data/pgpool2/test/parser/expected/insert.out +13 -0
  286. data/pgpool2/test/parser/expected/misc.out +28 -0
  287. data/pgpool2/test/parser/expected/prepare.out +4 -0
  288. data/pgpool2/test/parser/expected/privileges.out +31 -0
  289. data/pgpool2/test/parser/expected/scanner.out +30 -0
  290. data/pgpool2/test/parser/expected/select.out +89 -0
  291. data/pgpool2/test/parser/expected/transaction.out +38 -0
  292. data/pgpool2/test/parser/expected/update.out +11 -0
  293. data/pgpool2/test/parser/expected/v84.out +37 -0
  294. data/pgpool2/test/parser/expected/v90.out +25 -0
  295. data/pgpool2/test/parser/expected/var.out +22 -0
  296. data/pgpool2/test/parser/input/alter.sql +2 -0
  297. data/pgpool2/test/parser/input/copy.sql +17 -0
  298. data/pgpool2/test/parser/input/create.sql +64 -0
  299. data/pgpool2/test/parser/input/cursor.sql +37 -0
  300. data/pgpool2/test/parser/input/delete.sql +10 -0
  301. data/pgpool2/test/parser/input/drop.sql +12 -0
  302. data/pgpool2/test/parser/input/insert.sql +13 -0
  303. data/pgpool2/test/parser/input/misc.sql +28 -0
  304. data/pgpool2/test/parser/input/prepare.sql +4 -0
  305. data/pgpool2/test/parser/input/privileges.sql +31 -0
  306. data/pgpool2/test/parser/input/scanner.sql +34 -0
  307. data/pgpool2/test/parser/input/select.sql +89 -0
  308. data/pgpool2/test/parser/input/transaction.sql +38 -0
  309. data/pgpool2/test/parser/input/update.sql +11 -0
  310. data/pgpool2/test/parser/input/v84.sql +37 -0
  311. data/pgpool2/test/parser/input/v90.sql +38 -0
  312. data/pgpool2/test/parser/input/var.sql +22 -0
  313. data/pgpool2/test/parser/main.c +96 -0
  314. data/pgpool2/test/parser/parse_schedule +16 -0
  315. data/pgpool2/test/parser/pool.h +13 -0
  316. data/pgpool2/test/parser/run-test +62 -0
  317. data/pgpool2/test/pdo-test/README.euc_jp +58 -0
  318. data/pgpool2/test/pdo-test/SQLlist/test1.sql +3 -0
  319. data/pgpool2/test/pdo-test/SQLlist/test2.sql +3 -0
  320. data/pgpool2/test/pdo-test/collections.inc +11 -0
  321. data/pgpool2/test/pdo-test/def.inc +7 -0
  322. data/pgpool2/test/pdo-test/log.txt +0 -0
  323. data/pgpool2/test/pdo-test/mod/database.inc +36 -0
  324. data/pgpool2/test/pdo-test/mod/def.inc +0 -0
  325. data/pgpool2/test/pdo-test/mod/errorhandler.inc +27 -0
  326. data/pgpool2/test/pdo-test/pdotest.php +11 -0
  327. data/pgpool2/test/pdo-test/regsql.inc +56 -0
  328. data/pgpool2/test/pgpool_setup +898 -0
  329. data/pgpool2/test/regression/README +39 -0
  330. data/pgpool2/test/regression/clean.sh +21 -0
  331. data/pgpool2/test/regression/libs.sh +16 -0
  332. data/pgpool2/test/regression/regress.sh +166 -0
  333. data/pgpool2/test/regression/tests/001.load_balance/test.sh +128 -0
  334. data/pgpool2/test/regression/tests/002.native_replication/PgTester.java +47 -0
  335. data/pgpool2/test/regression/tests/002.native_replication/create.sql +6 -0
  336. data/pgpool2/test/regression/tests/002.native_replication/test.sh +71 -0
  337. data/pgpool2/test/regression/tests/003.failover/expected.r +6 -0
  338. data/pgpool2/test/regression/tests/003.failover/expected.s +6 -0
  339. data/pgpool2/test/regression/tests/003.failover/test.sh +45 -0
  340. data/pgpool2/test/regression/tests/004.watchdog/master.conf +12 -0
  341. data/pgpool2/test/regression/tests/004.watchdog/standby.conf +19 -0
  342. data/pgpool2/test/regression/tests/004.watchdog/test.sh +52 -0
  343. data/pgpool2/test/regression/tests/050.bug58/test.sh +50 -0
  344. data/pgpool2/test/regression/tests/051.bug60/bug.sql +12 -0
  345. data/pgpool2/test/regression/tests/051.bug60/database-clean.sql +6 -0
  346. data/pgpool2/test/regression/tests/051.bug60/database-setup.sql +28 -0
  347. data/pgpool2/test/regression/tests/051.bug60/test.sh +79 -0
  348. data/pgpool2/test/regression/tests/052.do_query/test.sh +44 -0
  349. data/pgpool2/test/regression/tests/053.insert_lock_hangs/test.sh +81 -0
  350. data/pgpool2/test/regression/tests/054.postgres_fdw/test.sh +67 -0
  351. data/pgpool2/test/regression/tests/055.backend_all_down/test.sh +52 -0
  352. data/pgpool2/test/regression/tests/056.bug63/jdbctest2.java +66 -0
  353. data/pgpool2/test/regression/tests/056.bug63/test.sh +47 -0
  354. data/pgpool2/test/regression/tests/057.bug61/test.sh +40 -0
  355. data/pgpool2/test/regression/tests/058.bug68/jdbctest3.java +45 -0
  356. data/pgpool2/test/regression/tests/058.bug68/test.sh +47 -0
  357. data/pgpool2/test/timestamp/expected/insert.out +16 -0
  358. data/pgpool2/test/timestamp/expected/misc.out +3 -0
  359. data/pgpool2/test/timestamp/expected/update.out +6 -0
  360. data/pgpool2/test/timestamp/input/insert.sql +16 -0
  361. data/pgpool2/test/timestamp/input/misc.sql +3 -0
  362. data/pgpool2/test/timestamp/input/update.sql +6 -0
  363. data/pgpool2/test/timestamp/main.c +129 -0
  364. data/pgpool2/test/timestamp/parse_schedule +3 -0
  365. data/pgpool2/test/timestamp/run-test +69 -0
  366. data/pgpool2/version.h +1 -0
  367. data/pgpool2/watchdog/Makefile.am +17 -0
  368. data/pgpool2/watchdog/Makefile.in +505 -0
  369. data/pgpool2/watchdog/test/stab.c +266 -0
  370. data/pgpool2/watchdog/test/test.c +85 -0
  371. data/pgpool2/watchdog/test/wd_child_t.c +87 -0
  372. data/pgpool2/watchdog/test/wd_lifecheck_t.c +87 -0
  373. data/pgpool2/watchdog/test/wd_packet_t.c +87 -0
  374. data/pgpool2/watchdog/test/wd_ping_t.c +20 -0
  375. data/pgpool2/watchdog/watchdog.c +408 -0
  376. data/pgpool2/watchdog/watchdog.h +209 -0
  377. data/pgpool2/watchdog/wd_child.c +444 -0
  378. data/pgpool2/watchdog/wd_ext.h +123 -0
  379. data/pgpool2/watchdog/wd_heartbeat.c +577 -0
  380. data/pgpool2/watchdog/wd_if.c +216 -0
  381. data/pgpool2/watchdog/wd_init.c +126 -0
  382. data/pgpool2/watchdog/wd_interlock.c +347 -0
  383. data/pgpool2/watchdog/wd_lifecheck.c +512 -0
  384. data/pgpool2/watchdog/wd_list.c +429 -0
  385. data/pgpool2/watchdog/wd_packet.c +1159 -0
  386. data/pgpool2/watchdog/wd_ping.c +330 -0
  387. data/pgpool2/ylwrap +223 -0
  388. data/pgsql/presto_client.py +346 -0
  389. data/pgsql/prestogres.py +156 -0
  390. data/pgsql/setup_functions.sql +21 -0
  391. data/pgsql/setup_language.sql +3 -0
  392. data/prestogres.gemspec +23 -0
  393. metadata +496 -0
Binary file
@@ -0,0 +1,236 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="content-type" content="text/html;charset=utf8">
5
+ <link rel="stylesheet" href="./pgpool-ja.css" type="text/css">
6
+ <title>Watchdog Manual</title>
7
+ </head>
8
+ <body>
9
+ <h1>What is Watchdog</h1>
10
+ <p>
11
+ "watchdog" is a sub process of pgpool-II aiming for adding high availability feature to it.
12
+ Features added by watchdog include:
13
+
14
+ <ul>
15
+ <li>Life checking of pgpool service</li>
16
+ <p>
17
+ watchdog monitors responses of pgpool <i>service</i> rather than process.
18
+ It sends queries to PostgreSQL via pgpool which is being monitored
19
+ by watchdog and watchdog checks the response.
20
+ Also watchdog monitors connections to up stream servers
21
+ (application servers etc.) from the pgpool.
22
+ The connection between the up stream servers and the pgpool is monitored as service of pgpool.
23
+ </p>
24
+
25
+ <li>Mutual monitoring of watchdog processes</li>
26
+ <p>
27
+ watchdog processes exchange information on the monitored servers
28
+ to keep the information up to date,
29
+ and to allow watchdog processes to mutually monitor each other.
30
+ </p>
31
+
32
+ <li>Changing active/standby state in case of certain faults detected</li>
33
+ <p>
34
+ When a fault is detected in the pgpool service, watchdog notifies the other watchdogs of it.
35
+ Watchdogs decide the new active pgpool if previous active pgpool is broken
36
+ by voting and change active/standby state.
37
+ </p>
38
+
39
+ <li>Automatic virtual IP address assigning synchronous to server switching</li>
40
+ <p>
41
+ When a standby pgpool server promotes to active, the new active server brings up virtual IP interface.
42
+ Meanwhile, the previous active server brings down the virtual IP interface.
43
+ This enables the active pgpool to work using the same IP address even when servers is switched over.
44
+ </p>
45
+
46
+ <li>Automatic registration of a server as standby in recovery</li>
47
+ <p>
48
+ When broken server recovers or new server is attached,
49
+ the watchdog process notifies the other watchdog process along with information of the new server,
50
+ and the watchdog process receives information on the active server and other servers.
51
+ Then, the attached server is registered as standby.
52
+ </p>
53
+ </ul>
54
+ </p>
55
+ <h2>Server composition</h2>
56
+
57
+ <p>
58
+ Figure below describes how pgpool-II and watchdog process is configured.
59
+ </p>
60
+ <table align=center width=800>
61
+ <tr><td>
62
+ <img src="wd-en.jpg" alt="watchdog server composition" hight=70% width=70%>
63
+ </td></tr>
64
+ </table>
65
+ <h2>Starting/stopping watchdog</h2>
66
+ <p>
67
+ watchdog process is started/stopped automatically by pgpool-II,
68
+ therefore there is no dedicated command to start/stop it.
69
+ However, pgpool-II must to be started with <font color="red">root privilege</font>
70
+ because watchdog process needs to control the virtual IP interface.
71
+ </p>
72
+ <h2>Configuring watchdog (pgpool.conf)</h2>
73
+ <p>
74
+ watchdog configuration parameters is described in pgpool.conf.
75
+ There is sample configuration in WATCHDOG section in pgpool.conf.sample file.
76
+ All following options are required to be specified in watchdog process.
77
+ </p>
78
+
79
+ <h3>Basic configuration</h3>
80
+ <dl>
81
+
82
+ <dt><a name="USE_WATCHDOG"></a>use_watchdog</dt>
83
+ <dd>
84
+ <p>
85
+ If on, activates watchdog. Default is off.
86
+ </p>
87
+ </dd>
88
+
89
+ <dt><a name="TRUSTED_SERVERS"></a>trusted_servers</dt>
90
+ <dd>
91
+ <p>
92
+ The list of trusted servers to check the up stream connections.
93
+ Each server is required to respond to ping.
94
+ Specify a comma separated list of servers such as "hostA,hostB,hostC".
95
+ </p>
96
+ </dd>
97
+
98
+ <dt><a name="DELEGATE_IP"></a>delegate_IP</dt>
99
+ <dd>
100
+ <p>
101
+ Specifies the virtual IP address (VIP) of pgpool-II that is connected from
102
+ client servers (application servers etc.).
103
+ When a pgpool is switched from standby to active, the pgpool takes over this VIP.
104
+ </p>
105
+ </dd>
106
+
107
+ <dt><a name="WD_HOSTNAME"></a>wd_hostname</dt>
108
+ <dd>
109
+ <p>
110
+ Specifies the hostname or IP address for mutual monitoring of watchdog processes.
111
+ </p>
112
+ </dd>
113
+
114
+ <dt><a name="WD_PORT"></a>wd_port</dt>
115
+ <dd>
116
+ <p>
117
+ Specifies the port number for mutual monitoring of watchdog processes.
118
+ </p>
119
+ </dd>
120
+
121
+ <dt><a name="WD_INTERVAL"></a>wd_interval</dt>
122
+ <dd>
123
+ <p>
124
+ This parameter specifies the interval between life checks of pgpool-II
125
+ in second.
126
+ (A number greater than or equal to 1)
127
+
128
+ </p>
129
+ </dd>
130
+
131
+ <dt><a name="PING_PATH"></a>ping_path</dt>
132
+ <dd>
133
+ <p>
134
+ This parameter specifies a path of ping command for monitoring connection
135
+ to the upper servers.
136
+ Set the only path such as "/bin".
137
+ </p>
138
+ </dd>
139
+
140
+ <dt><a name="IFCONFIG_PATH"></a>ifconfig_path</dt>
141
+ <dd>
142
+ <p>
143
+ This parameter specifies a path of a command to switch the IP address.
144
+ Set the only path such as "/sbin".
145
+ </p>
146
+ </dd>
147
+
148
+ <dt><a name="IF_UP_CMD"></a>if_up_cmd</dt>
149
+ <dd>
150
+ <p>
151
+ This parameter specifies a command to bring up the virtual IP.
152
+ Set the command and parameters such as
153
+ "ifconfig eth0:0 inet $_IP_$ netmask 255.255.255.0".
154
+ $_IP_$ is replaced by the IP address specified in delegate_IP.
155
+ </p>
156
+ </dd>
157
+
158
+ <dt><a name="IF_DOWN_CMD"></a>if_down_cmd</dt>
159
+ <dd>
160
+ <p>
161
+ This parameter specifies a command to bring down the virtual IP.
162
+ Set the command and parameters such as
163
+ "ifconfig eth0:0 down".
164
+ </p>
165
+ </dd>
166
+
167
+ <dt><a name="ARPING_PATH"></a>arping_path</dt>
168
+ <dd>
169
+ <p>
170
+ This parameter specifies a path of a command to send an ARP request
171
+ after the virtual IP is switched.
172
+ Set the only path such as "/usr/sbin".
173
+ </p>
174
+ </dd>
175
+
176
+ <dt><a name="ARPING_CMD"></a>arping_cmd</dt>
177
+ <dd>
178
+ <p>
179
+ This parameter specifies a command to send an ARP request
180
+ after the virtual IP is switched.
181
+ Set the command and parameters such as
182
+ "arping -U $_IP_$ -w 1".
183
+ $_IP_$ is replaced by the IP address specified in delegate_IP.
184
+ </p>
185
+ </dd>
186
+
187
+ <dt><a name="WD_LIFE_POINT"></a>wd_life_point</dt>
188
+ <dd>
189
+ <p>
190
+ The times to retry a failed life check of pgpool-II.
191
+ (A number greater than or equal to 1)
192
+
193
+ </p>
194
+ </dd>
195
+
196
+ <dt><a name="WD_LIFECHECK_QUERY"></a>wd_lifecheck_query</dt>
197
+ <dd>
198
+ <p>
199
+ Actual query to check pgpool-II.
200
+ Default is "SELECT 1"
201
+ </p>
202
+ </dd>
203
+
204
+ </dl>
205
+
206
+ <h3>Servers to be monitored</h3>
207
+ <dl>
208
+ <dt><a name="OTHER_PGPOOL_HOSTNAME"></a>other_pgpool_hostname<font color="red">0</font></dt>
209
+ <dd>
210
+ <p>
211
+ Specifies the hostname pgpool-II server to be monitored.
212
+ The number at the end of the parameter name is referred as "server id",
213
+ and it starts from 0.
214
+ </p>
215
+ </dd>
216
+
217
+ <dt><a name="OTHER_PGPOOL_PORT"></a>other_pgpool_port<font color="red">0</font></dt>
218
+ <dd>
219
+ <p>
220
+ Specifies the port number for pgpool on pgpool-II server to be monitored.
221
+ The number at the end of the parameter name is referred as "server id",
222
+ and it starts from 0.
223
+ </p>
224
+ </dd>
225
+
226
+ <dt><a name="OTHER_WD_PORT"></a>other_wd_port<font color="red">0</font></dt>
227
+ <dd>
228
+ <p>
229
+ Specifies the port number for watchdog on pgpool-II server to be monitored.
230
+ The number at the end of the parameter name is referred as "server id",
231
+ and it starts from 0.
232
+ </p>
233
+ </dd>
234
+ </dl>
235
+ </body>
236
+ </html>
Binary file
@@ -0,0 +1,219 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="content-type" content="text/html;charset=utf8">
5
+ <link rel="stylesheet" href="./pgpool-ja.css" type="text/css">
6
+ <title>Watchdogマニュアル</title>
7
+ </head>
8
+ <body>
9
+ <h1>Watchdog</h1>
10
+ <p>
11
+ watchdogプロセスはpgpool-II本体から起動される、高可用性を目的としたプロセスです。 以下の機能を提供します。
12
+ <ul>
13
+ <li>pgpoolサービスの生死監視</li>
14
+ <p>
15
+ watchdogはpgpoolのプロセスではなく、サービスの応答を監視します。
16
+ 監視対象のpgpoolからPostgreSQLに問い合わせを行い、その応答をチェックします。
17
+ またwatchdogは、pgpoolから上位のサーバ(アプリケーションサーバなど)への接続も監視します。上位サーバからPostgreSQLへの接続・応答をpgpoolのサービスとして生死監視します。
18
+ </p>
19
+ <li>watchdogプロセスの相互監視</li>
20
+ <p>
21
+ 各watchdogはお互いの監視対象のサーバの情報を交換します。
22
+ これにより、pgpoolサーバの情報を最新に保てるだけでなく、各watchdogプロセスの相互監視を行っています。
23
+ </p>
24
+ <li>障害発生検知時のアクティブ、スタンバイ切り替え</li>
25
+ <p>
26
+ pgpoolのサービスに障害を検知した場合、watchdogは他のwatchdogに障害検知を通知します。
27
+ 故障したpgpoolがアクティブの場合、他のwatchdogは新しいアクティブを投票で決め、アクティブ・スタンバイの切り替えを行います。
28
+ </p>
29
+ <li>サーバ切り替えと連動した仮想IPアドレスの自動付け替え</li>
30
+ <p>
31
+ スタンバイが新しいアクティブに昇格する際、新アクティブ機のwatchdogはアクティブ用の仮想IPインターフェースを起動します。
32
+ 一方、旧アクティブ機のwatchdogはアクティブ用仮想IPインターフェースを停止します。
33
+ これにより、サーバが切り替わった後もアクティブは同じIPアドレスでサービスを継続することができます。
34
+
35
+ </p>
36
+ <li>サーバ復旧時、スタンバイ機としての自動登録</li>
37
+ <p>
38
+ 障害機の復旧や新規サーバを追加する場合、watchdogはサーバの情報を他のwatchdogに通知し、他のwatchdogからはアクティブや他のサーバの情報を受け取ります。これにより追加したサーバはスタンバイ機として自動的に追加されます。
39
+ </p>
40
+ </ul>
41
+ </p>
42
+ <h2>サーバ構成</h2>
43
+ <p>
44
+ watchdogプロセスを含むpgpool-IIサーバは以下の図のようなシステム構成をとります。
45
+ </p>
46
+ <table align=center width=800>
47
+ <tr><td>
48
+ <img src="wd-ja.jpg" alt="watchdog server composition" hight=70% width=70%>
49
+ </td></tr>
50
+ </table>
51
+
52
+ <h2>watchdogの起動と停止</h2>
53
+ <p>
54
+ watchdogプロセスはpgpool-IIから自動的に起動・停止されますので、固有の起動・停止コマンドはありません。
55
+ しかし、watchdogプロセスは仮想IPインターフェースの起動・停止を行いますので、
56
+ pgpool-IIの起動は
57
+ <font color="red">
58
+ root権限で
59
+ </font>行う必要があります。
60
+ </p>
61
+
62
+ <h2>pgpool.confの設定</h2>
63
+ <p>
64
+ watchdogプロセスの設定項目はpgpool.confに記述します。
65
+ pgpool.conf.sampleファイルのWATCHDOGセクションにサンプルを記述していますので、参照してください。
66
+ watchdogプロセスは以下の項目すべてを指定する必要があります。
67
+ </p>
68
+
69
+ <h3>基本設定セクション</h3>
70
+ <dl>
71
+
72
+ <dt><a name="USE_WATCHDOG"></a>use_watchdog</dt>
73
+ <dd>
74
+ <p>
75
+ watchdog を有効にするには on にします。デフォルトは off です。
76
+ </p>
77
+ </dd>
78
+
79
+ <dt><a name="TRUSTED_SERVERS"></a>trusted_servers</dt>
80
+ <dd>
81
+ <p>
82
+ 上位接続を確認するための信頼できるサーバリストです。
83
+ pingの応答が得られる必要があります。
84
+ hostA,hostB,hostC...のようにカンマで区切って複数のサーバを指定できます。
85
+ </p>
86
+ </dd>
87
+
88
+ <dt><a name="DELEGATE_IP"></a>delegate_IP</dt>
89
+ <dd>
90
+ <p>
91
+ (アプリケーションサーバなど)外部からの接続されるpgpool-IIの仮想IPアドレスです。
92
+ スタンバイからアクティブに切り替わる際、pgpoolはこの仮想IPを引き継ぎます。
93
+ </p>
94
+ </dd>
95
+
96
+ <dt><a name="WD_HOSTNAME"></a>wd_hostname</dt>
97
+ <dd>
98
+ <p>
99
+ watchdogプロセスが相互監視を受信する為のホスト名またはIPアドレスです。
100
+ </p>
101
+ </dd>
102
+
103
+ <dt><a name="WD_PORT"></a>wd_port</dt>
104
+ <dd>
105
+ <p>
106
+ watchdogプロセスが相互監視を受信する為のポート番号です。
107
+ </p>
108
+ </dd>
109
+
110
+ <dt><a name="WD_INTERVAL"></a>wd_interval</dt>
111
+ <dd>
112
+ <p>
113
+ pgpool-IIへの生存監視の間隔(秒)です。
114
+ (1以上の数値)
115
+ </p>
116
+ </dd>
117
+
118
+ <dt><a name="PING_PATH"></a>ping_path</dt>
119
+ <dd>
120
+ <p>
121
+ 上位サーバへの接続監視に利用するpingコマンドのパスです。
122
+ /bin のようにパスだけを指定します。
123
+ </p>
124
+ </dd>
125
+
126
+ <dt><a name="IFCONFIG_PATH"></a>ifconfig_path</dt>
127
+ <dd>
128
+ <p>
129
+ IPアドレス切り替えに利用するコマンドのパスです。
130
+ /sbin のようにパスだけを指定します。
131
+ </p>
132
+ </dd>
133
+
134
+ <dt><a name="IF_UP_CMD"></a>if_up_cmd</dt>
135
+ <dd>
136
+ <p>
137
+ 仮想IPを起動するために実行するコマンドです。
138
+ ifconfig eth0:0 inet $_IP_$ netmask 255.255.255.0
139
+ のようにコマンドとパラメータを指定します。
140
+ $_IP_$ はdelegate_IPで指定されたIPアドレスに置換されます。
141
+ </p>
142
+ </dd>
143
+
144
+ <dt><a name="IF_DOWN_CMD"></a>if_down_cmd</dt>
145
+ <dd>
146
+ <p>
147
+ 仮想IPを停止するために実行するコマンドです。
148
+ ifconfig eth0:0 down
149
+ のようにコマンドとパラメータを指定します。
150
+ </p>
151
+ </dd>
152
+
153
+ <dt><a name="ARPING_PATH"></a>arping_path</dt>
154
+ <dd>
155
+ <p>
156
+ IPアドレス切り替え後にARPリクエストを送信するコマンドのパスです。
157
+ /usr/sbin のようにパスだけを指定します。
158
+ </p>
159
+ </dd>
160
+
161
+ <dt><a name="ARPING_CMD"></a>arping_cmd</dt>
162
+ <dd>
163
+ <p>
164
+ IPアドレス切り替え後にARPリクエストを送信するコマンドです。
165
+ arping -U $_IP_$ -w 1
166
+ のようにコマンドとパラメータを指定します。
167
+ $_IP_$ はdelegate_IPで指定されたIPアドレスに置換されます。
168
+ </p>
169
+ </dd>
170
+
171
+ <dt><a name="WD_LIFE_POINT"></a>wd_life_point</dt>
172
+ <dd>
173
+ <p>
174
+ pgpool-IIの生死監視で応答が得られなかった場合のリトライ回数です。
175
+ (1以上の数値)
176
+ </p>
177
+ </dd>
178
+ </dl>
179
+
180
+ <dt><a name="WD_LIFECHECK_QUERY"></a>wd_lifecheck_query</dt>
181
+ <dd>
182
+ <p>
183
+ pgpool-II の死活監視のために発行されるクエリです。
184
+ デフォルトは "SELECT 1" です。
185
+ </p>
186
+ </dd>
187
+
188
+ <h3>監視対象サーバ指定セクション</h3>
189
+ <dl>
190
+ <dt><a name="OTHER_PGPOOL_HOSTNAME"></a>other_pgpool_hostname<font color="red">0</font></dt>
191
+ <dd>
192
+ <p>
193
+ 監視対象のpgpool-IIサーバのホスト名を指定します。
194
+ 数値の部分は監視対象サーバの番号です。
195
+ 監視対象のサーバ毎に0からの連番にします。
196
+ </p>
197
+ </dd>
198
+
199
+ <dt><a name="OTHER_PGPOOL_PORT"></a>other_pgpool_port<font color="red">0</font></dt>
200
+ <dd>
201
+ <p>
202
+ 監視対象のpgpool-IIサーバのpgpool用のポート番号を指定します。
203
+ 数値の部分は監視対象サーバの番号です。
204
+ 監視対象のサーバ毎に0からの連番にします。
205
+ </p>
206
+ </dd>
207
+
208
+ <dt><a name="OTHER_WD_PORT"></a>other_wd_port<font color="red">0</font></dt>
209
+ <dd>
210
+ <p>
211
+ 監視対象のpgpool-IIサーバのwatchdog用のポート番号を指定します。
212
+ 数値の部分は監視対象サーバの番号です。
213
+ 監視対象のサーバ毎に0からの連番にします。
214
+ </p>
215
+ </dd>
216
+ </dl>
217
+
218
+ </body>
219
+ </html>