アーカイブ

‘web’ カテゴリーのアーカイブ

Tomcat 5.5.28にしたら、Cookieの値がダブルクオーテーションで囲まれる様になった

2009 年 9 月 15 日 tdtsh Comments off

数年ほったらかしだったWEBサービス(java)のミドルウェア達を、いっきにバージョンアップしてみました。
そしたら、認証関係で不具合が・・・

認証にはCookieを使っているんだけど、どうやら、その値が変わった事が原因の模様。
前までは、

key.hogehoge
valuehogehoge

だったのが、

key.hogehoge
"valuehogehoge"

になっちゃってるじゃん。
旧のCookieが無効になっちゃう訳で、アプリケーションの動きとしては、認証のやり直しになる。
でもサーバ単体でテストする分には、フツーに動くように見える。

しかし、実環境ではロードバランシングとかしてて、新旧混在してたもんだから、
あっちで認証、こっちでログアウトてな感じになってしまった。

影響範囲でかすぎ。

ビンボだから、サーバが沢山ある訳じゃない。
いっぺんにフロントエンドのサーバ全部のマイグレーションなんか出来へんのです。

参考サイト
Apache Tomcat 5.5.26仕様変更対応(案) – Geek Not Found

カテゴリー: java, web, インフラ タグ:

DOA、RDB と Key Valueストア(KVS)について

2009 年 7 月 30 日 tdtsh Comments off

前々回前回、に引き続き、Key Valueストア(KVS)ネタ。

データの整合性(Consistency)を重視するRDB、データの可用性(Availability)とデータの分散化(Partition-tolerance)を重視するKVS。

要件によって向き不向きがある訳だけど、toCのWEBサービスを考える時、全部バランスよく、しかもコストを抑えつつ実現したい訳です。

RDBマンセーなわたしでさえ、KVSに軍配を上げざるを得ないんですね。

もちろん、SalesForceみたいなアプローチも悪くない。
でも、DOA的な観点から考えると、アレは邪道なんでしょうねぇ。

Key Valueストアがリレーショナルデータベースを駆逐するシナリオの妥当性:Azureの鼓動:ITmedia オルタナティブ・ブログ
概ね同意ですが、少なくともWEBアプリケーション、特に toC に関して言えば、Key Valueストアは破壊的イノベーションだと思います。

前回も参考にしたこの記事が、的を射た説明をしてくれている。

もう1つの、DBのかたち、分散Key-Valueストアとは (1/3) – @IT

RDBで負荷分散させようとすると……
例えばMySQLを使う場合、1テーブルのレコード件数が数百万~数千万件を超えるような規模になると、1台のDBサーバだけでは実用的なパフォーマンスが達成しにくくなります。そこで一般には、以下のような対策によってRDBのスケーラビリティを引き上げる努力が必要となります。
・RDBサーバのスケールアップ(大型サーバへの載せ替え)
・DBのレプリケーションやシャード(パーティション)分割によるクラスタ構築
・分散キャッシュ(Oracle RACやmemcachedなど)によるクラスタ構築
経験者ならばお分かりいただけるとおり、このどれもが結果的に「高コスト」となるソリューションです。

要するに、そういうことなんすよ・・・
私たちRDBMS屋は、ココが腕の見せ所のひとつであり、飯の種な訳だったんですが、GAE上のBigTableでいともあっさり解決できてしまう予感。

DOA+コンソーシアム(ディー・オー・エー・プラス コンソーシアム)
ひっそりと活動を続けるDOAコンソーシアムでは、Key Valueストアをどう捕らえているんだろう。

株式会社マジカジャパンの羽生章洋が書いてるブログ:端境期を感じるシステム開発 – livedoor Blog(ブログ)

Bigtableの使い方教えます – ひがやすを blog

夏椰の湧水-Spring from Kaya- … 正規化について(基本)
正規化を判りやすく解説してある。
1NF~BCNFまで。

夏椰の湧水-Spring from Kaya- … 正規化について(オプション)
4NF~5CNFまで。

カテゴリー: DBA, Google App Engine, web, インフラ, クラウド タグ:

subversionコマンド備忘録

2009 年 7 月 15 日 tdtsh Comments off

リポジトリ作成とデーモン起動

svnadmin create –fs-type fsfs testrepos

svnserve -d -r c:/svn

インポート

svn import svn://your.domain.com/home/svn/repos -m “init”

チェックアウト

svn co https://your.domain.com/home/svn/repos

svn co svn://your.domain.comp/home/svn/repos –username user_name –password pass_word

svn co svn+ssh://user_name@your.domain.com/home/svn/repos –username user_name –password pass_word

svn co https://your.domain.com:1443/svn/repos

チェックイン

svn ci repos/test.txt -m “add__test”

diff

svn diff

コミット

svn commit -m “command.txt svn”

アップデート

svn update

クリーンUP

svn cleanup

追加

svn add test.txt

移動

svn move before_dir/test.txt after_dir

カテゴリー: java, web, 開発環境 タグ:

CVSコマンド備忘録

2009 年 7 月 14 日 tdtsh Comments off

ログイン( pserver )

cvs -d :pserver:username@your.domain.com:/home/cvsroot login

インポート

cvs -d :ext:username@your.domain.com:/home/cvsroot import -I ! repo_name “HEAD” “start”

エクスポート

トランク

cvs -d :ext:username@your.domain.com:/home/cvsroot -z9 export -r HEAD repo_name

ブランチ

cvs -e ssh -d username@your.domain.com:/home/cvsroot export -r BRANCH_NAME repo_name

特定の日付

cvs -d :ext:username@your.domain.com:/home/cvsroot export -D “2007/05/03″ repo_name

チェックアウト

トランク

cvs -d :ext:username@your.domain.com:/home/cvsroot checkout -R -P repo_name

ブランチ

cvs -d :pserver:username@your.domain.com:/home/cvs co -R -P -r BRANCH_NAME repo_name

コミット

cvs -d :ext:username@your.domain.com:/home/cvsroot commit -m “add something ” repo_name

追加

モジュール単位

cvs -d :ext:username@your.domain.com:/home/cvsroot add repo_name

ファイル単位

cvs -d :ext:username@your.domain.com:/home/cvsroot/repo_name add test.txt

アップデート

モジュール単位

cvs -d :ext:username@your.domain.com:/home/cvsroot update

ファイル単位

cvs -d :ext:username@your.domain.com:/home/cvsroot/repo_name update test.txt

オプション指定(d = 追加 P = 削除)

cvs -d :pserver:username@your.domain.com:/home/cvsroot update -dP

ログ

cvs -d :ext:username@your.domain.com:/home/cvsroot log -d “>2004-10-01″ test.txt

各行の更新履歴確認

cvs -d :ext:username@your.domain.com:/home/cvsroot annotate test.txt

タグ作成

タグ

cvs -d :ext:username@your.domain.com:/home/cvsroot rtag TAG_NAME repo_name

ブランチ

cvs -d :ext:username@your.domain.com:/home/cvsroot rtag -b BRANCH_NAME repo_name

タグ削除

cvs -d :ext:username@your.domain.com:/home/cvsroot rtag -d TAG_NAME repo_name

テキストに戻す

cvs -d :ext:username@your.domain.com:/home/cvsroot admin -kkv *.txt

バイナリに戻す

cvs -d :ext:username@your.domain.com:/home/cvsroot admin -kb *.xls

diff

cvs -e ssh -d username@your.domain.com:/home/cvsroot diff

カテゴリー: web, インフラ, 開発環境 タグ:

wordpressを携帯対応

2009 年 7 月 12 日 tdtsh Comments off

当ブログ(WordPress)を携帯対応しました。

Ktai Style (携帯対応プラグイン)を導入しただけ。

軽くエミュレータで見てみたところでは、ちゃんと携帯対応しているみたい。
暇をみつけて、いろいろやってみよう。

カテゴリー: php, web タグ: