read.cgiの片隅に表示されている関連キーワードを
きちんとメンテナンスしてみようなスレッド。
関連キーワードをなんとかしようスレ
■ このスレッドは過去ログ倉庫に格納されています
iframe が height=15 だと 3pix ほど足りなくて下のほうが欠けています(firefox2@win)
height=18 程度に増やすか、文字を小さくしてもらえないでしょうか?
height=18 程度に増やすか、文字を小さくしてもらえないでしょうか?
>>106 内部的に登録されているキーワードは最大10なんですが,
そのうち7つをランダム表示するような仕様になってます.
通常なら,個人的には Last-Modified 吐き + mod_cache 利用推進論者なんですが,
キャッシュさせるとランダム表示ができなくなるというのがネックですね.
ただ,CGI 側で MySQL のクエリー結果をキャッシュするようにはなってます.
# もっとも,そのキャッシュはプロセス単位なんですよね.今は -M32 になってますが,
# これを減らした方がキャッシュヒット率は向上するかと思うんですが,さて......
あと,getf.cgi で一番重い処理はその MySQL へのクエリー部分で,
それ以外は単純に結果を吐くだけなんで,304 レスポンスを返すようにしても
大して変わらないんじゃないかという感じではあるんで(304 レスポンスを
返すとすると,mtime と If-Modified-Since の比較処理も Perl でやることになるし).
>>107 (X)HTML 的には,<a> タグの href 属性中の & は,本来 & のように
エスケープすべきものなんです(例えば CGI のパラメータで lt とか gt なんてのが
あったらどうなるか......と考えればわかるかと).
>>108 font-size: 13px; にしますた.
そのうち7つをランダム表示するような仕様になってます.
通常なら,個人的には Last-Modified 吐き + mod_cache 利用推進論者なんですが,
キャッシュさせるとランダム表示ができなくなるというのがネックですね.
ただ,CGI 側で MySQL のクエリー結果をキャッシュするようにはなってます.
# もっとも,そのキャッシュはプロセス単位なんですよね.今は -M32 になってますが,
# これを減らした方がキャッシュヒット率は向上するかと思うんですが,さて......
あと,getf.cgi で一番重い処理はその MySQL へのクエリー部分で,
それ以外は単純に結果を吐くだけなんで,304 レスポンスを返すようにしても
大して変わらないんじゃないかという感じではあるんで(304 レスポンスを
返すとすると,mtime と If-Modified-Since の比較処理も Perl でやることになるし).
>>107 (X)HTML 的には,<a> タグの href 属性中の & は,本来 & のように
エスケープすべきものなんです(例えば CGI のパラメータで lt とか gt なんてのが
あったらどうなるか......と考えればわかるかと).
>>108 font-size: 13px; にしますた.
2007/01/02(火) 19:06:51ID:JrHqPAKb0
10個全部表示しちゃえばいいのに
>>110
ありがとうございます♪
ありがとうございます♪
いつの間にか,雪だるまや ex17 などの read.cgi も p2.2ch.io の方を読み込んでますね.
ってことは,時間制限なしで 2ch 全鯖対象にしても,少なくとも Load Avg. 的には破綻せず処理できてる,と.
11:38PM up 30 days, 4:33, 1 user, load averages: 2.49, 3.16, 3.20 @c2.2ch.io
11:39PM up 30 days, 4:34, 1 user, load averages: 2.66, 3.15, 3.19 @p2.2ch.io
キーワードが蓄積されるに伴い,クローラはあまりファイルを取得しに逝かなくなるので
c2 のトラフィックは減ってきてますが,逆にキーワードを表示する p2 のトラフィックは増えてますね.
http://mumumu.mu/mrtgi/mrtg-rrd.cgi/traffic/
ってことは,時間制限なしで 2ch 全鯖対象にしても,少なくとも Load Avg. 的には破綻せず処理できてる,と.
11:38PM up 30 days, 4:33, 1 user, load averages: 2.49, 3.16, 3.20 @c2.2ch.io
11:39PM up 30 days, 4:34, 1 user, load averages: 2.66, 3.15, 3.19 @p2.2ch.io
キーワードが蓄積されるに伴い,クローラはあまりファイルを取得しに逝かなくなるので
c2 のトラフィックは減ってきてますが,逆にキーワードを表示する p2 のトラフィックは増えてますね.
http://mumumu.mu/mrtgi/mrtg-rrd.cgi/traffic/
10個全部を吐くようにして、
javascript側でランダム表示にしちゃうとか。
javascript側でランダム表示にしちゃうとか。
2007/01/03(水) 22:24:55ID:sDOHP3VQ0
そもそも、たかが10個のうち7個をランダムで表示する必要があるのだろうか。
100個あるならともかく。
100個あるならともかく。
表示できる文字数の問題だったり。
117動け動けウゴウゴ2ちゃんねる
2007/01/03(水) 23:55:20ID:Dn3KZWNbO テスト
今年もよろしくお願いいたします。
まずは、MySQL のインストールからですね。
普通に 5.x を入れればいいのかしら。
何か特別な設定が必要な場合、ここで教えてくださいです。
まずは、MySQL のインストールからですね。
普通に 5.x を入れればいいのかしら。
何か特別な設定が必要な場合、ここで教えてくださいです。
で、10Mbps → 100Mbps ですが、
どうも依頼がうまく受け付けられていないようなので、
メールでたんたんと依頼(催促)するということで。
どうも依頼がうまく受け付けられていないようなので、
メールでたんたんと依頼(催促)するということで。
5.xの最新のものをいれてくださいー。
tf-idfを2chDB自体を使ってやるとすると、
sennaは必須になりますね。。と。
sennaは必須になりますね。。と。
2007/01/04(木) 16:46:10ID:vF0Lqd4Y0
今年ひろゆき創めてみたわ
>>122
これですか。
Senna 組み込み型全文検索エンジン
http://qwik.jp/senna/FrontPageJ.html
これ入れればいいのかな。
/usr/ports/textproc/senna
MySQL とともに、入れておくです。
これですか。
Senna 組み込み型全文検索エンジン
http://qwik.jp/senna/FrontPageJ.html
これ入れればいいのかな。
/usr/ports/textproc/senna
MySQL とともに、入れておくです。
>>114
HTML モード(鯖側でランダム表示・Last-Modified なし):
http://p2.2ch.io/getf.cgi?http://qb5.2ch.net/test/read.cgi/operate/1166328527/
JavaScript モード(クライアント側でランダム表示・Last-Modified あり):
http://p2.2ch.io/getf.cgi?qb5.2ch.net+operate+1166328527
で,とりあえず read.js では JavaScript モードの方を使ってます.
>>118-119 こちらこそよろしくです.で,入れてもらうのは MeCab と MySQL ですね.留意事項ですが
* mecab-0.93
* mecab-perl-0.93
* mecab-ipadic-2.7.0-20060707
MeCab はデフォルトでは EUC-JP を使うのですが,Shift JIS を使うようにビルドして下さい.
その場合,ports だとどうだかわかりませんが,少なくともオリジナル版だと configure 時に
CPPFLAGS=-I/usr/local/include LDFLAGS='-L/usr/local/lib -R/usr/local/lib' を
指定しないと libiconv の存在を認識してくれないので,Shift JIS の辞書を作れません.
で,辞書 (mecab-ipadic) の configure 時に --with-charset=sjis を指定してもらう,と.
* mysql-5.0.27
設定ファイル (my.cnf) は,現在 my-large.cnf をベースにして
[mysqld] のセクションに以下の設定を追加しています.
bind-address = private_address_of_c2.2ch.io
character-set-server = cp932
collation-server = cp932_bin
あと,レプリケーションとかやらなければバイナリログなしでいいのかな.
少なくとも,今のところ MySQL は分散処理とか考えなきゃならんほど重くないですし.
バイナリログなしなら
log-bin=mysql-bin
の行はコメントアウトで.
# バイナリログのサイズもバカにならないんで......
# -rw-rw---- 1 c22chio ch2 1073742810 1 1 12:57 mysql-bin.000001
# -rw-rw---- 1 c22chio ch2 1073741960 1 3 10:33 mysql-bin.000002
# -rw-rw---- 1 c22chio ch2 830519196 1 4 16:56 mysql-bin.000003
あと,すでにこんだけ容量食ってるんで,データディレクトリは /home 配下に作らないと入らないと思います......
654 data/mysql
2 data/test
3136188 data/keywords
6068946 data
HTML モード(鯖側でランダム表示・Last-Modified なし):
http://p2.2ch.io/getf.cgi?http://qb5.2ch.net/test/read.cgi/operate/1166328527/
JavaScript モード(クライアント側でランダム表示・Last-Modified あり):
http://p2.2ch.io/getf.cgi?qb5.2ch.net+operate+1166328527
で,とりあえず read.js では JavaScript モードの方を使ってます.
>>118-119 こちらこそよろしくです.で,入れてもらうのは MeCab と MySQL ですね.留意事項ですが
* mecab-0.93
* mecab-perl-0.93
* mecab-ipadic-2.7.0-20060707
MeCab はデフォルトでは EUC-JP を使うのですが,Shift JIS を使うようにビルドして下さい.
その場合,ports だとどうだかわかりませんが,少なくともオリジナル版だと configure 時に
CPPFLAGS=-I/usr/local/include LDFLAGS='-L/usr/local/lib -R/usr/local/lib' を
指定しないと libiconv の存在を認識してくれないので,Shift JIS の辞書を作れません.
で,辞書 (mecab-ipadic) の configure 時に --with-charset=sjis を指定してもらう,と.
* mysql-5.0.27
設定ファイル (my.cnf) は,現在 my-large.cnf をベースにして
[mysqld] のセクションに以下の設定を追加しています.
bind-address = private_address_of_c2.2ch.io
character-set-server = cp932
collation-server = cp932_bin
あと,レプリケーションとかやらなければバイナリログなしでいいのかな.
少なくとも,今のところ MySQL は分散処理とか考えなきゃならんほど重くないですし.
バイナリログなしなら
log-bin=mysql-bin
の行はコメントアウトで.
# バイナリログのサイズもバカにならないんで......
# -rw-rw---- 1 c22chio ch2 1073742810 1 1 12:57 mysql-bin.000001
# -rw-rw---- 1 c22chio ch2 1073741960 1 3 10:33 mysql-bin.000002
# -rw-rw---- 1 c22chio ch2 830519196 1 4 16:56 mysql-bin.000003
あと,すでにこんだけ容量食ってるんで,データディレクトリは /home 配下に作らないと入らないと思います......
654 data/mysql
2 data/test
3136188 data/keywords
6068946 data
>>125
> MeCab はデフォルトでは EUC-JP を使うのですが,Shift JIS を使うようにビルドして下さい.
おぉ、なるほど。
入れなおしっすね。senna もそうかな。
では、そのように。
> MeCab はデフォルトでは EUC-JP を使うのですが,Shift JIS を使うようにビルドして下さい.
おぉ、なるほど。
入れなおしっすね。senna もそうかな。
では、そのように。
* DBD-mysql-4.00
元々 3.0008 が入ってたんですが,いくつか問題があったので自分で入れた 4.00(+ 若干修正)を使ってます.
・ server side prepare を有効にしていると LOAD DATA INFILE が使えない(3.0008 での問題,4.00 は Ok).
・ server side prepare を有効にしかつ SQL 文中で placeholders を使うと,
2回目以降の execute() で SIGSEGV になる(4.00 でも存在する問題,自分で修正).
・ CALL ステートメント(stored procedure の呼び出し)で server side prepare が無効にされてしまう(これも自分で修正).
まぁ,修正といっても微々たるもんですが.
--- DBD-mysql-4.00/dbdimp.c Sun Dec 24 23:04:59 2006
+++ DBD-mysql-4.00/dbdimp.c Sun Dec 31 18:30:00 2006
@@ -2485,2 +2485,3 @@
+#if 0
if ( (tolower(*(str_ptr + 0)) == 'c') &&
@@ -2495,2 +2496,3 @@
}
+#endif
@@ -3766,2 +3768,3 @@
}
+#if 0
/* clean up other statement allocations */
@@ -3779,2 +3782,3 @@
num_fields= DBIc_NUM_FIELDS(imp_sth);
+#endif
あと,c2 の方でも httpd がたくさん立ち上がってるんですが,
こっちは必要最低限の数だけでいいような......
>>122 ん〜と,以前そう言われたことがあってそうしなきゃならんのかなぁ,
と思いつつ考えてたんですが,Senna って全文検索エンジンですよね.
使うとすれば,ドキュメント全体を MySQL に入れるってことでしょうか?
今のやり方は,表示用キーワードとは別に DF 計算用の単語も
登録してるんですが,ドキュメント全体ではなく切り出した単語を
個別に登録してまして,全文検索は行ってません.っていうか,
ドキュメント全体を登録してると HDD 容量が半端ないぐらい必要になるような......
元々 3.0008 が入ってたんですが,いくつか問題があったので自分で入れた 4.00(+ 若干修正)を使ってます.
・ server side prepare を有効にしていると LOAD DATA INFILE が使えない(3.0008 での問題,4.00 は Ok).
・ server side prepare を有効にしかつ SQL 文中で placeholders を使うと,
2回目以降の execute() で SIGSEGV になる(4.00 でも存在する問題,自分で修正).
・ CALL ステートメント(stored procedure の呼び出し)で server side prepare が無効にされてしまう(これも自分で修正).
まぁ,修正といっても微々たるもんですが.
--- DBD-mysql-4.00/dbdimp.c Sun Dec 24 23:04:59 2006
+++ DBD-mysql-4.00/dbdimp.c Sun Dec 31 18:30:00 2006
@@ -2485,2 +2485,3 @@
+#if 0
if ( (tolower(*(str_ptr + 0)) == 'c') &&
@@ -2495,2 +2496,3 @@
}
+#endif
@@ -3766,2 +3768,3 @@
}
+#if 0
/* clean up other statement allocations */
@@ -3779,2 +3782,3 @@
num_fields= DBIc_NUM_FIELDS(imp_sth);
+#endif
あと,c2 の方でも httpd がたくさん立ち上がってるんですが,
こっちは必要最低限の数だけでいいような......
>>122 ん〜と,以前そう言われたことがあってそうしなきゃならんのかなぁ,
と思いつつ考えてたんですが,Senna って全文検索エンジンですよね.
使うとすれば,ドキュメント全体を MySQL に入れるってことでしょうか?
今のやり方は,表示用キーワードとは別に DF 計算用の単語も
登録してるんですが,ドキュメント全体ではなく切り出した単語を
個別に登録してまして,全文検索は行ってません.っていうか,
ドキュメント全体を登録してると HDD 容量が半端ないぐらい必要になるような......
DF 計算用の単語の切り出し方によると思いますが、
母集団を反映してる標本なら、
それでもいいと思いますー。
母集団を反映してる標本なら、
それでもいいと思いますー。
>>128 今は,各 URL ごとに TF が上位 200 までの単語を登録してます.
仕組み的には,この数をもっと増やすことも不可能ではありませんが,
HDD 消費量やパフォーマンスなどとのバランスを考えるとこのぐらいかなぁ,と......
mysql> SELECT (SELECT COUNT(*) FROM urls) 'URL 総数', (SELECT COUNT(*) FROM words) '単語総数', (SELECT COUNT(*) FROM regwords) 'DF 計算用単語の URL との関連付け総数', (SELECT COUNT(*) FROM dispwords) '表示用単語の URL との関連付け総数';
+----------+----------+--------------------------------------+-----------------------------------+
| URL 総数 | 単語総数 | DF 計算用単語の URL との関連付け総数 | 表示用単語の URL との関連付け総数 |
+----------+----------+--------------------------------------+-----------------------------------+
| 465918 | 1064955 | 73515988 | 4320516 |
+----------+----------+--------------------------------------+-----------------------------------+
-rw-rw---- 1 c22chio ch2 108017350 1 4 22:14 dispwords.MYD
-rw-rw---- 1 c22chio ch2 75264000 1 4 22:14 dispwords.MYI
-rw-rw---- 1 c22chio ch2 8632 1 1 20:13 dispwords.frm
-rw-rw---- 1 c22chio ch2 1604234751 1 4 22:14 regwords.MYD
-rw-rw---- 1 c22chio ch2 1312161792 1 4 22:14 regwords.MYI
-rw-rw---- 1 c22chio ch2 8626 1 1 20:19 regwords.frm
-rw-rw---- 1 c22chio ch2 34500696 1 4 22:14 urls.MYD
-rw-rw---- 1 c22chio ch2 20992000 1 4 22:14 urls.MYI
-rw-rw---- 1 c22chio ch2 8694 1 1 20:13 urls.frm
-rw-rw---- 1 c22chio ch2 33554972 1 4 22:14 words.MYD
-rw-rw---- 1 c22chio ch2 44557312 1 4 22:14 words.MYI
-rw-rw---- 1 c22chio ch2 8612 1 1 20:13 words.frm
仕組み的には,この数をもっと増やすことも不可能ではありませんが,
HDD 消費量やパフォーマンスなどとのバランスを考えるとこのぐらいかなぁ,と......
mysql> SELECT (SELECT COUNT(*) FROM urls) 'URL 総数', (SELECT COUNT(*) FROM words) '単語総数', (SELECT COUNT(*) FROM regwords) 'DF 計算用単語の URL との関連付け総数', (SELECT COUNT(*) FROM dispwords) '表示用単語の URL との関連付け総数';
+----------+----------+--------------------------------------+-----------------------------------+
| URL 総数 | 単語総数 | DF 計算用単語の URL との関連付け総数 | 表示用単語の URL との関連付け総数 |
+----------+----------+--------------------------------------+-----------------------------------+
| 465918 | 1064955 | 73515988 | 4320516 |
+----------+----------+--------------------------------------+-----------------------------------+
-rw-rw---- 1 c22chio ch2 108017350 1 4 22:14 dispwords.MYD
-rw-rw---- 1 c22chio ch2 75264000 1 4 22:14 dispwords.MYI
-rw-rw---- 1 c22chio ch2 8632 1 1 20:13 dispwords.frm
-rw-rw---- 1 c22chio ch2 1604234751 1 4 22:14 regwords.MYD
-rw-rw---- 1 c22chio ch2 1312161792 1 4 22:14 regwords.MYI
-rw-rw---- 1 c22chio ch2 8626 1 1 20:19 regwords.frm
-rw-rw---- 1 c22chio ch2 34500696 1 4 22:14 urls.MYD
-rw-rw---- 1 c22chio ch2 20992000 1 4 22:14 urls.MYI
-rw-rw---- 1 c22chio ch2 8694 1 1 20:13 urls.frm
-rw-rw---- 1 c22chio ch2 33554972 1 4 22:14 words.MYD
-rw-rw---- 1 c22chio ch2 44557312 1 4 22:14 words.MYI
-rw-rw---- 1 c22chio ch2 8612 1 1 20:13 words.frm
んでは、SUNOSさんの方式で試してみましょー。
何かゴミデータが混ざってるな,と思ったら...... server side prepare モードは
DBD::mysql の作者もちゃんとテストしてないんですかね.>>127 のパッチからさらに修正.
--- DBD-mysql-4.00/dbdimp.c Sun Dec 24 23:04:59 2006
+++ DBD-mysql-4.00/dbdimp.c Sat Jan 6 06:00:00 2007
@@ -2485,2 +2485,3 @@
+#if 0
if ( (tolower(*(str_ptr + 0)) == 'c') &&
@@ -2495,2 +2496,3 @@
}
+#endif
@@ -3766,2 +3768,3 @@
}
+#if 0
/* clean up other statement allocations */
@@ -3779,2 +3782,3 @@
num_fields= DBIc_NUM_FIELDS(imp_sth);
+#endif
@@ -4457,3 +4461,3 @@
/* Type of column was changed. Force to rebind */
- if (imp_sth->bind[idx].buffer_type != buffer_type)
+ /* if (imp_sth->bind[idx].buffer_type != buffer_type) */
imp_sth->has_been_bound = 0;
DBD::mysql の作者もちゃんとテストしてないんですかね.>>127 のパッチからさらに修正.
--- DBD-mysql-4.00/dbdimp.c Sun Dec 24 23:04:59 2006
+++ DBD-mysql-4.00/dbdimp.c Sat Jan 6 06:00:00 2007
@@ -2485,2 +2485,3 @@
+#if 0
if ( (tolower(*(str_ptr + 0)) == 'c') &&
@@ -2495,2 +2496,3 @@
}
+#endif
@@ -3766,2 +3768,3 @@
}
+#if 0
/* clean up other statement allocations */
@@ -3779,2 +3782,3 @@
num_fields= DBIc_NUM_FIELDS(imp_sth);
+#endif
@@ -4457,3 +4461,3 @@
/* Type of column was changed. Force to rebind */
- if (imp_sth->bind[idx].buffer_type != buffer_type)
+ /* if (imp_sth->bind[idx].buffer_type != buffer_type) */
imp_sth->has_been_bound = 0;
DBD::mysqlってよくつかわれてそうなのに。。
133耐
2007/01/06(土) 19:49:16ID:FcjBKnL90 このやろうなめやがって!!
>>132 DBD::mysql 自体はよく使われてても,server side prepare は
デフォルトでは off なのであまり使われてないのかも......
http://search.cpan.org/~capttofu/DBD-mysql-4.00/lib/DBD/mysql.pm
Prepared statement support (server side prepare)
As of 3.0002_1, server side prepare statements were on by default (if your server was >= 4.1.3).
As of 3.0009, they were off by default again due to issues with the prepared statement API
(all other mysql connectors are set this way until C API issues are resolved).
The requirement to use prepared statements still remains that you have a server >= 4.1.3
To use server side prepared statements, all you need to do is set the variable mysql_server_prepare in the connect:
$dbh = DBI->connect( "DBI:mysql:database=test;host=localhost;mysql_server_prepare=1", "", "", { RaiseError => 1, AutoCommit => 1 } );
* Note: delimiter for this param is ';'
There are many benefits to using server side prepare statements, mostly if you are performing many inserts
because of that fact that a single statement is prepared to accept multiple insert values.
デフォルトでは off なのであまり使われてないのかも......
http://search.cpan.org/~capttofu/DBD-mysql-4.00/lib/DBD/mysql.pm
Prepared statement support (server side prepare)
As of 3.0002_1, server side prepare statements were on by default (if your server was >= 4.1.3).
As of 3.0009, they were off by default again due to issues with the prepared statement API
(all other mysql connectors are set this way until C API issues are resolved).
The requirement to use prepared statements still remains that you have a server >= 4.1.3
To use server side prepared statements, all you need to do is set the variable mysql_server_prepare in the connect:
$dbh = DBI->connect( "DBI:mysql:database=test;host=localhost;mysql_server_prepare=1", "", "", { RaiseError => 1, AutoCommit => 1 } );
* Note: delimiter for this param is ';'
There are many benefits to using server side prepare statements, mostly if you are performing many inserts
because of that fact that a single statement is prepared to accept multiple insert values.
現状ってあとは何が足りないんでしたっけ?
136動け動けウゴウゴ2ちゃんねる
2007/01/08(月) 22:50:59ID:EY1iKiNMP で、>>137 は、たんたんとすすめるです。
よろしくですー。
>>137 そんなところですね.ということでよろしくおながいします.
で,MySQL を入れるのは最初 p2 がいいかなと思ってたんですが,
現状を鑑みれば c2 の方が良さそうという気がしてます.
p2 で mod_speedycgi を使うということで prefork MPM 利用は確定のようですし,
そうなると p2 に MySQL を入れるとなるとメモリやコンテキストスイッチなどの
競合できつくなりそうですし.c2 でもパーサがフル回転してる時は CPU で競合しますが,
データ収集が一巡してからはパーサも常時フル回転ではなくなってますし(で,2日以上経過した
データから順次再クロールする処理も入れますたが,それも比較的余力を持ってこなしてますし).
p2 でもピーク時間帯はどっちにしろ CPU 食いますし,c2 ではプロセス数の少なさから
メモリやコンテキストスイッチなどで競合しにくいだろう,ってことで.
で,MySQL を入れるのは最初 p2 がいいかなと思ってたんですが,
現状を鑑みれば c2 の方が良さそうという気がしてます.
p2 で mod_speedycgi を使うということで prefork MPM 利用は確定のようですし,
そうなると p2 に MySQL を入れるとなるとメモリやコンテキストスイッチなどの
競合できつくなりそうですし.c2 でもパーサがフル回転してる時は CPU で競合しますが,
データ収集が一巡してからはパーサも常時フル回転ではなくなってますし(で,2日以上経過した
データから順次再クロールする処理も入れますたが,それも比較的余力を持ってこなしてますし).
p2 でもピーク時間帯はどっちにしろ CPU 食いますし,c2 ではプロセス数の少なさから
メモリやコンテキストスイッチなどで競合しにくいだろう,ってことで.
- 10Mbps → 100Mbps
- p2 ⇔ c2 クロスケーブルで直結
について、再度メールで依頼しました。
関係者に Cc:。
- p2 ⇔ c2 クロスケーブルで直結
について、再度メールで依頼しました。
関係者に Cc:。
2007/01/11(木) 03:08:24ID:VhKIX1KV0
>>135
スレ同士の自動リンクツールとするならもう少し人為を反映する仕様があったほうがいいような
スレ同士の自動リンクツールとするならもう少し人為を反映する仕様があったほうがいいような
2007/01/16(火) 03:57:50ID:kO1prtGV0
今現在までの閉鎖騒動関連スレを幾つか見たけど
「24」を地で行くようなちょろの奮闘が眩しかった。
ひ(ryが2chを、というより、2chがこの男を失うか否かというような。
そんな風に見えなくもない今回の騒動。
「24」を地で行くようなちょろの奮闘が眩しかった。
ひ(ryが2chを、というより、2chがこの男を失うか否かというような。
そんな風に見えなくもない今回の騒動。
>>144 read.js では iframe ではなく JavaScript による DOM 操作でやってます.
ただ,古いブラウザだと DOM をちゃんと扱えないかも知れないというところで,
read.cgi でその方式にするのは躊躇してます.
あと,管理人さんからは,2ch 専用でしか使えないものではなく
他のところでも汎用的に使い回しができる形で作ってほしいとも言われてたので,
read.cgi に依存する部分は小さくしておきたい,ということもあります.
ただ,古いブラウザだと DOM をちゃんと扱えないかも知れないというところで,
read.cgi でその方式にするのは躊躇してます.
あと,管理人さんからは,2ch 専用でしか使えないものではなく
他のところでも汎用的に使い回しができる形で作ってほしいとも言われてたので,
read.cgi に依存する部分は小さくしておきたい,ということもあります.
停電の影響ですかね.httpd がちゃんとあがってなかったようです @p2
[Fri Jan 19 13:05:08 2007] [emerg] (2)No such file or directory: Couldn't initialize cross-process lock in child (/md/accept.lock.634) (5)
c2 の方は MySQL とかパーサとか crawld とか手動であげておきますた.
ついでに,my.cnf で log-bin=mysql-bin はコメントアウト,myisam-recover を追加.
# MyISAM だから,いきなり落ちるってのは何となくやな感じではあるんですよね......
070119 13:46:27 [ERROR] /home/c22chio/mysql/bin/mysqld: Table './keywords/urls' is marked as crashed and should be repaired
070119 13:46:27 [Warning] Checking table: './keywords/urls'
070119 13:47:12 [ERROR] /home/c22chio/mysql/bin/mysqld: Table './keywords/dispwords' is marked as crashed and should be repaired
070119 13:47:12 [Warning] Checking table: './keywords/dispwords'
070119 13:47:28 [ERROR] /home/c22chio/mysql/bin/mysqld: Table './keywords/regwords' is marked as crashed and should be repaired
070119 13:47:28 [Warning] Checking table: './keywords/regwords'
070119 13:48:09 [Warning] Recovering table: './keywords/regwords'
070119 13:55:05 [ERROR] /home/c22chio/mysql/bin/mysqld: Table './keywords/words' is marked as crashed and should be repaired
070119 13:55:05 [Warning] Checking table: './keywords/words'
070119 13:55:13 [Warning] Recovering table: './keywords/words'
070119 13:55:13 [Note] Retrying repair of: './keywords/words' with keycache
070119 13:55:52 [Note] Found 1269663 of 1269666 rows when repairing './keywords/words'
[Fri Jan 19 13:05:08 2007] [emerg] (2)No such file or directory: Couldn't initialize cross-process lock in child (/md/accept.lock.634) (5)
c2 の方は MySQL とかパーサとか crawld とか手動であげておきますた.
ついでに,my.cnf で log-bin=mysql-bin はコメントアウト,myisam-recover を追加.
# MyISAM だから,いきなり落ちるってのは何となくやな感じではあるんですよね......
070119 13:46:27 [ERROR] /home/c22chio/mysql/bin/mysqld: Table './keywords/urls' is marked as crashed and should be repaired
070119 13:46:27 [Warning] Checking table: './keywords/urls'
070119 13:47:12 [ERROR] /home/c22chio/mysql/bin/mysqld: Table './keywords/dispwords' is marked as crashed and should be repaired
070119 13:47:12 [Warning] Checking table: './keywords/dispwords'
070119 13:47:28 [ERROR] /home/c22chio/mysql/bin/mysqld: Table './keywords/regwords' is marked as crashed and should be repaired
070119 13:47:28 [Warning] Checking table: './keywords/regwords'
070119 13:48:09 [Warning] Recovering table: './keywords/regwords'
070119 13:55:05 [ERROR] /home/c22chio/mysql/bin/mysqld: Table './keywords/words' is marked as crashed and should be repaired
070119 13:55:05 [Warning] Checking table: './keywords/words'
070119 13:55:13 [Warning] Recovering table: './keywords/words'
070119 13:55:13 [Note] Retrying repair of: './keywords/words' with keycache
070119 13:55:52 [Note] Found 1269663 of 1269666 rows when repairing './keywords/words'
>>147-148 乙です.停電もアレですが,通常運用中にカーネルパニックってのも,ちょっとコワいですね......
# サイズのデカいテーブルが壊れると,リカバリに時間がかってしょうがないですねぇ......
# regwords はまだ半分ぐらいしか終わってない模様......
#
# -rw-rw---- 1 c22chio ch2 1868775426 1 20 23:40 regwords.MYD
# -rw-rw---- 1 c22chio ch2 973602816 1 21 02:34 regwords.TMD
# -rw-rw---- 1 c22chio ch2 1525427200 1 21 02:34 regwords.MYI
# サイズのデカいテーブルが壊れると,リカバリに時間がかってしょうがないですねぇ......
# regwords はまだ半分ぐらいしか終わってない模様......
#
# -rw-rw---- 1 c22chio ch2 1868775426 1 20 23:40 regwords.MYD
# -rw-rw---- 1 c22chio ch2 973602816 1 21 02:34 regwords.TMD
# -rw-rw---- 1 c22chio ch2 1525427200 1 21 02:34 regwords.MYI
テーブルって分割できる構造じゃないんでしたっけ?
2007/01/23(火) 10:59:16ID:X6iTzN4i0
p2.2ch.io と c2.2ch.io があるのだが。
やっぱ携帯か。
やっぱ携帯か。
2007/01/23(火) 11:05:01ID:X6iTzN4i0
んーmixiがランクインしていないのは何故?
ユニークの数の集計だからじゃないすか。
2007/01/23(火) 13:43:32ID:X6iTzN4i0
なるほどね。
つーことは、あれか?
mixiができたから2ちゃんねるが廃れるとかって今のところは無いのだな。
つーことは、あれか?
mixiができたから2ちゃんねるが廃れるとかって今のところは無いのだな。
157動け動けウゴウゴ2ちゃんねる
2007/01/23(火) 20:49:46ID:X6iTzN4i0158動け動けウゴウゴ2ちゃんねる
2007/01/23(火) 20:59:34ID:nBCpy34EP うぜえ
159動け動けウゴウゴ2ちゃんねる
2007/01/23(火) 22:31:06ID:ttLdMJWB0 皆でこのアホを通報しよう。2chの癌。
なら俺は風見しんごの娘を殺す
http://ex17.2ch.net/test/read.cgi/news4vip/1169394814/l50
863 :動け動けウゴウゴ2ちゃんねる :2007/01/22(月) 11:36:52 ID:NF9a2QR+0
おじちゃん、殺人予告って2ch運営にはどこに通報すればいいのかしら?
見た感じいろんなところで予告してるみたいよ?
http://qb5.2ch.net/test/read.cgi/operate/1169301330/619
http://news22.2ch.net/test/read.cgi/newsplus/1169394325/914
864 :どくどくさぼてん :2007/01/22(月) 11:41:12 ID:6SRCrGFv0
警察へどうぞ。
いや、ほんとならほんとに。
■警視庁匿名通報フォーム(通報は2chのように書き込むだけ)
http://ime.nu/www.keishicho.metro.tokyo.jp/anket/other.htm
■全国ハイテク警察リンク集 http://ime.nu/www002.upp.so-net.ne.jp/dalk/ksatulink.html
■警視庁ホームページ http://www.keishicho.metro.tokyo.jp/
なら俺は風見しんごの娘を殺す
http://ex17.2ch.net/test/read.cgi/news4vip/1169394814/l50
863 :動け動けウゴウゴ2ちゃんねる :2007/01/22(月) 11:36:52 ID:NF9a2QR+0
おじちゃん、殺人予告って2ch運営にはどこに通報すればいいのかしら?
見た感じいろんなところで予告してるみたいよ?
http://qb5.2ch.net/test/read.cgi/operate/1169301330/619
http://news22.2ch.net/test/read.cgi/newsplus/1169394325/914
864 :どくどくさぼてん :2007/01/22(月) 11:41:12 ID:6SRCrGFv0
警察へどうぞ。
いや、ほんとならほんとに。
■警視庁匿名通報フォーム(通報は2chのように書き込むだけ)
http://ime.nu/www.keishicho.metro.tokyo.jp/anket/other.htm
■全国ハイテク警察リンク集 http://ime.nu/www002.upp.so-net.ne.jp/dalk/ksatulink.html
■警視庁ホームページ http://www.keishicho.metro.tokyo.jp/
2007/01/23(火) 22:32:03ID:ALRfqIPI0
そのままコピペかよw
>>150 なるほど......まぁ read.cgi 画面に組み込まれて表示されますからね.
# 今 2ch.io で本格的にやってるサービスは,この関連キーワードぐらいなのかな......?
>>151 MERGE テーブルですね.有用性はあるようなので,ぼちぼち考えますか
(あるいは MyISAM から InnoDB に変えるかどうか,ってのも思案のしどころですが).
# もっとも,停電で落ちるってのがそもそも起こるべきでないことではありますが......
>>153 c2 ってのは携帯ではないですよ.あくまで裏方の処理をする鯖で,
一般閲覧者が直接アクセスする鯖ではないです.というか,read.cgi を
直接見られるフルブラウザ搭載の携帯って,まだ一部じゃないのかな......
# 今 2ch.io で本格的にやってるサービスは,この関連キーワードぐらいなのかな......?
>>151 MERGE テーブルですね.有用性はあるようなので,ぼちぼち考えますか
(あるいは MyISAM から InnoDB に変えるかどうか,ってのも思案のしどころですが).
# もっとも,停電で落ちるってのがそもそも起こるべきでないことではありますが......
>>153 c2 ってのは携帯ではないですよ.あくまで裏方の処理をする鯖で,
一般閲覧者が直接アクセスする鯖ではないです.というか,read.cgi を
直接見られるフルブラウザ搭載の携帯って,まだ一部じゃないのかな......
>>161
きっと c.2ch.net や p2.2ch.net のイメージがあるので、
p2 とか c2 というホスト名だと、携帯関連だと思うんじゃないかなと。
2ch.ioのpとcは、パーサのpとクローラのcだったりする(命名は管理人)。
きっと c.2ch.net や p2.2ch.net のイメージがあるので、
p2 とか c2 というホスト名だと、携帯関連だと思うんじゃないかなと。
2ch.ioのpとcは、パーサのpとクローラのcだったりする(命名は管理人)。
>>162
>2ch.ioのpとcは、パーサのpとクローラのcだったりする(命名は管理人)。
そうだったんですかぁ......しかし,現状では
p2: フロントエンド (getf.cgi)
c2: クローラ (crawld), パーサ (parsed.pl), MySQL
なので,c2 は pc2 にした方が「名は体を表す」ですねw
# p2 は 'p' が取れて,どうなるんだろ......
>2ch.ioのpとcは、パーサのpとクローラのcだったりする(命名は管理人)。
そうだったんですかぁ......しかし,現状では
p2: フロントエンド (getf.cgi)
c2: クローラ (crawld), パーサ (parsed.pl), MySQL
なので,c2 は pc2 にした方が「名は体を表す」ですねw
# p2 は 'p' が取れて,どうなるんだろ......
164動け動けウゴウゴ2ちゃんねる
2007/01/24(水) 00:20:29ID:gqpPG0ef0 既に削除済みだった。 < up01.2ch.io
# おかしいと思った、、、。
# おかしいと思った、、、。
167動け動けウゴウゴ2ちゃんねる
2007/01/24(水) 00:40:10ID:gqpPG0ef0 ん?よく判らないけどこうなってる。
ttp://sv2ch.baila6.jp/server.cgi?server=up01.2ch.io
ttp://sv2ch.baila6.jp/server.cgi?server=up01.2ch.io
2007/01/24(水) 00:51:14ID:NH5IBiiS0
・・・・・
たとえば、1日ごとにテーブルを作るようにして、
selectするときは、2週間分をMERGEとかにすると、
鮮度の高いものだけをとれるのと、
検索対象がリニアに大きくなるのは防げるかと。
古いのはdrop tableとかで捨てちゃうとかで。
selectするときは、2週間分をMERGEとかにすると、
鮮度の高いものだけをとれるのと、
検索対象がリニアに大きくなるのは防げるかと。
古いのはdrop tableとかで捨てちゃうとかで。
170動け動けウゴウゴ2ちゃんねる
2007/01/24(水) 19:04:22ID:gqpPG0ef0 >>169
んーそれってコスト高くない?
んーそれってコスト高くない?
2007/01/24(水) 19:48:55ID:/pXKQOLR0
専ブラ使ってると関係ない感じがひしひしとします
>>170
mergeしようがしまいが、データ量がメモリ内に収まるのであれば、
オンメモリなので、コストはそんなに変わらないです。
データが肥大化してオンメモリで処理できなくなったときに、
ボトルネックが発生するので、
肥大化しないようにするほうがいいと思うのですよ。
mergeしようがしまいが、データ量がメモリ内に収まるのであれば、
オンメモリなので、コストはそんなに変わらないです。
データが肥大化してオンメモリで処理できなくなったときに、
ボトルネックが発生するので、
肥大化しないようにするほうがいいと思うのですよ。
173http:// 244.111.215.220.ap.yournet.ne.jp.2ch.net/
2007/01/25(木) 11:50:19ID:oxnNK9gY0 guest guest
174動け動けウゴウゴ2ちゃんねる
2007/01/25(木) 12:52:45ID:lJVO0eQF0 >>169 えとですね,regwords テーブルは登録時のみに使用するもので,getf.cgi での
表示時には使用しません.それ以外の3つのテーブルはそんなに大きくないです.
あと,今は2日以上前の登録データを再クロールするようにしてますが,
dat 落ちしたのは消されるようになってます.なので,古いデータがいつまでも
残るってことは基本的にないかと(流れの遅いスレのデータは残るでしょうけど).
実際,20日以上前の >>129 と比べても,若干大きくなってるものの膨張一直線って感じではないですし.
mysql> SELECT (SELECT COUNT(*) FROM urls) 'URL 総数', (SELECT COUNT(*) FROM words) '単語総数', (SELECT COUNT(*) FROM regwords) 'DF 計算用単語の URL との関連付け総数', (SELECT COUNT(*) FROM dispwords) '表示用単語の URL との関連付け総数';
+----------+----------+--------------------------------------+-----------------------------------+
| URL 総数 | 単語総数 | DF 計算用単語の URL との関連付け総数 | 表示用単語の URL との関連付け総数 |
+----------+----------+--------------------------------------+-----------------------------------+
| 527930 | 1341210 | 82159070 | 5090686 |
+----------+----------+--------------------------------------+-----------------------------------+
-rw-rw---- 1 c22chio ch2 137734175 1 25 13:13 dispwords.MYD
-rw-rw---- 1 c22chio ch2 103124992 1 25 13:13 dispwords.MYI
-rw-rw---- 1 c22chio ch2 8632 1 20 23:13 dispwords.frm
-rw-rw---- 1 c22chio ch2 1873328877 1 25 13:13 regwords.MYD
-rw-rw---- 1 c22chio ch2 1572448256 1 25 13:13 regwords.MYI
-rw-rw---- 1 c22chio ch2 8626 1 20 23:20 regwords.frm
-rw-rw---- 1 c22chio ch2 41549264 1 25 13:13 urls.MYD
-rw-rw---- 1 c22chio ch2 23207936 1 25 13:13 urls.MYI
-rw-rw---- 1 c22chio ch2 8694 1 20 23:13 urls.frm
-rw-rw---- 1 c22chio ch2 41199816 1 25 13:13 words.MYD
-rw-rw---- 1 c22chio ch2 51624960 1 25 13:13 words.MYI
-rw-rw---- 1 c22chio ch2 8612 1 20 23:13 words.frm
ピーク時間帯で引っかかり感を感じることがあるのは,個人的には
登録処理時にテーブルロックで待たされるのが原因じゃないかと見てます.
http://mumumu.mu/mrtgi/mrtg-rrd.cgi/traffic/
のグラフで,c2 のひろゆきさんのヒゲみたいwなのは再クロール処理によるものですが,
ピーク時間帯では c2 のヒゲと p2 のへこみが連動してるのもそのためではないかと.
InnoDB にすればテーブルロックはなくなる(しかもトランザクションログを使うので
鯖落ち後のリカバリに長時間かかることもなくなるでしょうし),その代わり
全般的に処理は重くなりそう,それで結果的にプラスになるかマイナスになるかは
予測がつかないので,思案のしどころということで......
# まぁ,それ以前にピーク時間帯は再クロールを停止すればいいのかもですがw
表示時には使用しません.それ以外の3つのテーブルはそんなに大きくないです.
あと,今は2日以上前の登録データを再クロールするようにしてますが,
dat 落ちしたのは消されるようになってます.なので,古いデータがいつまでも
残るってことは基本的にないかと(流れの遅いスレのデータは残るでしょうけど).
実際,20日以上前の >>129 と比べても,若干大きくなってるものの膨張一直線って感じではないですし.
mysql> SELECT (SELECT COUNT(*) FROM urls) 'URL 総数', (SELECT COUNT(*) FROM words) '単語総数', (SELECT COUNT(*) FROM regwords) 'DF 計算用単語の URL との関連付け総数', (SELECT COUNT(*) FROM dispwords) '表示用単語の URL との関連付け総数';
+----------+----------+--------------------------------------+-----------------------------------+
| URL 総数 | 単語総数 | DF 計算用単語の URL との関連付け総数 | 表示用単語の URL との関連付け総数 |
+----------+----------+--------------------------------------+-----------------------------------+
| 527930 | 1341210 | 82159070 | 5090686 |
+----------+----------+--------------------------------------+-----------------------------------+
-rw-rw---- 1 c22chio ch2 137734175 1 25 13:13 dispwords.MYD
-rw-rw---- 1 c22chio ch2 103124992 1 25 13:13 dispwords.MYI
-rw-rw---- 1 c22chio ch2 8632 1 20 23:13 dispwords.frm
-rw-rw---- 1 c22chio ch2 1873328877 1 25 13:13 regwords.MYD
-rw-rw---- 1 c22chio ch2 1572448256 1 25 13:13 regwords.MYI
-rw-rw---- 1 c22chio ch2 8626 1 20 23:20 regwords.frm
-rw-rw---- 1 c22chio ch2 41549264 1 25 13:13 urls.MYD
-rw-rw---- 1 c22chio ch2 23207936 1 25 13:13 urls.MYI
-rw-rw---- 1 c22chio ch2 8694 1 20 23:13 urls.frm
-rw-rw---- 1 c22chio ch2 41199816 1 25 13:13 words.MYD
-rw-rw---- 1 c22chio ch2 51624960 1 25 13:13 words.MYI
-rw-rw---- 1 c22chio ch2 8612 1 20 23:13 words.frm
ピーク時間帯で引っかかり感を感じることがあるのは,個人的には
登録処理時にテーブルロックで待たされるのが原因じゃないかと見てます.
http://mumumu.mu/mrtgi/mrtg-rrd.cgi/traffic/
のグラフで,c2 のひろゆきさんのヒゲみたいwなのは再クロール処理によるものですが,
ピーク時間帯では c2 のヒゲと p2 のへこみが連動してるのもそのためではないかと.
InnoDB にすればテーブルロックはなくなる(しかもトランザクションログを使うので
鯖落ち後のリカバリに長時間かかることもなくなるでしょうし),その代わり
全般的に処理は重くなりそう,それで結果的にプラスになるかマイナスになるかは
予測がつかないので,思案のしどころということで......
# まぁ,それ以前にピーク時間帯は再クロールを停止すればいいのかもですがw
ちなみに,getf.cgi でやってるクエリーはこんな感じですが,
特段のネックはないのではないかと......
mysql> EXPLAIN EXTENDED SELECT words.word, UNIX_TIMESTAMP(urls.mtime) FROM urls, dispwords, words WHERE urls.url = 'http://qb5.2ch.net/operate/dat/1166328527.dat' AND dispwords.url_id = urls.id AND words.id = dispwords.word_id;
+----+-------------+-----------+--------+---------------+---------+---------+----------------------------+------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-----------+--------+---------------+---------+---------+----------------------------+------+-------+
| 1 | SIMPLE | urls | const | PRIMARY,id | PRIMARY | 514 | const | 1 | |
| 1 | SIMPLE | dispwords | ref | url_id | url_id | 8 | const | 17 | |
| 1 | SIMPLE | words | eq_ref | PRIMARY | PRIMARY | 8 | keywords.dispwords.word_id | 1 | |
+----+-------------+-----------+--------+---------------+---------+---------+----------------------------+------+-------+
3 rows in set, 1 warning (0.01 sec)
特段のネックはないのではないかと......
mysql> EXPLAIN EXTENDED SELECT words.word, UNIX_TIMESTAMP(urls.mtime) FROM urls, dispwords, words WHERE urls.url = 'http://qb5.2ch.net/operate/dat/1166328527.dat' AND dispwords.url_id = urls.id AND words.id = dispwords.word_id;
+----+-------------+-----------+--------+---------------+---------+---------+----------------------------+------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-----------+--------+---------------+---------+---------+----------------------------+------+-------+
| 1 | SIMPLE | urls | const | PRIMARY,id | PRIMARY | 514 | const | 1 | |
| 1 | SIMPLE | dispwords | ref | url_id | url_id | 8 | const | 17 | |
| 1 | SIMPLE | words | eq_ref | PRIMARY | PRIMARY | 8 | keywords.dispwords.word_id | 1 | |
+----+-------------+-----------+--------+---------------+---------+---------+----------------------------+------+-------+
3 rows in set, 1 warning (0.01 sec)
時代はInnoDBっすよ。
sennaを使うとかでなければ、
myIsamにするメリットってあんまりない気がします。
sennaを使うとかでなければ、
myIsamにするメリットってあんまりない気がします。
>>177 なるほど......やはり機能的にはそうなんですよね.
ただ,MyISAM vs InnoDB のベンチマーク結果の載ってるサイトとか見て回ってると,
パフォーマンス面で一抹の不安があったり......まぁベンチはいろんな条件次第で
結果は変わってくるんで,どっちに転ぶかは実際やってみないとわからないんですけどね.
ただ,MyISAM vs InnoDB のベンチマーク結果の載ってるサイトとか見て回ってると,
パフォーマンス面で一抹の不安があったり......まぁベンチはいろんな条件次第で
結果は変わってくるんで,どっちに転ぶかは実際やってみないとわからないんですけどね.
実際に試してみるほうが早いかもですね。
>>179 まぁそうですね.やるとすると
1. テーブルの MyISAM -> InnoDB 変換.
2. MyISAM では COUNT(*) が高速ということに依存してる部分があるので,
レコード数を保持するテーブルを新設して COUNT(*) をなくす.
3. 登録時に START TRANSACTION 〜 COMMIT を使う
(2. と併せ登録用ストアドプロシージャを変更).
4. my.cnf に InnoDB 用の設定を入れる.
ってのをやることになりますが,特に 1. とかやると時間がかかりそうなんで,
今夜のピーク時間帯以降にぼちぼちって感じで......
1. テーブルの MyISAM -> InnoDB 変換.
2. MyISAM では COUNT(*) が高速ということに依存してる部分があるので,
レコード数を保持するテーブルを新設して COUNT(*) をなくす.
3. 登録時に START TRANSACTION 〜 COMMIT を使う
(2. と併せ登録用ストアドプロシージャを変更).
4. my.cnf に InnoDB 用の設定を入れる.
ってのをやることになりますが,特に 1. とかやると時間がかかりそうなんで,
今夜のピーク時間帯以降にぼちぼちって感じで......
>3. 登録時に START TRANSACTION 〜 COMMIT を使う
使わないほうが早くないすか?
使わないほうが早くないすか?
>>181 いや......現状の登録用ストアドプロシージャは↓のようなものですが,
START TRANSACTION を使わない場合の implicit commit は各 INSERT / UPDATE /
DELETE ごとに行われるので何回も commit することになってしまうのに対し,
全体を START TRANSACTION 〜 COMMIT で囲めば commit は1回だけなので.
もちろん,データの一貫性保持の観点からも START TRANSACTION を入れた方がいいですけど.
CREATE PROCEDURE registurl(urlx varchar(256), mtimex int, totalwordsx int unsigned)
BEGIN
DECLARE urlid, totaldocs bigint unsigned;
SELECT id INTO urlid FROM urls WHERE url = urlx;
IF urlid IS NOT NULL THEN
UPDATE regwords, words SET words.df = words.df - 1 WHERE regwords.url_id = urlid AND words.id = regwords.word_id;
DELETE FROM dispwords WHERE url_id = urlid;
DELETE FROM regwords WHERE url_id = urlid;
END IF;
IF totalwordsx IS NULL THEN
DELETE FROM urls WHERE id = urlid;
ELSE
INSERT urls (url, mtime, totalwords) VALUES (urlx, FROM_UNIXTIME(mtimex), totalwordsx)
ON DUPLICATE KEY UPDATE mtime = VALUES(mtime), totalwords = VALUES(totalwords);
IF urlid IS NULL THEN
SET urlid = LAST_INSERT_ID();
END IF;
INSERT words (word) SELECT word FROM tmpwords ON DUPLICATE KEY UPDATE df = words.df + 1;
UPDATE tmpwords JOIN words USING (word) SET tmpwords.id = words.id, tmpwords.df = words.df;
INSERT regwords SELECT urlid, id, tf FROM tmpwords;
SELECT COUNT(*) INTO totaldocs FROM urls;
INSERT dispwords SELECT urlid, id, tf / totalwordsx * (LN(totaldocs / df) + 1) tfidf
FROM tmpwords WHERE totaldocs / df < 100000 ORDER BY tfidf DESC LIMIT 10;
TRUNCATE tmpwords;
END IF;
END
START TRANSACTION を使わない場合の implicit commit は各 INSERT / UPDATE /
DELETE ごとに行われるので何回も commit することになってしまうのに対し,
全体を START TRANSACTION 〜 COMMIT で囲めば commit は1回だけなので.
もちろん,データの一貫性保持の観点からも START TRANSACTION を入れた方がいいですけど.
CREATE PROCEDURE registurl(urlx varchar(256), mtimex int, totalwordsx int unsigned)
BEGIN
DECLARE urlid, totaldocs bigint unsigned;
SELECT id INTO urlid FROM urls WHERE url = urlx;
IF urlid IS NOT NULL THEN
UPDATE regwords, words SET words.df = words.df - 1 WHERE regwords.url_id = urlid AND words.id = regwords.word_id;
DELETE FROM dispwords WHERE url_id = urlid;
DELETE FROM regwords WHERE url_id = urlid;
END IF;
IF totalwordsx IS NULL THEN
DELETE FROM urls WHERE id = urlid;
ELSE
INSERT urls (url, mtime, totalwords) VALUES (urlx, FROM_UNIXTIME(mtimex), totalwordsx)
ON DUPLICATE KEY UPDATE mtime = VALUES(mtime), totalwords = VALUES(totalwords);
IF urlid IS NULL THEN
SET urlid = LAST_INSERT_ID();
END IF;
INSERT words (word) SELECT word FROM tmpwords ON DUPLICATE KEY UPDATE df = words.df + 1;
UPDATE tmpwords JOIN words USING (word) SET tmpwords.id = words.id, tmpwords.df = words.df;
INSERT regwords SELECT urlid, id, tf FROM tmpwords;
SELECT COUNT(*) INTO totaldocs FROM urls;
INSERT dispwords SELECT urlid, id, tf / totalwordsx * (LN(totaldocs / df) + 1) tfidf
FROM tmpwords WHERE totaldocs / df < 100000 ORDER BY tfidf DESC LIMIT 10;
TRUNCATE tmpwords;
END IF;
END
おぉ、、ストアードプロシージャーをすでに使ってるんですかぁ。
ラジャーです。
ラジャーです。
Operaだと関連キーワードやofuda.ccのあれととスレの一番上の全部や掲示板に戻るが重なって
掲示板に戻るがクリックできない。
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; ja) Opera 9.02
掲示板に戻るがクリックできない。
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; ja) Opera 9.02
2007/01/26(金) 00:26:59ID:CxnnXu9Q0
これって、全部、普通のブラウザからの機能ですよね
2ch専用ブラウザにデータを渡して貰えば、クライアントで処理できるんじゃないの?
話題がそれていたらご免なさい 専用ブラウザ使っているから、見ること無いでね
2ch専用ブラウザにデータを渡して貰えば、クライアントで処理できるんじゃないの?
話題がそれていたらご免なさい 専用ブラウザ使っているから、見ること無いでね
getf.cgiの使い方を説明すればいいんですかね?
http://p2.2ch.io/getf.cgi?http://qb5.2ch.net/test/read.cgi/operate/1166328527/
http://p2.2ch.io/getf.cgi?http://qb5.2ch.net/test/read.cgi/operate/1166328527/
2007/01/26(金) 04:07:25ID:xv4yZrZ10
XHTMLは扱いづらい
2007/01/26(金) 04:49:18ID:XaZ1ZGLD0
あ
189動け動けウゴウゴ2ちゃんねる
2007/01/26(金) 07:15:29ID:G006ntY002007/01/26(金) 11:07:05ID:hJoWPiym0
191動け動けウゴウゴ2ちゃんねる
2007/01/26(金) 12:21:58ID:G006ntY00 専ブラ開発系のスレッドで告知すればいいんですかね?
193外野ァァン
2007/01/26(金) 12:25:28ID:UA1Fteu60 そこでメールマガジンですよ
194動け動けウゴウゴ2ちゃんねる
2007/01/26(金) 12:27:48ID:G006ntY00195こんなんで良い?
2007/01/26(金) 12:46:09ID:G006ntY00 ひろゆきが2chブラウザから関連キーワードを閲覧できるようにしてちょうだいって言ってる。
http://qb5.2ch.net/test/read.cgi/operate/1166328527/186
186 名前:ひろゆき@どうやら管理人 ★[] 投稿日:2007/01/26(金) 04:05:53 ID:???0 ?S★(102442)
getf.cgiの使い方を説明すればいいんですかね?
http://p2.2ch.io/getf.cgi?http://qb5.2ch.net/test/read.cgi/operate/1166328527/
閲覧可能にしてほしいって言ってるだけで、2chブラからの集計はしてないですよ。
http://qb5.2ch.net/test/read.cgi/operate/1166328527/186
186 名前:ひろゆき@どうやら管理人 ★[] 投稿日:2007/01/26(金) 04:05:53 ID:???0 ?S★(102442)
getf.cgiの使い方を説明すればいいんですかね?
http://p2.2ch.io/getf.cgi?http://qb5.2ch.net/test/read.cgi/operate/1166328527/
閲覧可能にしてほしいって言ってるだけで、2chブラからの集計はしてないですよ。
196こんなんで良い?
2007/01/26(金) 12:50:06ID:G006ntY00 >>195の底はおすすめ2ちゃんねるとゴッチャになってた。スマソ。
197動け動けウゴウゴ2ちゃんねる
2007/01/26(金) 15:05:09ID:CxnnXu9Q0 一種の検索ソフトだから、それなりにあるんじゃない?
ググルとか、ヤッホーとか、MSとか やってるからね
専ブラで、負荷分散すればそれなりのが出来るかもしれないけど
上記とぶつかると思うよ
ググルとか、ヤッホーとか、MSとか やってるからね
専ブラで、負荷分散すればそれなりのが出来るかもしれないけど
上記とぶつかると思うよ
2007/01/26(金) 15:09:50ID:yN4KQ28M0
200動け動けウゴウゴ2ちゃんねる
2007/01/26(金) 15:58:14ID:CxnnXu9Q0 関連キーワードを取得しますか?しませんか?
関連キーワードログを保存しますか?しませんか?
関連キーワード登録しますか?しませんか?
関連キーワードデータをアップロードしますか?しませんか?
パケット課金ユーザーには、無縁の話しかも知れません
あっても良いなの機能ですが
関連キーワードログを保存しますか?しませんか?
関連キーワード登録しますか?しませんか?
関連キーワードデータをアップロードしますか?しませんか?
パケット課金ユーザーには、無縁の話しかも知れません
あっても良いなの機能ですが
2007/01/26(金) 16:00:03ID:yN4KQ28M0
まずどういうものか理解しよう。
innodb_buffer_pool_size = 256M
innodb_additional_mem_pool_size = 20M
innodb_log_file_size = 64M
innodb_log_buffer_size = 8M
innodb_file_per_table
InnoDB 用に↑の設定を入れて立ち上げようとしたら......
070126 15:50:04 [ERROR] Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space
mysqld got signal 11;
だそうです......たぶん ulimit の制限に引っかかってるんじゃないかと.
% limit -h datasize
datasize 524288 kbytes
ってことで,これをもっとデカく(物理メモリ上限くらいまで)設定できるようにお願いできればと>むむむさん
>>199 う〜む......そのあたりのは float 使ってるので,それの関係ですかね......
innodb_additional_mem_pool_size = 20M
innodb_log_file_size = 64M
innodb_log_buffer_size = 8M
innodb_file_per_table
InnoDB 用に↑の設定を入れて立ち上げようとしたら......
070126 15:50:04 [ERROR] Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space
mysqld got signal 11;
だそうです......たぶん ulimit の制限に引っかかってるんじゃないかと.
% limit -h datasize
datasize 524288 kbytes
ってことで,これをもっとデカく(物理メモリ上限くらいまで)設定できるようにお願いできればと>むむむさん
>>199 う〜む......そのあたりのは float 使ってるので,それの関係ですかね......
2007/01/26(金) 16:06:55ID:yN4KQ28M0
>>202
掲示板に戻る、全部等を囲っているspanを消したらクリックできるようになりますから多分そうでしょう。
掲示板に戻る、全部等を囲っているspanを消したらクリックできるようになりますから多分そうでしょう。
ちなみに FreeBSD 6.2R/amd64 だと、
datasize 33554432 kbytes
になっているです。
datasize 33554432 kbytes
になっているです。
/usr/src/sys/i386/include/vmparam.h で、
#ifndef MAXDSIZ
#define MAXDSIZ (512UL*1024*1024) /* max data size */
#endif
ってやってて、
/usr/src/sys/kern/subr_param.c で、
maxdsiz = MAXDSIZ;
TUNABLE_ULONG_FETCH("kern.maxdsiz", &maxdsiz);
となっているのか。
#ifndef MAXDSIZ
#define MAXDSIZ (512UL*1024*1024) /* max data size */
#endif
ってやってて、
/usr/src/sys/kern/subr_param.c で、
maxdsiz = MAXDSIZ;
TUNABLE_ULONG_FETCH("kern.maxdsiz", &maxdsiz);
となっているのか。
TUNABLE_ULONG_FETCH ってことは、/boot/loader.conf に書いて再起動か。
とりあえず、
kern.maxdsiz="2048m"
とかですかね。
とりあえず、
kern.maxdsiz="2048m"
とかですかね。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【テレビ】中居正広出演『ザ!世界仰天ニュース4時間SP』日テレ「現時点で変更の予定はございません」 [Ailuropoda melanoleuca★]
- 山陽新幹線で乗客が非常ボタン 車掌に切符の問い合わせしようと [蚤の市★]
- 【テレビ】中居正広出演『ザ!世界仰天ニュース4時間SP』日テレ「現時点で変更の予定はございません」★2 [Ailuropoda melanoleuca★]
- 「被告と事件前に不倫していた」“旭川17歳女子高生殺害”内田梨瑚(22)と禁断不倫のX警部補、ひそかに退職 [おっさん友の会★]
- ドイツ、軍拡時代に逆戻りする、米国も国連も頼れないため 軍事力増強に走る [お断り★]
- 【テレビ】中居正広の‟9000万円トラブル“をキー局が報じないウラに「暗黙の紳士協定」という悪癖 [阿弥陀ヶ峰★]
- 【NJPW】新日本プロレスワールド part.2196
- 【NJPW】新日本プロレスワールド part.2195
- 【NJPW】新日本プロレスワールド part.2197
- 中山競馬1回2日目 2
- 中京競馬1回1日目 2
- 競輪実況★1267
- 【実況】博衣こよりのえちえち五目並べ🧪
- Yahoo!ニュース「転売ヤーに拒否反応を持つのはジャップだけ。転売は正当なビジネス。価値観をアップデートし社会は転売を許容するべき」 [679326974]
- 変な🏡
- 知的障害者出禁🙅🏻‍♂🏡
- 【歴史】昭和天皇がマッカーサーに自分の命と引き換えに、国民を助けてくれって言ったってマジ🤔 [634417921]
- 【増税】軽自動車の自動車税15%UP もう終わりだよこの国 [754099271]