datファイルを共有するP2Pソフト o2on 15dat
at TECH
1:デフォルトの名無しさん
08/06/01 15:33:34
2chのdatファイルを共有するP2Pソフトです。
現段階ではまだαバージョンですので、マターリいきましょう。
公式サイト
URLリンク(o2on.sourceforge.jp)
URLリンク(sourceforge.jp)
wiki
URLリンク(o2on.sourceforge.jp)
初期ノード
URLリンク(o2on.jf.land.to)
URLリンク(o2on.sourceforge.jp)
前スレ: datファイルを共有するP2Pソフト o2on 12dat
スレリンク(tech板)
2:デフォルトの名無しさん
08/06/01 15:34:33
過去スレ:
Part 1 スレリンク(tech板)
Part 2 スレリンク(tech板)
Part 3 スレリンク(tech板)
Part 4 スレリンク(tech板)
Part 5 スレリンク(tech板)
Part 6 スレリンク(download板)
Part 7 スレリンク(download板)
Part 8 スレリンク(download板)
Part 9 スレリンク(download板)
Part 10 スレリンク(download板)
Part 11 スレリンク(download板)
Part 12 スレリンク(download板)
Part 13 スレリンク(download板)
Part 14 スレリンク(download板)
3:デフォルトの名無しさん
08/06/01 15:36:22
補完テスト用スレ
通常スレテスト
スレリンク(news4vip板)
スレリンク(livenhk板)
スレリンク(bgame板)
スレッド924テスト
スレリンク(saku板)
鯖移転テスト
スレリンク(news4vip板)
スレリンク(news4vip板)
DBrebuilder v1.1
URLリンク(o2on.net)
o2onの再構築機能だとうまくデータベースを作り直せない場合に使うソフト
4:デフォルトの名無しさん
08/06/01 22:32:44
>>1
スレたて乙
5:デフォルトの名無しさん
08/06/01 23:33:16
>>1
スレたてo2
6:前スレ960
08/06/03 22:14:07
>>k-u氏
とても分かりやすい説明をありがとう。
ソースが読めないので o2on の挙動が理解できずにいましたが
DB再構築のプロセスがよく理解できました
今まで私がのたまっていた事を解り易くするために
先日行ったテスト結果をまとめて視覚化しました。
URLリンク(o2on.net)
o2on の「DB再構築」を開始から3時間ほど追ったものです。
テストには721氏の「0044自家ビルド版」を使用。
スマートな方法ではありませんがスクリーンキャプチャで
メモリ使用量、dat.db のサイズを30秒間隔でサンプリング。
k-u氏の説明ではキューの処理が間に合わず、ある程度バッファ
されたキューはまとめて「1000件ずつ処理される」とあります。
これで「1000件(レコード)分のデータ」は
MEM → dat.db-journal → dat.db と渡るものと理解しました。
1000件(レコード)分の情報量というと dat.db のファイルサイズ
に置き換えると ≒450KB になります。
でも、450KB相当のデータが dat.db へ移動する様子がテスト結果から読み取れない。
これは「特異な環境による結果」でしょうか?
要望:
前スレ996でもレポがありましたが・・・。
DB構築時に表示されるインジケータのデータソースを
走査プロセスではなくキューの処理を対象としてほしい。
「走査(インジケータ)の終了」=「DB再構築の完了」
と認識して o2on の「P2P起動」あるいは o2on を「終了」
してしまうユーザも少なくないと思います。
7:おさ ◆OSApxZfJs2
08/06/04 00:10:33
落ちました。
O2KeyDB.cppのO2KeyDB::MakeKeyElementから暗黙的に呼び出されている
STLのbasic_stringのnewで失敗。
if (cond.mask & KEY_XMLELM_HASH) {
key.hash.to_string(tmpstr);
xml += L" <hash>";
xml += tmpstr;
xml += L"</hash>"EOL; ←ここ
}
なぜかxmlの中身が空です。
うーん、呼び出しの前後を追ってみましたが、なんでメモリの確保なんかに
失敗してしまうのか、さっぱりです。
8:デフォルトの名無しさん
08/06/04 00:34:15
メモリ確保で落ちるケースは
まず間違いなくヒープの管理ブロックをぶっ壊してるよ。
獲得したサイズ以上に書き込んでる場合が多いけど
他にも、複数回freeしたりnewしてないポインタをdeleteしたりとか。
9:デフォルトの名無しさん
08/06/04 15:34:59
2〜3日前からグローバルIP確率できなくなったんですがバグでしょうか?
ポート解放セキュリティ解放ともに行ってた状態で今まで問題はありませんでした。
ver42/43/44にて使用ポート変更しても結果は同じでした。
10:デフォルトの名無しさん
08/06/04 15:43:10
他Verでもだったら44固有のバグでもないんじゃない?
11:k-u ◆k.u4xwkrx.
08/06/04 20:02:26
>>6
詳細なレポートありがとうございます。
journalファイルに関するところはSQLite内部の話で、
これはトランザクションのログファイルなんですが、サイズがどんどん増えていくと言うことは
トランザクション処理が正常にcommitされていないと言うことでしょうか
> これは「特異な環境による結果」でしょうか?
こちらでは再現しませんがバグには違いないかと・・・
> 要望
前スレで説明不足がありましたが、DB更新スレッド自体はP2P停止、起動にかかわらず
常にキューを監視しています。
キューには他ノードやプロキシから受け取ったデータも登録されていきますので。
通常時はキューにはほとんどたまらないので問題は起きないのですが、
再構築で多量に登録されるとバグが表面化するのでしょう。
またo2on終了時は当然キュー内容を全部処理するようになってますので問題はない"はず"です。
12:前スレ960
08/06/04 23:56:42
>>11
> これはトランザクションのログファイルなんですが、サイズがどんどん増えていくと言うことは
前スレ >>965 にある
「dat.db-journal のサイズが不気味に増え続けてる」 は主観的な表現でした。
サンプリングしたデータが表す通り、際限なく増加するのではなく微妙な増減を終始繰り返すのみ。
ほとんど変化のない dat.db に対して、時間はかかってもジワジワとサイズが増加する dat.db-journal
を見てこの様な表現となりました。
> トランザクション処理が正常にcommitされていないと言うことでしょうか
commit とはトランザクション処理の結果を dat.db に反映することを指すのですか?
だとしたら、そのように見えます。(違ってたらゴメソ…)
あのグラフ中にあるように、開始直後 dat.db のサイズが順調に増加しているのに対して
23分あたりからその増加率が著しく減少している様子がその答となりますでしょうか。
「要望」へのレスレスです
問題は再構築のプロセスに関する事ではなく 「インジケータ」 にあります。
「インジケータが消えた時点では、まだ再構築のプロセスは継続しているので o2on を終了できない」
常駐ユーザレベルの人が、この挙動を踏まえた上で o2on を使えばそう問題はないと思いますが
*それでも* いつ終わるか分からないプロセスを終了するまで待ち続けるのはチョット辛いです。
この処理がどの程度進行しているのかが分かれば
- 今回は再構築をあきらめて o2on を強制終了しようとか
- 次回はこのタイミングで再構築しようとか
- 再構築完了までの残り時間を予測してこのまま待とうとか
ユーザが選択する判断材料にもなると思うのです。
13:デフォルトの名無しさん
08/06/05 08:12:15
管理画面がリアルタイムで更新できたら見てても楽しいかも。
再表示の度にCPU使用率が上がることを考えると結構重くなっちゃうのかな?
14:デフォルトの名無しさん
08/06/05 13:37:56
linuxで動くならレンタル鯖で動かすんだけどね
15:デフォルトの名無しさん
08/06/05 14:06:39
>>14
すぐにディスク領域が無くなりそうな希ガス
16:デフォルトの名無しさん
08/06/05 18:46:24
2006年の12月だっけ?実質プロジェクトが動き出した頃から入れてるがまだ20G前後だよ。
常時稼働じゃないからそこまで参考にはならないかもだけど。
最近のレンタル鯖って320とか容量あるんじゃないっけか?
と言うかレン鯖なら是非BOINCを回して欲しい。
17:初音の人
08/06/05 19:19:05
Ubuntu8.04、o2on44bにてついに管理画面の表示に成功。
Profile.xmlの保存についても何故か普通に出きるようになってる。
しかしながら他タブは問題ないのに管理タブに移行するとo2onがほぼ90%近くで落ちる。
ノードの追加は手動で(ローカルからのファイルコピー)済ませた後にグローバル確定まで確認。
通信自体はまだ確認していないけど、もしかすると管理タブを開かなければ常用が可能かもしれん。
18:初音の人
08/06/05 19:44:25
どうやら問題は管理タブではなく、状態タブの模様。
それ以外のタブならば問題なく表示可能。
状態タブだけ他タブと表示の方式?が違うのかな?
管理タブ移行後一度o2onが落ちるのでブラウザ側で他タブ押しておく。
o2on再起動後(即起動はbind云々でできないので少々放置)ブラウザで再読み込みでウマー
よく管理画面の表示が崩れる→再読み込みでおk
取り合えずグローバル確定とNetが500を越えた記念(保管は残念ながらまだ0件)
URLリンク(www.dotup.org)
URLリンク(www.dotup.org)
個人的にはUAがどうなってるのか気になる
初音の人って名前つけてみたので見かけたら教えて欲しいよw
ノード
ce0755e93c4159e2b7a855836b7529c45211d47d62dfb2ba2418
19:デフォルトの名無しさん
08/06/05 19:56:25
>>18
156 初音の人 r-- 62dfb2ba 54320 O2/0.2 (o2on/0.02.0044; Win32) 20,069 23,062 1,803 1,785 2008/06/05 19:55:17 ・・・・
そのままコピペ
20:初音の人
08/06/05 20:04:55
>>19
さっそくありがとう。
やっぱりWindowsエミュレートしてるわけだからWin32になるわけか。
パーミッションみたいなflg項目の詳細がわからないけど、通信自体はできてそうだね。
でもまだ保管が0件orz
管理タブ以外でもソートをしたら落ちた
UIはこれだけ使えれば全然余裕だと思うけど、保管ができなかったら実用までは今一歩か。
それにしても043からは設定の保存、UIの表示が出きるようになっただけでももの凄い進化だと思える。
開発陣様型の努力と苦労の賜物だと思います。
本当にお疲れさまです。
21:デフォルトの名無しさん
08/06/05 20:44:12
ところでメッセンジャー機能って前までログが表示されてた気がするのだけどいつからか表示されなくなった気がする。
ログと言うか正確には最新の投稿みたいな感じで。
これって家だけの不具合?
22:デフォルトの名無しさん
08/06/05 21:08:52
>>20
パーミッションみたいなフラグは
r ・・・ オプションの「稼動状態を公開する」にチェックが入っている
t ・・・ オプションの「スレ閲覧の履歴を公開する」にチェックが入っている
D ・・・ 管理画面の「dat収集」でチェックがひとつでも入っている
だと思う。
一個も補完されないのはDが入ってないからでは?
>>21
うちでは残ってる。(build 0044)
異常終了したときにすっ飛んだとかでは?
23:初音の人
08/06/05 21:53:35
俺本当にバカ…
結果から言うと保管はできました。
URLリンク(www.dotup.org)
前回のノリもあって保管スレに1個もチェック入れないで確認してたわorz
これでGUI利用した場合では正常に保管が確認されました。
ただし専ブラとの連携(V2C20080420)はやはり上手く行かない様です。
Windowsのアプリじゃないからか?と言うことでJaneStyleをWineじゃ×(Jane特有っぽい)
GUI版起動中に別マシンからのアクセスで管理は可能。
しかしながらやはり管理タブ表示をすると落ちます。
別マシンからプロクシ設定をした場合にはスレッド検索としての登録も可能
また、dat取得済みスレッドに関しては閲覧も可能でした。
この時点でLinuxのX入り鯖を運営している場合は十分に運営が可能な状態です。
またDebian etchのCUIのみでもテストしてみましたが
予想はできていましたがやはりこちらは無理でした。
WineがGUIとして表示しようとするために?描画でアウト。
個人的にはコンソールのみでの起動ができるようになれば100点満点です。
しかしながら既存のX利用ユーザとしてはデスクトップ用途マシンならば
問題なく利用が可能な為にかなり利用幅が広がったと思います。
今後もお体に気をつけて開発頑張って下さい。
24:デフォルトの名無しさん
08/06/06 08:25:34
>>16
Winのレンタルサバとかなかったっけ?
まあo2onのためにサバ借りるのは、何か違うと思うがw
うちは2chのクローラーも走らせてるから38G越えてしまった。
25:デフォルトの名無しさん
08/06/06 08:26:08
linuxでうごくとなるとi-monaとも組み合わせたくなるな
26:デフォルトの名無しさん
08/06/06 13:22:13
つまり携帯から過去ログを取得できるかもってことか
27:721 改め e ◆CuSO4..R5I
08/06/06 15:39:02
>>6>>11-12
"database is locked" が発生していて、正常に commit されていない
可能性が非常に高いです。
というか、自分の環境でも試してみたら同様の症状が発生してかなり涙目なんですが。
以前 BRANCH_0043 で実験していたときは無問題だったので
そのまま駆け込みチェックインしちまったのですが、
datname のインデックスを作るようにした変更が影響を与えているようで、
それを除去すればおおむね良好です。
ひとまず、細かい原因と改善策をなんとかひねりだしたいです。
28:k-u ◆k.u4xwkrx.
08/06/06 18:31:10
>>12 後半部分
ずれた回答してしまってすいません
手短に言いますと、データベース更新作業はファイルを読み込む動作に比べて
ほとんど時間がかからない前提になっているので、プログレスバーをどうこうするより
まずそのバグと思われる動作を直したいと言うことです
> 初音の人
特に努力と苦労をした覚えはないですが、IMultiLanguage2に変えたのが効いたのでしょうか・・・
>>27
失礼、私が追加したコードですね (´・ω・`)
そのインデックスは、dat一覧を出すときにdatnameでのソートが速くなるので入れました
insert時にパフォーマンスが落ちることは分かっていたのですが、検証不足だったようです。
とりあえず抜いてもらっても結構です。
が、
根本的に、データベースが使用中ならば待つような仕組みをo2on側で用意してはどうかと思います。
現在は適当に5秒待ちになってますが、DBのロックをちゃんと把握して待つようにした方がいいかなあと
もしくはタイムアウト後にリトライするかですね
いまのままですと、不具合がユーザ環境に激しく依存するので好ましくないでしょう
29:前スレ960
08/06/06 22:43:30
>>28
> ほとんど時間がかからない前提になっているので、プログレスバーをどうこうするより
なるほど、そういう経緯でしたか。
これは「要望」なのですが (開発の優先度は低くても構いません)
フィックス後も 「走査終了→構築終了」 の間に大きな遅延が存在しうる場合
どのような形であれ 【構築中】 【構築完了】 のステータスは欲しいところです。
DBの再構築を目的とするユーザにとっては、構築プロセスの一つである
「走査の進捗状況」のみを知ってもあまり利益はないと思いますので。
30:デフォルトの名無しさん
08/06/06 22:54:31
これって管理画面のdat収集で特定の板だけ設定できないのですか?
チェックをはずしても元に戻ってしまうんですが。
31:デフォルトの名無しさん
08/06/06 23:00:55
確定ボタン
32:デフォルトの名無しさん
08/06/06 23:57:13
>>31
ありがとうございました。
33:デフォルトの名無しさん
08/06/07 00:42:46
アップデートするときに上書きするファイルってo2on.exeだけで良いですか?
34:デフォルトの名無しさん
08/06/07 00:54:18
>>33
良い場合とダメな場合がある。
自分で判断できないなら「全て上書き」にすべき。
35:デフォルトの名無しさん
08/06/07 01:27:00
確か以前.exeとadmin上書きだったような気が
36:デフォルトの名無しさん
08/06/07 05:08:21
sourceforgeのサイトって変わった?
乙です
37:デフォルトの名無しさん
08/06/07 12:40:15
>>28
> そのインデックスは、dat一覧を出すときにdatnameでのソートが速くなるので入れました
> insert時にパフォーマンスが落ちることは分かっていたのですが、検証不足だったようです。
なるほど、思わぬ弊害ということですね。自分の検証不足でもあります。
> 根本的に、データベースが使用中ならば待つような仕組みをo2on側で用意してはどうかと思います。
> 現在は適当に5秒待ちになってますが、DBのロックをちゃんと把握して待つようにした方がいいかなあと
> もしくはタイムアウト後にリトライするかですね
激しく同意です。
いきなり
if (err != SQLITE_OK) goto error;
しないで、
err == SQLITE_BUSY 時に適当に待って何度かリトライする感じですかね。
とりあえず SQLITE_BUSY とリトライについて調べてみます。
それと、あまりにもエラーが続くようだったら、あるいはキューが溜まりすぎたら
dat 走査を一時停止するという仕組みも必要だと思われます。
メモリ使用量的な意味でも。
38:e ◆CuSO4..R5I
08/06/07 12:42:02
>>37は自分です。
39:デフォルトの名無しさん
08/06/07 19:56:07
0043と0044はどっちの方が安定していますか?
ちょっと不安
40:デフォルトの名無しさん
08/06/07 20:08:32
0044bは結構安定してる ような気がする
41:デフォルトの名無しさん
08/06/07 20:17:53
0044b安定中
42:デフォルトの名無しさん
08/06/07 21:14:46
0044にしたら何もしてないのにアプリケーションエラーで落ちることがちょくちょくあったけど
0044bは一度もない。安定している。
43:デフォルトの名無しさん
08/06/07 21:16:33
43で最近ちょくちょくDBを開くのに失敗する
44:デフォルトの名無しさん
08/06/07 21:19:54
44b圧勝
45:おさ ◆OSApxZfJs2
08/06/08 14:02:22
DB再構築をするときに、datテーブルの中ってクリアしないんでしょうか?
(それらしいコードは見つからなかった)
なぜかというと、現在0044bを使用しているのですが、管理画面のdat収集のページを
表示しようとすると、o2onが落ちるようになってしまいました。
ソースを追いかけてみたら…(長くなったので自主規制)…dat.dbに異常なレコードが
含まれており、これが消えない限り解決しないという結論になりました。
SQLite Database Browserなどを使って手動でdat.dbから異常なレコードを消せば
良いのでしょうけど。
DBrebuilder v1.1ではdat.dbを一から作り出すから大丈夫なんでしょうね。
ちなみに、異常なレコードが作られた原因は不明です。
異常なレコードのlastupdateは1212450516(2008/06/03 08:48:36)でしたが、
この時間は何もしてないかスレを見てたか、どちらかなんですけどね。
テーブルに制約とか入れると、また重くなってしまいますよね…。
46:デフォルトの名無しさん
08/06/08 16:59:01
>>45
> なぜかというと、現在0044bを使用しているのですが、管理画面のdat収集のページを
> 表示しようとすると、o2onが落ちるようになってしまいました。
この時は0044bで正常に構築を完了したdat.dbを使ったの?
うちの場合、既存のdat.dbをそのまま流用してるんだけど
dat収集のページを開いても落ちることはないなあ
> DBrebuilder v1.1ではdat.dbを一から作り出すから大丈夫なんでしょうね。
o2onは既存のdat.dbのあった場合、その差分とかを参照しながら構築してるんですか?
47:おさ ◆OSApxZfJs2
08/06/08 21:04:18
>>46
dat.dbは0044bで正常に完了した物を使いました。
>>45 の省略した部分に原因があったので、かいつまんで書くと
o2onのDB再構築は読み込んだファイルからハッシュを生成して、
それをdat.dbに対してinsert or replace into〜を使って更新をかけています。
o2onはDB再構築の前に delete from dat や truncate table dat を実行していません。
なので、キーとなるhashが一致しない限り、異常なレコードが生成されたときに消える機会が無くなります。
んで、問題のあったレコードは、datテーブルのhashに何か入っていて、
それ以外が空文字か0、lastupdateとlastpublishは1212450516付近の値。
そしてdat収集タブを開くときに、O2Boards::MakeBBSMenuXML()から呼ばれる
O2DatDB::select_datcount()で"ドメイン:掲示板名"のmapを返してくるのですが、
":"というドメイン名と掲示板名が空のものがかえってきます。そのためMakeBBSMenuXML()のなかの
for (nmit = nummap.begin(); nmit != nummap.end(); nmit++) {
wsplit(nmit->first.c_str(), L":", token);
xml += L"<board>"EOL;
xml_AddElement(xml, L"bbsname", NULL, token[1].c_str()); ← ここ
で存在しない添え字を参照して落ちてしまいます。
48:デフォルトの名無しさん
08/06/09 00:28:53
新バージョンの論議中申し訳ございませんが、少々困ったことがあります。
たとえば、
URLリンク(firefox.geckodev.org)
のように、Wikiには過去スレがまとめられたページがときどきありますよね。
↑のページのように、親切にhtmlなどとして見られるサイトもありますが、あまりありません。
上のようなページから2chスレへのURLを取り出して、それを一括でo2onの「スレッド検索」に
追加したいのです。
他のソフトを使って2chスレッドへのURLだけを取り出してリストにすることはできたのですが、
それを一括でo2onへ登録する方法がわかりません。
SQLをいじってみたらできるのかな、とも思いましたが詳しくなくて全然できません。
何かいい方法がありましたらご教授お願いします。
49:初音の人
08/06/09 02:58:13
以前LinuxのV2Cからスレッド検索に登録ができないと書きましたが
今確認した所きちんと登録が可能でした。
しかしながら不安定?な様で登録ができる場合とできない場合があるように思えます。
こちらに関してはポップアップが表示できないために確認作業が大変ですが、
デスクトップとして使用する分にはほぼWindowsと変わらない環境で使用できそうです。
あと初めてメッセージを頂きましたw
送ってくれた方ありがとうございました。
50:初音の人
08/06/09 03:22:36
あ、取得済みのdatに関しても閲覧に関してはV2Cからの読み込みはできないようです。
なのでWindows同様にとはいきませんね。
Javaでのマルチプラットフォームを実現しているV2C(Windowsと同様の動作をしてくれるかなと)が
無理なので、他の専ブラも希望は薄そうです。
こちらも余裕があれば動作の検証をしてみます。
51:デフォルトの名無しさん
08/06/09 08:34:46
bbs2chreaderの開発が終了しました。。。
52:デフォルトの名無しさん
08/06/09 09:47:27
>>48
自分の場合はIEの右クリックメニューに"リンクを2chブラウザで開く"メニューをつけてあるので、リンクを片っ端から2chブラウザに送ってしまえば過去ログになってるものは全て登録されます
53:デフォルトの名無しさん
08/06/09 14:06:40
>>48
バーボン食らわない?
後開くのがとても重いし
54:53
08/06/09 14:07:23
アンカーミス
>>52です
55:デフォルトの名無しさん
08/06/09 18:20:27
バーボンって連投規制とかじゃないっけ?
読み込みは大丈夫だろう。
56:デフォルトの名無しさん
08/06/09 18:22:46
過剰リロードでもバーボンに引っかかる
同一サーバーでスレを読むときは10秒ほど間隔をあける必要がある
57:デフォルトの名無しさん
08/06/09 18:55:59
それは知らなかった。
どれくらい開くとなるんだろうか。
同一板のスレを10個くらい開いてJaneで全てのタブの新着チェックしても問題ないしな。
ちなみに>>2のスレを選択→選択範囲のURLを全て開くも問題無し(14個)
ブラウザからってのが問題?
58:デフォルトの名無しさん
08/06/09 19:04:23
Greasemonkey使ってo2onの検索に直接放り込むスクリプト使ってるけど、
時折o2on側からの返答がなくなって止まったりする。
あと生きてるスレッドも検索登録されることになったりとか。
59:デフォルトの名無しさん
08/06/09 19:05:41
まあ詳しくはこれを
URLリンク(info.2ch.net)
60:デフォルトの名無しさん
08/06/09 20:00:36
>>47
> o2onはDB再構築の前に delete from dat や truncate table dat を実行していません。
> なので、キーとなるhashが一致しない限り、異常なレコードが生成されたときに消える機会が無くなります。
この問題は構築後にanalizeによって解決しないのですか?
61:デフォルトの名無しさん
08/06/09 20:41:42
analyzeってのは統計情報を更新するコマンド。
異常なレコードが登録されてるならば、truncateなりdeleteなりして、レコードを削除しない限り
勝手に消える事は無い。
62:デフォルトの名無しさん
08/06/09 22:15:05
>>61
ありがとう
でreindexってのはなに?analyzeとはまた違うんだよね
いまいちこの違いがわからない…。
どちらもデータベースを整理整頓して読み込みや書き出汁の効率を上げるためと
理解して気が向いたときに実行してるんだけど
63:おさ ◆OSApxZfJs2
08/06/09 22:25:19
>>62
reindexは、インデックスを再作成します。
analyzeは、テーブル内のレコード分布を調べて、検索クエリーが実行されたときの
インデックスの使われ方を決めます。
64:デフォルトの名無しさん
08/06/09 23:41:16
ほんとに0044b安定してるな
65:デフォルトの名無しさん
08/06/09 23:42:15
>>58
どこにある?
66:デフォルトの名無しさん
08/06/10 00:09:42
>>61
>>63
重ねてありがとう
どんな機能なのか分からないまま使っていくのが、なーんとなく気持ち悪かったもんで聞いてみました
67:デフォルトの名無しさん
08/06/10 01:16:21
今さっきログ見たらこんなになってた
今も継続中
URLリンク(www.dotup.org)
68:デフォルトの名無しさん
08/06/10 01:24:54
で、なんか狂ったと思ってo2on終了させたら
Proxyを終了してますで止まった
Ver 0044b
69:デフォルトの名無しさん
08/06/10 06:37:19
>>65
自分で作った。公開してない。
70:デフォルトの名無しさん
08/06/10 11:03:08
むしゃくしゃしてやった。
のかと思ったよ。
71:デフォルトの名無しさん
08/06/10 16:14:02
過去ログ取れねーと喚いてた者ですが
URLの"kako/"を削ったら落ちてきますた。
お騒がせしてすんまそん
72:デフォルトの名無しさん
08/06/11 07:24:30
>>69
ほしいです。。。。。。。。。。
73:デフォルトの名無しさん
08/06/11 11:26:38
>>69
うp
74:デフォルトの名無しさん
08/06/11 12:36:21
>>73
ドピュッ
75:69
08/06/11 18:25:40
>>72-73
完全に自分用で不親切仕様だし、バグ他問題あるかも知れないけど出しときます。
URLリンク(o2on.sourceforge.jp)
Fx + Greasemonkeyでしか試してません。それ以外の環境はまず考えてません。OperaとかuserChrome.jsのローダーとか。
操作はすべて猿アイコンのメニューから。
インストール後、リロードか新しいページを開くと「o2on setting...」というメニューがあるので、そこでo2on管理画面のURLを入れて下さい。
再度リロードすると「Add」というメニューがあるので、それをクリックするとページ内のスレッド風のURLを問答無用で検索登録します。
問題点
・完全なdatを持っている場合でも検索登録
・まだスレッドが落ちていない場合でも検索登録
・フレームページに対応してない
・追加するスレッドのURLが多いと登録終了まで時間がかかる
公式のうpろだ使わせてもらいました。
76:デフォルトの名無しさん
08/06/11 19:16:56
>>75
本当にありがとうございます。
ありがたく使わせていただきます。
77:デフォルトの名無しさん
08/06/11 20:13:05
>>75
( ⌒) ∩_ _ グッジョブ!!
/,. ノ i .,,E)
/ /" / /"
_n グッジョブ!! / / _、_ ,/ ノ'
( l _、 _ / / ,_ノ` )/ / _、_ グッジョブ!!
\ \ ( <_,` )( / ( ,_ノ` ) n
ヽ___ ̄ ̄ ノ ヽ |  ̄ \ ( E)
78:デフォルトの名無しさん
08/06/12 01:58:15
kako2chspiderを長時間(40時間くらい?)動かしてると、
途中から取得datの容量が0バイトになっちゃうんですけど…
79:デフォルトの名無しさん
08/06/12 04:42:25
>>78
それだけ動かしてると、どんなもんのdat数を取得できるの?
80:e ◆CuSO4..R5I
08/06/12 12:03:09
DB 再構築周辺のメモ。
O2DatDB::update() が dat の数だけ O2DatDB::select(O2DatRec &out, hashT hash)
を呼び出すのだが、これは無駄極まりなくて、
特に呼び出した分だけ sqlite3_prepare16_v2() するのが激しく無駄。
sqlite3_stmt は一回用意したら使いまわそう。場合によっては SQLITE_BUSY を返すし。
O2DatDB::update() 内で select するコードをべったり書くか、
それか sqlite3_stmt* を受け取って、それを使う関数を作るかだな。
datname のインデックスはとりあえず残す。
81:デフォルトの名無しさん
08/06/12 14:41:16
>>78
連続で取りすぎでバーボンくらってるとか?
こちらは生きてるスレを取得してるけど、1秒1スレにしておかないとバーボンに引っかかってしまう。
82:デフォルトの名無しさん
08/06/12 14:57:32
オレ使うだけの人なんだけど、Ver 0044bって
dat落ちurlをクリックした時に「検索に追加しました」ってバルーン表示しないの?
管理画面・スレッド検索を開くと追加されてるからまぁ良いんだけど、o2onオプションの
バルーン通知で「検索登録時」にチェックしててもバルーン表示してくれないです。
「P2P起動・停止」、「補完時」はバルーン出るです。
「メッセージ受信時」は、受信したこと無いから知らんです。
83:78
08/06/12 14:57:56
>>79
取得間隔が長いので、まだ4000ちょいですわ。
ログ集める板も限られてるし
>>81
1秒でも大丈夫なんですか?
今まで●焼きが怖くて20秒間隔に設定してました…
84:デフォルトの名無しさん
08/06/12 15:12:51
>>83
間隔を短くするつもりなら、やめとけ
613: 704 [sage] : 2008/03/28(金) 20:37:14
>>612
●はHTTPヘッダで判定できるのでその方がいいかも
ところで、o2on側で●ログインしてdatを持ってきて他ノードに配るって言うのを
自動化した場合規約違反になるんでしょうかね?
あるいはアクセス過多で焼かれることってあるんでしょうか
614: デフォルトの名無しさん [sage] : 2008/03/28(金) 20:55:08
FOXに聞いてみたら?
615: デフォルトの名無しさん [sage] : 2008/03/28(金) 20:57:58
やり過ぎるとバーボン行きにはなりそうだな
30秒感覚くらいなら大丈夫じゃね
616: デフォルトの名無しさん [sage] : 2008/03/28(金) 21:00:00
おれは2秒おきに取りにいってるけど、大丈夫。
間髪入れずにいくと流石にバーボンだな
617: デフォルトの名無しさん [sage] : 2008/03/28(金) 21:04:29
>>613
自動化はアウトじゃね
あと他人に配らなくても過剰にアクセスした段階で焼かれる
大体30秒に一回取得のスクリプトを一日回したら焼かれた
85:デフォルトの名無しさん
08/06/12 15:45:16
>>80
ここのselectってinsertするかupdateするか判定してるだけですよね?
とりあえずupdateしてみて更新件数が0件ならばinsertってロジックにしたらいいだけでは無いでしょうか。
SQLiteでも更新件数って取得出来ますよね?
86:78
08/06/12 17:31:13
>>84
どうもです。
もっと延ばさなきゃ駄目なのか…
87:e ◆CuSO4..R5I
08/06/12 17:47:13
>>85
ですよね。先に INSERT するって方法もありますね。
そこで、よくソースを読んだらひどすぎるバグを発見したよ。
bind(db, stmt_update, 6, it->hash) してないので、結局何も更新されないの。
癒された。
88:デフォルトの名無しさん
08/06/12 18:17:34
<チラシの裏>
なにやら2chの鯖一台が逝ったようですね
万が一というかなんというか、dat飛んでたら今こそ溜め込んだdatたちを生かせそうかも
っと、チラシの裏失礼
2ch サーバーダウン(鯖落ち)情報 part203
スレリンク(operate板:41番)
</チラシの裏>
89:k-u ◆k.u4xwkrx.
08/06/12 18:21:11
データベース周りはもっといじった方がいいみたいですね。
ネットワーク関係は安定してるんですけどね。
引き続きバグフィックスはBRANCH_0043でよろしいでしょうか
バージョンごとに分けていった方がいいですか?
分けすぎても面倒かなと思いますが
trunkは放置になっていますがバグフィックスをマージして
プラットフォーム依存のコードを減らす作業でもできたらなあと思っています。(妄想)
90:デフォルトの名無しさん
08/06/12 20:08:27
>>85、>>87
selectせずにinsert or replaceだけで充分な希ガス。
update or replaceを使って意味があるのは
UNIQUE項目(datテーブルの場合はhash)をupdateする場合だけでしょ?
“or replace”なんていう非標準SQLを使いたくないって理由なら
プログラム側で分岐するしかないけど。
91:e ◆CuSO4..R5I
08/06/12 20:12:14
>>89
> 引き続きバグフィックスはBRANCH_0043でよろしいでしょうか
> バージョンごとに分けていった方がいいですか?
> 分けすぎても面倒かなと思いますが
BRANCH_0043 のままでいいと思います。
92:デフォルトの名無しさん
08/06/13 01:04:12
隠れていたo2onのブレーンたちがこんなにいたのか。
実は静かにソースを眺めていたのね
o2onはまだまだ進化しそう。。。心強いなあ
93:e ◆CuSO4..R5I
08/06/13 15:20:37
>>90
一からまるごと再構築という観点ではそんな気もするんですが、
現在は既存の DB をベースに最新の状態に更新する形での再構築という仕様で、
UPDATE すべき場合は lastpublish というカラムはそのままにしておきたいという
仕様がある感じなので、INSERT OR REPLACE だけで済ますのは微妙。
あくまでも現状の仕様を維持するのであればの話ですが。
逆に、今が絶好のチャンスなのでその辺の仕様を覆すような案も歓迎。
いろいろな話がちょっと前にも出ているわけですし。
他にも DB 周辺の指摘やアドバイス歓迎。
むしろいい具合に書き直してくれる人歓迎。
94:78
08/06/13 18:08:09
取得間隔を2秒にしてやり直したら、
1000番代以降の最古スレまで完走したものの、
歯抜けが続出…
間隔延ばしても
一定時間クロールし続けると
弾かれる様だし…
どうすればいいんだ('A`)
95:k-u ◆k.u4xwkrx.
08/06/13 20:55:15
(自分の中での)データベース関係検討事項
詳しい人の突っ込みが欲しいです
・テーブル構造
datテーブル一つの方がパフォーマンス的にはよろしいのでしょうか?
(現状リレーショナルになってません。エクセル表みたいな感じ)
datnameは文字列じゃなくてスレ立てtimeを数値型で持った方が速いのでは→ただし汎用性低下
・再構築プロセス
なんかスレッド生成しまくってるのが気に入らない
I/Oとりあってそう
・update
どこが重いのかちゃんと調べる
ただしいSQLの使い方を調べる
軽量化・簡素化
>>87のような間違いが起こるのもなんか関数が長すぎる希ガス→コード整理
・DBロックエラーの処理
>>28
ロック時間は数百ms程度に抑えた方がいいのではないだろうか 根拠無い数字だけど
96:デフォルトの名無しさん
08/06/13 22:01:23
>>93
o2onを手掛けた原作者の設計構想はともかく
実際にソースを見た人は、1からのDB再構築と
既存のDBを活用しての再構築では
どちらにメリットがあると考えますか?
今のo2onに限って言えば、同じDBが生成されるのなら
どちらの方法であれ、再構築に掛かる時間の短い方が
ユーザ側にはメリットがありますが
将来的な機能の拡張を考慮すると、また別の話になるんでしょうね
>逆に、今が絶好のチャンスなのでその辺の仕様を覆すような案も歓迎。
確かにいいチャンスなんでしょう・・・
# コードが読めない、書けない人間には歯がゆいところです
こんな機能はコードを大きく書き換えることなく追加できたりするものなんでしょうか。
・P2Pを実行しながらDBの再構築ができたりとか
・何某かのフラグを格納するフィールドを後から追加したりとか
>>95 氏の
> ・DBロックエラーの処理
> ・テーブル構造
にも絡んでくる話ですね。
97:デフォルトの名無しさん
08/06/13 22:40:51
Linuxでも完全に動くように期待してるよ♪
dat保有量がエロ動画の量を超えててなんか悲しくなった…
98:デフォルトの名無しさん
08/06/13 23:56:30
>>95
C++は読めないんですが、読めないなりにO2DatDB.cppを眺めてみた感じでは
以下の2文が遅いように思えます。
・where句なしのorder by random()
・select sum(disksize) from dat;
前者はたぶん全件ソートがかかると思われます。
(limitがかかっているとしても、それ以前に全件ソートがかかると思われます。)
というか、そもそもDBMSはランダム処理が得意ではないので
どっちにしろプログラム側で処理すべきです。
後者に関しては、このSQLを発行するならdisksizeにindexがあるべきです。
ただ、そんなに頻繁に使用するSQLではない(管理画面→状態と、
他ノードからのプロフィール参照でしか使わない?)と思うので
あまり気にしなくても良いかもしれません。
それ以外はSQL単品で遅いものはないように見えるので、
呼び出す回数を減らすことを考えたほうが良いと思います。
ちなみに、テーブル構造をいじる必要は感じません。
正規化の観点では若干違反していますが
パフォーマンス上は現状のほうが有利と思います。
99:デフォルトの名無しさん
08/06/14 02:40:55
>>95
ロックを回避するにはトランザクションを短くするしか無い気がします。
現状キューにたまった場合1000件ずつ処理されてるのを設定で可変にするとか。
件数減らせば更新のパフォーマンスは落ちますが、ロックが起きて更新されないよりはマシって事で。
>>98
全件sumるんだからindex関係無くないですか?
where句で何か条件が指定されてるんならわかるんですが。
100:98
08/06/14 11:15:35
>>99
テーブル全体を舐めるかインデックス全体を舐めるだけかの違いで
I/O量が変わります。
とはいえ、テーブル全体でもせいぜい数百MBだと思うので
あまり変わらないかもしれません。
101:デフォルトの名無しさん
08/06/14 15:52:42
いまwikiから最新版をDLしようとしたら404なんだけどどういうこと?
102:デフォルトの名無しさん
08/06/14 19:46:17
URLリンク(sourceforge.jp)
103:k-u ◆k.u4xwkrx.
08/06/14 21:24:05
>>98>>100
・where句なしのorder by random()
は確かほとんど呼ばれない仕様になっていたような
他ノードにdatを拡散する場合に使われます
・select sum(disksize) from dat;
これは遅いという報告があり、こちらでも再現します。
2回目以降はキャッシュするのか速くなるようです。
インデックス入れてテストしてみます。
>>96 違う人が答えますが
正直現状のDB再構築の意図がよく分からないです
手元にdatファイルが無く、スレタイ等のデータは持っている場合に、
そのデータが消えないということはあるんですが、そのような事態が起こる条件、消してしまった場合の弊害等未調査。
(dat.dbファイルごと削除して再構築は何回かやっていますが、目立つ不具合はなかったように思います。)
変なデータが登録されていた場合に、それが削除できないという問題もあります。
lastpublishをそのままにしておきたい意図があるとのことですが、これはクリアしてしまってもいいのではないでしょうか
どちらかというと一時変数的な役割だと思うし、スレタイ(title)のように恒久的なものではないので
> ・P2Pを実行しながらDBの再構築ができたりとか
現状のまま同時実行できるようにすると・・・
DBロックエラーが多数出ると思います
またdatファイルの読み書きが衝突した場合にどうなるかが問題
対応はちょっと大変です。
> ・何某かのフラグを格納するフィールドを後から追加したりとか
データベースにカラムを追加するだけならすぐできます
104:デフォルトの名無しさん
08/06/14 21:26:08
>>102
サンクス
105:k-u ◆k.u4xwkrx.
08/06/14 21:36:12
連絡
boostとsqliteがバージョンアップしているので移行予定
boostはなんかビルド時のコマンドラインオプションが変わったのでそのうちドキュメント更新します。
>>101
古いwikiには誘導を入れておいた方がいいでしょうか・・・
新旧wikiでいろいろ食い違ってきたのでsourceforgeに一本化したいとおもっております
106:96
08/06/15 01:07:28
>>103
忙しい中、素人相手にレスいただいて感謝です
抱いていたモヤモヤも払拭されました。
この様な開発メンバーが居ると思うと、なんか嬉しいです。
o2on使い続けて来てよかった
>>105
> 新旧wikiでいろいろ食い違ってきたのでsourceforgeに一本化したいとおもっております
wiki なら多少いじれるので、微力ながらお手伝いさせていただきます。
ただ、うぷろだをSourceforge内に新設して欲しいのですが、規約上これは可能でしょうか?
wiki のうぷろだでは使い勝手が悪いので。。。
暫くは旧サイトのうぷろだにリンクを張ってもよいと思うのですが
なにしろ原作者様が用意したサーバをこのまま使い続けるのも気が引けます。
107:デフォルトの名無しさん
08/06/15 14:16:55
あぷろだ設置お疲れ様です
当方ADSL8Mですが、早速テストうぷしてみました。
今までのあぷろだに上げられたブツとSnUploaderのログです。
このログは何かのためにと、私的にSnUploaderを使ってミラーしていたものです。
うぷテストなので不要であれば削除しますのでその旨レス下さい。
あと、せっかく100MBまでうぷできるように設定していただいたのですが
28MB のファイルをうぷしようとしたら、タイムアウトになってしまいました。
こちらの環境なのか、Apache側のタイムアウト/ファイルサイズ設定が
原因なのか判然としませんが、一応報告まで。
108:デフォルトの名無しさん
08/06/15 14:24:52
o2onってこの板以外のスレはもうないの?
109:デフォルトの名無しさん
08/06/15 14:34:07
>>108
今はこのム板だけのようです
110:デフォルトの名無しさん
08/06/15 14:41:31
この板以外ってダウソにしか立ったことないと思うけど、そっちはもうない。
あ、ν速にも立ったことあったか。
111:デフォルトの名無しさん
08/06/15 14:51:35
いや、もともとここだけだったけど厨房が勝手にダウソに立てた
112:デフォルトの名無しさん
08/06/15 14:58:26
P2Pだからダウソかと思ったんだろうね
113:e ◆CuSO4..R5I
08/06/15 16:31:48
DB 再構築の話なんですけど、今までの話を総合した自分の案です。
・全部空にして一から再構築
→ゴミデータ除去できる
・dat フォルダの走査と再構築を同期して行う(たぶん build 0031 のような感じ)
→インジケータとか、ユーザにわかりやすい
→ひたすら INSERT OR REPLACE する関数をでっち上げる
・再構築中は他の処理による DB アクセス(特に書き込み)を避けたい
→少なくとも、従来の更新用スレッドは止めるとか
という感じで、既存の SQL 関係の関数についてはエラー処理や効率アップに
励むのがいいのかなぁと思います。
114:デフォルトの名無しさん
08/06/15 22:53:43
>109-112
そっかー、ここだけなんだ。
使うだけのオレには敷居が高いな。
115:デフォルトの名無しさん
08/06/15 23:01:18
常時開いたままだからどこの板にあるとかどうでもいいな
俺もバージョンアップの確認の為だけにスレ見てるだけだが
116:デフォルトの名無しさん
08/06/17 17:05:20
ほんとに最近安定してるね
0044bにしたおかげでdatも10万いったよ
117:デフォルトの名無しさん
08/06/17 17:25:18
奇遇だな、ちょうど俺も10万突破したとこw
118:デフォルトの名無しさん
08/06/17 19:32:09
最近入れ始めて、昨日までは普通に動いてたんだがアイコンのOと2のとこが赤くてP2P停止状態になって困ってるんですが
なにが原因かわかります?
あとウイルスと判断されるdatがよくDLされるようにまりました
119:デフォルトの名無しさん
08/06/17 19:49:21
>>118
ディスクいっぱいorクォータ指定量に達してないか?
ウィルスはそう判断されるコードを書き込む奴がいたから
無害なのでログフォルダを検索対象からはずすよろし
120:デフォルトの名無しさん
08/06/17 19:54:18
>>119
達していました…
ありがとうございます。
これdat保存フォルダを別のドライブに移すってことはできませんかね?
今のドライブではこれ以上クォータ容量を増やせないので
121:デフォルトの名無しさん
08/06/17 22:26:34
o2onのフォルダごと別のドライブにうつしちゃえば
122:デフォルトの名無しさん
08/06/17 22:49:21
俺もドライブ移動しよう移動しようで結局してないや。
こまいファイルで20G移すのとかどんだけ時間が掛かるんだろう。
123:デフォルトの名無しさん
08/06/18 02:58:39
移動のこととかアンインストールのこととかマニュアルにあると親切だよね
まだαなんで親切さをアピールしてもしょうがないんだけど
124:デフォルトの名無しさん
08/06/18 12:23:31
FFC使えばいいんじゃないか?
125:デフォルトの名無しさん
08/06/18 12:28:56
全部消して新規でやるのがいいと思うけど
126:デフォルトの名無しさん
08/06/18 14:46:36
>>125
なんでよ。
127:デフォルトの名無しさん
08/06/18 15:15:26
>>120
1) o2onを停止する
2) datフォルダを好きな場所に移動する
3) conf\Profile.xmlをテキストエディタで開いて
CacheRootの「.\dat」の部分を書き換える
(例えばD:\o2on\datに移動したなら「D:\o2on\dat」に書き換える)
4) o2onを起動する
でいけるはず。
128:デフォルトの名無しさん
08/06/18 18:48:20
>>127
ありがとうございます
無事移動できました
話がかわるんですが、クォータ設定してる人はどれ位に設定してますか?
参考にしたいので教えてください
129:デフォルトの名無しさん
08/06/18 19:29:07
今見ているスレッド内にある前スレや関連スレッドなどの
2chのURLを全てo2onに検索登録するスクリプトが欲しいです。
Janeの外部コマンドに登録して、右クリックから使いたいんです。
スレ内の2ちゃんねるのURLを全てo2onに検索登録=WScript "$BASEPATHo2onAdd.vbs" "LOCALDAT"
こういった感じです。vbsでもjsでもおkです。お願いします。
Query.xml に追加で書き込むようにすればいいんですよね。
このハッシュ値はなにから計算されたものなのですか?
Wiki見てきます。すいません。
130:デフォルトの名無しさん
08/06/18 19:32:11
>>129
アプリケーション総合スレッド(,,・_・)ver_1.21
スレリンク(download板:322番),323
131:デフォルトの名無しさん
08/06/18 19:32:57
スレ内の2ちゃんねるのURLを全てo2onに検索登録=WScript "$BASEPATHo2onAdd.vbs" "$LOCALDAT"
だな。失礼致しました。
132:k-u ◆k.u4xwkrx.
08/06/18 20:09:58
>>107
POSTの上限は10MBの予感。直しておきました
>>113
0031から0032に変わる辺りは参考になりますね。
元々ロックエラーが頻発した為、DB更新のスレッドを別にしたようです。
私は再構築時には UPDATE_THREAD_INTERVAL_S を短くして
かつキューにたまりすぎないように適当に制限するというのを考えていました。
(コードあんまりいじらなくてすみそうだからw)
とりあえず実装してみて、テスト版公開して試してもらえばいいと思います。
私の方はテスト版出せるか分かりませんので、適当に進めてくださいな
>>129
ハッシュの算出方法はperlの例が過去ログのどこかにあったような
Query.xmlに追加する方法では、o2on起動中には効果がないはずなので
不便だと思います。
管理画面のスレッド検索と同様にPOSTすれば登録できると思います。
ハッシュの計算も不要です。
POST先 /xml/query
クエリ
act=add
hash="" (空文字列)
note=[任意] (UTF-8かな Jane とか入れとけばいいかと)
url=[スレのURL]
1件ずつしか処理できないので1回ずつPOSTしてください。
あまり高速に連続してPOSTするとo2onがなにかおかしくなるかもしれないので注意してください。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5368日前に更新/210 KB
担当:undef