[pgcluster: 169] Re: レプリケーションサーバからのクラスタサーバへの接続は可能?

TANIDA Yutaka tanida @ sra.co.jp
2004年 2月 25日 (水) 18:03:16 JST


--------_403C63C0E796029308F8_MULTIPART_MIXED_
Content-Type: text/plain; charset="ISO-2022-JP"
Content-Transfer-Encoding: 7bit

谷田です。

On Tue, 24 Feb 2004 08:57:04 +0900
mitani <mitani @ sraw.co.jp> wrote:

> > ・libpqを拡張し、レプリケーションサーバーからのSQLコマンドとか、特殊命令
> > とかを受け取るようにする。
> > ・レプリケーションサーバーからのみ、これらの拡張からコマンドを投げるよう
> > に仕様を定める。
> > 
> > とする事で改善しませんか?判定も楽になるように思いますが。たしかに、専用
> > の命令を投げるのは面倒ですが、今のまま汎用のlibpqでやろうというのはそろ
> > そろ限界のように思います。
> それをやるには,(当然ですが)レプリケーションのアルゴリズム全体の見直し
> が必要です.

うーん、アルゴリズム自体は見直す必要はないのですが。

論よりソースなので、とりあえず動くpatchを書いてみました。クラスタノード
でレプリケーションサーバーからかどうかを調べなくて済むので、若干高速にな
るかもしれません。

ちなみに、libpqを改造しているので、バイナリ互換性が無くなるかもしれませ
ん。ソース互換性は確認しています。

> どうせやるなら,レプリケーションサーバとクラスタサーバの同居を可能にする
> (私的にはお勧めしたくない形態なのですが...)こと以外にもメリットが欲
> しいですね.
> 
> > # ひょっとして、今はレプリケーションサーバー上のpsqlから命令を投げてもレ
> > プリケートしないようになっているのですか?
> はい,そうなってます.

とりあえず、これは問題が無くなる事を確認しました。

-- 
TANIDA Yutaka <tanida @ sra.co.jp>

--------_403C63C0E796029308F8_MULTIPART_MIXED_
Content-Type: application/octet-stream; name="pgcluster_extended_libpq_try2.patch"
Content-Disposition: attachment;
 filename="pgcluster_extended_libpq_try2.patch"
Content-Transfer-Encoding: base64

ZGlmZiAtY3JOIHBnY2x1c3Rlci0xLjAuNmMvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jIHBn
Y2x1c3Rlci0xLjAuNmMubmV3L3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYwoqKiogcGdjbHVz
dGVyLTEuMC42Yy9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMJVHVlIEphbiAyNyAxNzoxNzoz
NSAyMDA0Ci0tLSBwZ2NsdXN0ZXItMS4wLjZjLm5ldy9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVz
LmMJV2VkIEZlYiAyNSAxNjo0NToyNyAyMDA0CioqKioqKioqKioqKioqKgoqKiogMjU4LDI2MyAq
KioqCi0tLSAyNTgsMjY2IC0tLS0KICAJCQkvKgogIAkJCSAqICdRJzogdXNlciBlbnRlcmVkIGEg
cXVlcnkKICAJCQkgKi8KKyAjaWZkZWYgVVNFX1JFUExJQ0FUSU9OCisgCSAgICAgICBjYXNlICdP
JzoJCisgI2VuZGlmCiAgCQljYXNlICdRJzoKICAJCQlpZiAocHFfZ2V0c3RyKGluQnVmKSkKICAJ
CQkJcmV0dXJuIEVPRjsKKioqKioqKioqKioqKioqCioqKiA1NzcsNTgzICoqKioKICAJY2hhciAq
IG51bGxfcHRyID0gTlVMTDsKICAJYm9vbCBza2lwX3JlcGxpY2F0aW9uX3F1ZXJ5ID0gZmFsc2U7
CiAgCWludCBzdGF0dXM7CiEgCVBHUl9Jc19SZXBsaWNhdGVkX1F1ZXJ5ID0gUEdSX0lzX1JlcGxp
Y2F0ZWRfQ29tbWFuZCgpOwogIAlxdWVyeV9wdHIgPSBxdWVyeV9zdHJpbmctPmRhdGE7CiAgI2Vu
ZGlmIC8qIFVTRV9SRVBMSUNBVElPTiAqLwogIAotLS0gNTgwLDU4NiAtLS0tCiAgCWNoYXIgKiBu
dWxsX3B0ciA9IE5VTEw7CiAgCWJvb2wgc2tpcF9yZXBsaWNhdGlvbl9xdWVyeSA9IGZhbHNlOwog
IAlpbnQgc3RhdHVzOwohIAkvLwlQR1JfSXNfUmVwbGljYXRlZF9RdWVyeSA9IFBHUl9Jc19SZXBs
aWNhdGVkX0NvbW1hbmQoKTsKICAJcXVlcnlfcHRyID0gcXVlcnlfc3RyaW5nLT5kYXRhOwogICNl
bmRpZiAvKiBVU0VfUkVQTElDQVRJT04gKi8KICAKKioqKioqKioqKioqKioqCioqKiAyMTg0LDIx
ODkgKioqKgotLS0gMjE4NywyMTk1IC0tLS0KICAJCQlnb3RfU0lHSFVQID0gZmFsc2U7CiAgCQkJ
UHJvY2Vzc0NvbmZpZ0ZpbGUoUEdDX1NJR0hVUCk7CiAgCQl9CisgI2lmZGVmIFVTRV9SRVBMSUNB
VElPTgorIAkJICBQR1JfSXNfUmVwbGljYXRlZF9RdWVyeT1mYWxzZTsKKyAjZW5kaWYgCQkgICAg
ICAgICAgICAgIAogIAogIAkJLyoKICAJCSAqICg2KSBwcm9jZXNzIHRoZSBjb21tYW5kLgoqKioq
KioqKioqKioqKioKKioqIDIyMjAsMjIyNiAqKioqCi0tLSAyMjI2LDIyNDAgLS0tLQogIAkJCQkv
KiBjb21taXQgdGhlIGZ1bmN0aW9uLWludm9jYXRpb24gdHJhbnNhY3Rpb24gKi8KICAJCQkJZmlu
aXNoX3hhY3RfY29tbWFuZChmYWxzZSk7CiAgCQkJCWJyZWFrOworICNpZmRlZiBVU0VfUkVQTElD
QVRJT04KKyAJCQkJLyoqCisgCQkJCSAqICdPJyBpbmRpY2F0ZXMgYSBxdWVyeSBmcm9tIHJlcGxp
Y2F0aW9uIHNlcnZlci4KKyAJCQkJICoKKyAJCQkJICovCisgCQljYXNlICdPJzoKKyAJCSAgUEdS
X0lzX1JlcGxpY2F0ZWRfUXVlcnk9dHJ1ZTsKICAKKyAjZW5kaWYgCQkgICAgICAgICAgICAgIAog
IAkJCQkvKgogIAkJCQkgKiAnUScgaW5kaWNhdGVzIGEgdXNlciBxdWVyeQogIAkJCQkgKi8KZGlm
ZiAtY3JOIHBnY2x1c3Rlci0xLjAuNmMvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jIHBn
Y2x1c3Rlci0xLjAuNmMubmV3L3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWV4ZWMuYwoqKiogcGdj
bHVzdGVyLTEuMC42Yy9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMJVHVlIERlYyAxNiAx
Njo1MjozNCAyMDAzCi0tLSBwZ2NsdXN0ZXItMS4wLjZjLm5ldy9zcmMvaW50ZXJmYWNlcy9saWJw
cS9mZS1leGVjLmMJV2VkIEZlYiAyNSAxNDowMjoxNCAyMDA0CioqKioqKioqKioqKioqKgoqKiog
NzIyLDcyOSAqKioqCiAgICoJCQkwIGlmIGVycm9yIChjb25uLT5lcnJvck1lc3NhZ2UgaXMgc2V0
KQogICAqLwogIAogIGludAohIFBRc2VuZFF1ZXJ5KFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAq
cXVlcnkpCiAgewogIAlpZiAoIWNvbm4pCiAgCQlyZXR1cm4gMDsKLS0tIDcyMiw3NDIgLS0tLQog
ICAqCQkJMCBpZiBlcnJvciAoY29ubi0+ZXJyb3JNZXNzYWdlIGlzIHNldCkKICAgKi8KICAKKyAK
KyBpbnQKKyBQUXNlbmRRdWVyeShQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnF1ZXJ5KSB7Cisg
ICByZXR1cm4gUFFzZW5kUXVlcnlJbnRlcm5hbChjb25uLHF1ZXJ5LCdRJyk7CisgfQorIAogIGlu
dAohIFBRc2VuZFF1ZXJ5UmVwKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqcXVlcnkpIHsKISAg
IHJldHVybiBQUXNlbmRRdWVyeUludGVybmFsKGNvbm4scXVlcnksJ08nKTsKISB9CiEgCiEgCiEg
CiEgc3RhdGljIGludAohIFBRc2VuZFF1ZXJ5SW50ZXJuYWwoUEdjb25uICpjb25uLCBjb25zdCBj
aGFyICpxdWVyeSxjaGFyIGtleSkKICB7CiAgCWlmICghY29ubikKICAJCXJldHVybiAwOwoqKioq
KioqKioqKioqKioKKioqIDc3OSw3ODUgKioqKgogIAkJCXJldHVybiAwOwogIAkJLyogJ1EnID09
IHF1ZXJpZXMgKi8KICAJCS8qIFhYWDogaWYgd2UgZmFpbCBoZXJlIHdlIHJlYWxseSBvdWdodCB0
byBub3QgYmxvY2sgKi8KISAJCWlmIChwcVB1dGMoJ1EnLCBjb25uKSAhPSAwIHx8IHBxUHV0cyhx
dWVyeSwgY29ubikgIT0gMCkKICAJCXsKICAJCQloYW5kbGVTZW5kRmFpbHVyZShjb25uKTsKICAJ
CQlyZXR1cm4gMDsKLS0tIDc5Miw3OTggLS0tLQogIAkJCXJldHVybiAwOwogIAkJLyogJ1EnID09
IHF1ZXJpZXMgKi8KICAJCS8qIFhYWDogaWYgd2UgZmFpbCBoZXJlIHdlIHJlYWxseSBvdWdodCB0
byBub3QgYmxvY2sgKi8KISAJCWlmIChwcVB1dGMoa2V5LCBjb25uKSAhPSAwIHx8IHBxUHV0cyhx
dWVyeSwgY29ubikgIT0gMCkKICAJCXsKICAJCQloYW5kbGVTZW5kRmFpbHVyZShjb25uKTsKICAJ
CQlyZXR1cm4gMDsKKioqKioqKioqKioqKioqCioqKiA3OTYsODAyICoqKioKICAJCS8qCiAgCQkg
KiB0aGUgZnJvbnRlbmQtYmFja2VuZCBwcm90b2NvbCB1c2VzICdRJyB0byBkZXNpZ25hdGUgcXVl
cmllcwogIAkJICovCiEgCQlpZiAocHFQdXRjKCdRJywgY29ubikgIT0gMCB8fCBwcVB1dHMocXVl
cnksIGNvbm4pICE9IDAgfHwKICAJCQlwcUZsdXNoKGNvbm4pICE9IDApCiAgCQl7CiAgCQkJaGFu
ZGxlU2VuZEZhaWx1cmUoY29ubik7Ci0tLSA4MDksODE1IC0tLS0KICAJCS8qCiAgCQkgKiB0aGUg
ZnJvbnRlbmQtYmFja2VuZCBwcm90b2NvbCB1c2VzICdRJyB0byBkZXNpZ25hdGUgcXVlcmllcwog
IAkJICovCiEgCQlpZiAocHFQdXRjKGtleSwgY29ubikgIT0gMCB8fCBwcVB1dHMocXVlcnksIGNv
bm4pICE9IDAgfHwKICAJCQlwcUZsdXNoKGNvbm4pICE9IDApCiAgCQl7CiAgCQkJaGFuZGxlU2Vu
ZEZhaWx1cmUoY29ubik7CioqKioqKioqKioqKioqKgoqKiogMTM5MSwxMzk3ICoqKioKICAgKi8K
ICAKICBQR3Jlc3VsdCAqCiEgUFFleGVjKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqcXVlcnkp
CiAgewogIAlQR3Jlc3VsdCAgICpyZXN1bHQ7CiAgCVBHcmVzdWx0ICAgKmxhc3RSZXN1bHQ7Ci0t
LSAxNDA0LDE0MjIgLS0tLQogICAqLwogIAogIFBHcmVzdWx0ICoKISBQUWV4ZWMoUEdjb25uICpj
b25uLCBjb25zdCBjaGFyICpxdWVyeSkgewohICAgcmV0dXJuIFBRZXhlY0ludGVybmFsKGNvbm4s
cXVlcnksJ1EnKTsKISB9CiEgCiEgUEdyZXN1bHQgKgohIFBRZXhlY1JlcChQR2Nvbm4gKmNvbm4s
IGNvbnN0IGNoYXIgKnF1ZXJ5KSB7CiEgICByZXR1cm4gUFFleGVjSW50ZXJuYWwoY29ubixxdWVy
eSwnTycpOwohIH0KISAKISAKISAKISBzdGF0aWMgUEdyZXN1bHQgKgohIFBRZXhlY0ludGVybmFs
KFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqcXVlcnksY29uc3QgY2hhciBrZXkpCiAgewogIAlQ
R3Jlc3VsdCAgICpyZXN1bHQ7CiAgCVBHcmVzdWx0ICAgKmxhc3RSZXN1bHQ7CioqKioqKioqKioq
KioqKgoqKiogMTQyNiwxNDMyICoqKioKICAJfQogIAogIAkvKiBPSyB0byBzZW5kIHRoZSBtZXNz
YWdlICovCiEgCWlmICghUFFzZW5kUXVlcnkoY29ubiwgcXVlcnkpKQogIAkJZ290byBlcnJvdXQ7
CQkJLyogcmVzdG9yZSBibG9ja2luZyBzdGF0dXMgKi8KICAKICAJLyoKLS0tIDE0NTEsMTQ1NyAt
LS0tCiAgCX0KICAKICAJLyogT0sgdG8gc2VuZCB0aGUgbWVzc2FnZSAqLwohIAlpZiAoIVBRc2Vu
ZFF1ZXJ5SW50ZXJuYWwoY29ubiwgcXVlcnksa2V5KSkKICAJCWdvdG8gZXJyb3V0OwkJCS8qIHJl
c3RvcmUgYmxvY2tpbmcgc3RhdHVzICovCiAgCiAgCS8qCmRpZmYgLWNyTiBwZ2NsdXN0ZXItMS4w
LjZjL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWZlLmggcGdjbHVzdGVyLTEuMC42Yy5uZXcv
c3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtZmUuaAoqKiogcGdjbHVzdGVyLTEuMC42Yy9zcmMv
aW50ZXJmYWNlcy9saWJwcS9saWJwcS1mZS5oCVR1ZSBEZWMgMTYgMTY6NTI6MzQgMjAwMwotLS0g
cGdjbHVzdGVyLTEuMC42Yy5uZXcvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtZmUuaAlXZWQg
RmViIDI1IDEzOjU4OjE3IDIwMDQKKioqKioqKioqKioqKioqCioqKiAyNTcsMjYyICoqKioKLS0t
IDI1NywyNjkgLS0tLQogIAogIC8qIFNpbXBsZSBzeW5jaHJvbm91cyBxdWVyeSAqLwogIGV4dGVy
biBQR3Jlc3VsdCAqUFFleGVjKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqcXVlcnkpOworIAor
IGV4dGVybiBQR3Jlc3VsdCAqUFFleGVjUmVwKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqcXVl
cnkpOworIGV4dGVybiBpbnQJUFFzZW5kUXVlcnlSZXAoUEdjb25uICpjb25uLCBjb25zdCBjaGFy
ICpxdWVyeSk7CisgCisgCisgCisgCiAgZXh0ZXJuIFBHbm90aWZ5ICpQUW5vdGlmaWVzKFBHY29u
biAqY29ubik7CiAgZXh0ZXJuIHZvaWQgUFFmcmVlTm90aWZ5KFBHbm90aWZ5ICpub3RpZnkpOwog
IApkaWZmIC1jck4gcGdjbHVzdGVyLTEuMC42Yy9zcmMvcGdjbHVzdGVyL3BncnAvcmVwbGljYXRl
LmMgcGdjbHVzdGVyLTEuMC42Yy5uZXcvc3JjL3BnY2x1c3Rlci9wZ3JwL3JlcGxpY2F0ZS5jCioq
KiBwZ2NsdXN0ZXItMS4wLjZjL3NyYy9wZ2NsdXN0ZXIvcGdycC9yZXBsaWNhdGUuYwlUdWUgSmFu
IDI3IDE3OjQyOjE1IDIwMDQKLS0tIHBnY2x1c3Rlci0xLjAuNmMubmV3L3NyYy9wZ2NsdXN0ZXIv
cGdycC9yZXBsaWNhdGUuYwlXZWQgRmViIDI1IDE0OjExOjUxIDIwMDQKKioqKioqKioqKioqKioq
CioqKiAxMTczLDExNzkgKioqKgogIAkJc25wcmludGYoc3luY19jb21tYW5kLHNpemVvZihzeW5j
X2NvbW1hbmQpLCJTRUxFQ1QgJXMoJWQsJXUsJXUpICIsUEdSX1NZU1RFTV9DT01NQU5EX0ZVTkMs
UEdSX1NFVF9DVVJSRU5UX1RJTUVfRlVOQ19OTywodW5zaWduZWQgaW50KWhlYWRlci0+dHYudHZf
c2VjLCh1bnNpZ25lZCBpbnQpaGVhZGVyLT50di50dl91c2VjKTsKICAJCXNob3dfZGVidWcoInN5
bmNfY29tbWFuZCglcykiLHN5bmNfY29tbWFuZCk7CiAgCiEgCQlyZXMgPSBQUWV4ZWMoY29ubiwg
c3luY19jb21tYW5kKTsKICAJCWlmIChyZXMgIT0gTlVMTCkKICAJCXsKICAJCQlQUWNsZWFyKHJl
cyk7Ci0tLSAxMTczLDExNzkgLS0tLQogIAkJc25wcmludGYoc3luY19jb21tYW5kLHNpemVvZihz
eW5jX2NvbW1hbmQpLCJTRUxFQ1QgJXMoJWQsJXUsJXUpICIsUEdSX1NZU1RFTV9DT01NQU5EX0ZV
TkMsUEdSX1NFVF9DVVJSRU5UX1RJTUVfRlVOQ19OTywodW5zaWduZWQgaW50KWhlYWRlci0+dHYu
dHZfc2VjLCh1bnNpZ25lZCBpbnQpaGVhZGVyLT50di50dl91c2VjKTsKICAJCXNob3dfZGVidWco
InN5bmNfY29tbWFuZCglcykiLHN5bmNfY29tbWFuZCk7CiAgCiEgCQlyZXMgPSBQUWV4ZWNSZXAo
Y29ubiwgc3luY19jb21tYW5kKTsKICAJCWlmIChyZXMgIT0gTlVMTCkKICAJCXsKICAJCQlQUWNs
ZWFyKHJlcyk7CioqKioqKioqKioqKioqKgoqKiogMTE5NiwxMjAyICoqKioKICAJfQogIAllbHNl
CiAgCXsKISAJCXJlcyA9IFBRZXhlYyhjb25uLCBxdWVyeSk7CiAgCX0KICAKICAJaWYgKHJlcyA9
PSBOVUxMKQotLS0gMTE5NiwxMjAyIC0tLS0KICAJfQogIAllbHNlCiAgCXsKISAJCXJlcyA9IFBR
ZXhlY1JlcChjb25uLCBxdWVyeSk7CiAgCX0KICAKICAJaWYgKHJlcyA9PSBOVUxMKQo=

--------_403C63C0E796029308F8_MULTIPART_MIXED_--




pgcluster メーリングリストの案内