【发布时间】:2012-10-29 13:53:59
【问题描述】:
从根本上说,这个问题是关于:可以跨多个进程使用相同的数据库连接(因为不同的 map-reduce 作业位于不同的独立进程中)。
我知道这是一个微不足道的问题,但如果有人也能回答这个问题,那就太好了:如果与数据库的最大连接数(在托管数据库的服务器上预先配置)有筋疲力尽并且一个新的进程试图建立一个新的连接?它是否等待一段时间,如果是,是否有办法为此等待期设置超时。在这种特殊情况下,我说的是 PostGres DB,用于与 DB 对话的语言是 java。
为了让您了解问题的背景,我有多个并行运行的 map-reduce 作业(大约 40 个 reducer),每个都想更新 PostGres 数据库。我如何有效地管理这些进程中的这些数据库读/写。注意:数据库托管在单独的机器上,与运行 map reduce 作业的位置无关。
连接池是一种选择,但有时效率非常低,尤其是对于每秒多次读取/写入。
【问题讨论】:
标签: java database postgresql hadoop mapreduce