UNIX DBMはこちら(GNU gdbm, Berkeley DB etc...)
: 名無しさん@お腹いっぱい。 [sage] 03/07/01 10:36ID:??? リレーショナルじゃなくてもSQLでなくてもデータベース。 C/C++, perl, python, tcl/tk, java etc言語バインディングも 豊富だしお前ら、もっと活用してみませんか? Berkeley DB ttp://http://www.sleepycat.com/ GNU dbm ttp://http://www.gnu.org/software/gdbm/gdbm.html : 名無しさん@お腹いっぱい。 [] 03/07/01 11:45:U3ZaBIM2 2getすらされていませんよ? : 停止しました。。。:停止 [sage] 03/07/01 11:59ID:??? 真・スレッドストッパー。。。( ̄ー ̄)ニヤリッ : 名無しさん@お腹いっぱい。 [sage] 03/07/01 12:35ID:??? 手軽そうだからちょっと興味あり。 : 名無しさん@お腹いっぱい。 [sage] 03/07/02 00:12ID:??? 追加。better GDBM な DBM QDBM ttp://http://qdbm.sourceforge.net/ : 名無しさん@お腹いっぱい。 [sage] 03/07/02 00:26ID:??? 関連スレ ”最強のDB”Perl xDBMについて語れ! ttp://pc2.2ch.net/test/read.cgi/db/1056996886/ : 名無しさん@お腹いっぱい。 [sage] 03/07/02 00:28ID:??? ちなみに漏れは Ruby 製の簡易掲示板で使ってる。 OS によってファイル構成が異なるのが嫌かな。 : 名無しさん@お腹いっぱい。 [sage] 03/07/03 01:53ID:??? /etc/pwd.dbとかちっちゃいやつではお馴染みだけど、 subversion ttp://http://subversion.tigris.org とかかなりDBサイズが巨大なもんでもBerkeley DB使われてるね。 Berkeley DB XMLとか面白そうだけどまだ使ったこと無いや。 ttp://http://www.sleepycat.com/products/xml.shtml GettingStart斜め読みした限りでは問い合わせ言語に XPath(name space support)が使えるからかなり良さげ。 そういや誰かXPathの擦れも建てて欲しいと思ったり、スレ建てインポなんで。 : 名無しさん@お腹いっぱい。 [sage] 03/07/04 14:22ID:??? Cでプログラムは組めるが,データベースというとチンプンカンプンなので このスレで勉強したいsage : 名無しさん@お腹いっぱい。 [sage] 03/07/04 17:45ID:??? Berkeley DBは問い合わせ(クエリ)のインタフェースに SQLインタプリタみたいな複雑なものは使わないので、 C書ければすぐ使えまつよ。 *BSDなんかのlibc組込のBerkeley DBだと openしてput/get/delしてcloseくらいのホント質素なもん、 Javaご存知ならimplements java.util.Map, java.io.Serializableって いえばピンと来ると思いまつ ドキュメントもよく整備されてるので是非一読を ttp://http://www.sleepycat.com/docs/index.html : 名無しさん@お腹いっぱい。 [] 03/07/06 06:09:+9jOpiMC 質問なんですが、 perlでGDBMに受け渡したデータをJavaから呼び出すことは可能ですか? 初歩的な質問ですみません。 : 名無しさん@お腹いっぱい。 [sage] 03/07/06 06:50ID:??? 何言ってる不明 もっと具体的に書かないと答えられるものも答えられん。 : 11 [] 03/07/06 12:06:+9jOpiMC perlで野菜の値段データベースを以下のように作りました。 tie %yasai, 'GDBM_File', "yasaiDB", &GDBM_WRCREAT, 0640; $yasai{tomato}=100; $yasai{renkon}=50; untie; これで、ファイル名が"yasaiDB"と書かれたデータベースができました。 私が疑問に思ったのは作成されたこのデータベースはJavaのなかでも 呼び出せるのかというところです。 文字コードの問題などがありそうですが、不明なため質問いたしました。 よろしくお願いします。 : あぼーん [あぼーん] NGNG あぼーん : あぼーん [あぼーん] NGNG あぼーん : 名無しさん@お腹いっぱい。 [sage] 03/07/06 23:26ID:??? 漏れは馬DB使ってるのでGDBMはよく知らないんだけど、 言語バインディングごとにDBファイルの互換性が無いなんてこたーないでつ。 #エンディアンは問題になるかも、i368しか持ってないので試せない。 文字コードについては、 ttp://http://aurora.rg.iupui.edu/~schadow/dbm-java/pip/gdbm/ 使ってまつか? Perl側の文字コードがEUC-JPだったりする場合は、RawPacking使って読み書きして InputStreamReader/OutputStreamWriterで変換すればいいみたいでつ。 : 名無しさん@お腹いっぱい。 [sage] 03/07/07 00:05ID:??? 俺も同じく馬DB。 馬DBだとデータもキーもバイト列として保存するだけなんでエンディアンの影響はあります。 ntohl()とか使って変換しとけばOK。GDBMも同じじゃないかな。 : 名無しさん@お腹いっぱい。 [] 03/07/07 03:26:0iBa7jUE db3っておれだけか?いや誰か居るはずだ。 : 名無しさん@お腹いっぱい。 [sage] 03/07/07 04:00ID:??? db3って何? ググってみたけどBerkeley DB version 3 (= db3)が大量に引っかかって探せない。 : 名無しさん@お腹いっぱい。 [sage] 03/07/07 04:08ID:??? それ。でも何故かbdbと言えば皆bdb2なんだよ。 WebSphereでも*BSDでもbdbと言えばbdb2なんだよ。 3使ってる奴いないんだよ。 何故だ? : 19 [sage] 03/07/07 04:18ID:??? 既に4系があるからでは。ウチでは4.1.25使ってる。 どちらかと言うと1.85の方が使われてない? : 名無しさん@お腹いっぱい。 [sage] 03/07/07 04:29ID:??? うむ。3は存在を認識されずに終わったバージョンのようだ。残念。 : 名無しさん@お腹いっぱい。 [sage] 03/07/07 04:45ID:??? QDBMかなり速いみたいよ。 : not 大岡山 [sage] 03/07/07 05:58ID:??? 一応仲間に入れとくか cdn (qmail MTAの作者djbによるdbm replacement) ttp://http://cr.yp.to/cdb.html 訳は ttp://http://tools.qmail.jp/ あたりにたぶん転がってる : not 大岡山 [sage] 03/07/07 05:59ID:??? s/cdn/cdb/ でつた : not 大岡山 [sage] 03/07/07 06:02ID:??? ベンチ将軍誰かヨロ : 名無しさん@お腹いっぱい。 [sage] 03/07/07 06:56ID:??? ライセンスの問題じゃない? : 名無しさん@お腹いっぱい。 [sage] 03/07/07 08:45ID:??? これとか。 ttp://http://qdbm.sourceforge.net/benchmark.pdf : 名無しさん@お腹いっぱい。 [sage] 03/07/07 13:05ID:??? 確かに早いな、>qdbm ただ、トランザクションとRECNOインタフェースが無いね。 あんま必要性を感じたこたないが。 あんど馬DBも同様なんだが、java バインディングは implements java.util.Mapしてホスイと思うのは漏れだけ? : 19 [sage] 03/07/07 13:06ID:??? だね。1.86(出てるの知らなかった)まではBSDライセンス。 2.x以降はQtに似たデュアルライセンスでした。 : 名無しさん@お腹いっぱい。 [sage] 03/07/07 13:08ID:??? 馬は4.2系でJavaのcollection APIをサポートとか書いてあったよ。 Java詳しくないから違うものかもしれんけど。 : 名無しさん@お腹いっぱい。 [sage] 03/07/08 00:16ID:??? Berkeley DB 4.2.XX Change Log ttp://www.sleepycat.com/update/4.2.XX/if.4.2.XX.html The new Java DBX API for Berkeley DB allows Java programmers to use a familiar Java Collections style API, including Map, while interacting with the transactional Berkeley DB core engine. [#6260] : 名無しさん@お腹いっぱい。 [sage] 03/07/08 08:55ID:??? 移植性はどうなのだ? : 名無しさん@お腹いっぱい。 [sage] 03/07/08 12:31ID:??? どれの? : 名無しさん@お腹いっぱい。 [] 03/07/09 19:42:9zWC4YIG あなたたちが求めるDBMの機能ってなんなの? ・処理が速い ・データベースファイルのサイズが小さい ってのはもちろんだよね。他に、アクセスメソッドの豊富で(ハッシュ、B木、キューなど)、 トランザクションとかあると嬉しい人もいるのかな。他にもREDOログによる復旧もできると 嬉しいかもね。 一方で、高度な機能は求めてなくて、シンプルで移植性(代替)があって高速なのがDBMの よいところでもあるよね。 : 名無しさん@お腹いっぱい。 [sage] 03/07/09 21:28ID:??? 初心者質問で悪いんだけど 馬DBって何ですか? Berkeley DBのこと? horse DB とかでググッたけど、何か競走馬のデータベースとか 引っ掛かって??です。 : 17 [sage] 03/07/10 01:42ID:??? 馬DBはBerkeley DBです。たぶん。 このスレ辺りが初出と思われ。 わかりにくくてスマソ : 名無しさん@お腹いっぱい。 [sage] 03/07/10 08:36ID:??? Linux = リヌクス...いぬくそ...犬糞 BSD = バークレーソフトウェアディストリビューション...ばくそ...馬糞 同じBerkeley繋がりってことで馬DB : 名無しさん@お腹いっぱい。 [sage] 03/07/10 08:45ID:??? 今日はためになった。 : 名無しさん@お腹いっぱい。 [sage] 03/07/10 11:52ID:??? ぃぬx : 36 [] 03/07/10 21:05:OZ1qJzcP 馬DB = Berkeley DB ってことね。了解。 それでは、馬DBユーザに質問 今、私は 馬DB4.0.14 を Java から使ってます。 (Solaris2.6, JDKはJ2SDK1.4.1) 馬DBのRPCの機能を使って、C/S環境でプログラム作っている。 com.sleepycat.db.DbException: DB_NOSERVER_ID: Identifier unrecognized at server: DB_NOSERVER_ID: Identifier unrecognized at server というエラーが出てしまいます。このエラーはクライアントのJava VM でスレッ ドを3つ作って,3つのスレッドでそれぞれ new DbEnv() してると 多発するみたい。しかしエラーが出ないときもあるのがまた困りもの. もしかして,DbEnvオブジェクトってマルチスレッドで使えない? このへんの所,詳しいやつ,おれに教えれ! いや,教えてください.おながいします m(..)m ペコペコ : 名無しさん@お腹いっぱい。 [sage] 03/07/11 03:36ID:??? お、RPC使ってるのか。人柱よろ。とりあえず、 ・馬DB 4.1.25にアップグレード ・ビルド時のconfigure引数晒す とか。 ところで、DbEnvって1プロセスに複数作れたっけ? : 36 [] 03/07/11 20:45:u2EvQPDC 先に謝る.長文メンゴ.長文過ぎて怒られたので2つに分けてる || ・馬DB 4.1.25にアップグレード 最初は,4.1.25 + patch.4.1.25.1 ってのを使っていたんだけど,4.1.25だと Java + RPC の環境で使えないようなので 4.0.14 に戻したんだ. そう思った理由は以下を見てチョ. * DbEnv.open()の flag 引数の説明ところから抜粋 Db.DB_THREAD Threading is always assumed in the Java API, so no special flags are required and Berkeley DB functions will always behave as if the Db.DB_THREAD flag was specified. つまり,Java API から使うと Db.DB_THREAD フラグが必ずセットされる. ( ttp://http://www.sleepycat.com/docs/api_java/env_open.html#Db.DB_THREAD) * RPCプログラミングのイントロから抜粋 The DB_THREAD flag to the DB_ENV->open and DB->open methods may not be specified, that is, DB_ENV and DB handles used in RPC clients are not free-threaded. ( ttp://http://www.sleepycat.com/docs/api_c/env_open.html#DB_THREAD) つまり,RPC環境でDB_THREADがセットされるとダメ(英文解釈間違ってるかも) もしかして,4.1.25 でわざわざ使えなくなってるってーことは,4.0.14で Java+RPCの組合せには,バグありってことなのかな. : 36 [] 03/07/11 20:46:u2EvQPDC その2 || ・ビルド時のconfigure引数晒す config.log によれば, $ ../dist/configure --prefix=/usr/local/db4 --enable-java --enable-rpc です.ちなみに馬DBのコンパイルに使ったCコンパイラは % cc -V cc: Sun WorkShop 6 update 2 C 5.3 2001/05/15 だった. || ところで、DbEnvって1プロセスに複数作れたっけ? そう,ここが臭ーいのだ.4.0.14のソース(DbEnv.java)の中にこんなのがある んだけど... public class DbEnv { .... public static class RepProcessMessage { public int envid; } .... } これって, 1プロセスで複数のDbEnvオブジェクトを作ったら envid は共有さ れているの? static class つーのが解りません. #ただの Java の質問になってまった : 名無しさん@お腹いっぱい。 [sage] 03/07/12 03:27ID:??? を読んだだけでソース読まずにカキコ。 envidはRepProcessMessageのインスタンス毎に値を持っている。 DbEnvは無関係。 public class A { public static class B { private int value; } } と public class A { } public class B { private int value; } はほとんど同義だよ。 違いは 1.インスタンスの生成は A.B b = new A.B(); と書く 2. 前者はclass AはB.valueにアクセス可能、後者は当然無理 ってとこかな。 : 名無しさん@お腹いっぱい。 [] 03/07/12 20:15:dnxUtIhJ CygwinでBerkeleyDB使える? : 名無しさん@お腹いっぱい。 [sage] 03/07/12 20:27ID:??? つーかQDBMだろ。日本製だし。 : あぼーん [あぼーん] NGNG あぼーん : 名無しさん@お腹いっぱい。 [sage] 03/07/12 21:52ID:??? 使える : あぼーん [あぼーん] NGNG あぼーん : あぼーん [あぼーん] NGNG あぼーん : 名無しさん@お腹いっぱい。 [] 03/07/13 14:04:zd7coiS0 GDBMについて詳しく説明してくれ。 RDBなの? 特徴は? どんな時に使ったりしてる? : 名無しさん@お腹いっぱい。 [] 03/07/14 02:49:JS73bRQi キーと値のペアからなるレコードをファイルに保存したり、そうやって作った ファイルからレコードを取り出すことができるようになります。機能はそれだけ。 RDBとはあんまし関係ないです。しいていえば、RDBのインデックスに使うハッシュ とおんなじようなことをしているツールです。 利用法はいろいろありますが、わざわざRDBを使うまでもないようなことに使います。 例えばWebの掲示板とか、アクセスログの記録とか、ユーザアカウントの管理なんかですね。 : 名無しさん@お腹いっぱい。 [sage] 03/07/14 03:23ID:??? バカが「低水準関数でのファイル操作が一番速い」とロクな知識もなく 無茶苦茶なファイル操作して大幅な速度低下を起こすのを防ぐのに使います。 いや、使わせます。 : 名無しさん@お腹いっぱい。 [] 03/07/22 21:17:82vtyiOg BerkeleyDBの、set_pagesize、set_cachesize、set_h_ffactor、set_h_nelem、set_cachesize とかのチューニングのツボがイマイチよくわからん。強者の解説求ム。 : 名無しさん@お腹いっぱい。 [sage] 03/07/23 01:57ID:???  ̄ ̄ ̄\:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\ / l:::::::::::::::::::::::::;;:::ヘ::rv'レ'、::::::::::::::::::ゝ / |::::::;::vrヘl/''"`"_,, ノ 、;;、 ''ヽ;:::::::::::! | 頼 \'' " _,,..-=、''_ >',=-、 ' i:::::::;! ヽ も し. は ア | / ,rニ・L | { ':ニ・i,. |:::::l / て ゲ / 'i ,''≡' | i`== i i;/l > も く 勘 る む /,i | ! r┤ i、 J ,:、!,! |. う れ 弁 の ヽ,! ‐=、;、 | l , , ,`',,`''´,', 〃 |i ヽ ・ r‐-`;- 'ヾ;;''、 ,' , ',,;===; ' ,i/ l ‐=、--' ・ |ヽ__,i , i! , /r──-l! i! /;、_ ``i ・ ___/'´ i ', ' , ' , | ''" ̄ ̄ ̄ !./ i;;;;;``''-、 ``i ;;;;;;;;;;;;;;/ i `''-、, ', , ; , ' , ', ', ' ,', ' ,/' |;;;;;;;;;;;;;;;;;;`''-i ;;;;;;;;;;;;/ i ,' , .`''ー- ' ,. ‐'"/ |;;;;;;;;;;;;;;;;;;;;;;;;;゙ー、 : あぼーん [あぼーん] NGNG あぼーん : 名無しさん@お腹いっぱい。 [] 03/07/26 05:28:E/jU4S1T QDBMのGDBM互換APIがいいぞ。完全なソースコード互換で、速度は5倍以上出るんじゃないかな。 : 名無しさん@お腹いっぱい。 [] 03/07/26 05:46:5DqcDSlZ 祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り ニーノさんのホームページ作り2 ttp://ex.5ch.net/test/read.cgi/entrance/1059029010/ "> ttp://ex.2ch.net/test/read.cgi/entrance/1059029010/ ニーノ ◆p9GipySMGk によってラウンジにたてられたこのスレで、 ttp://http://page.freett.com/ninogumi/ 【ニーノさんのホームページ】 というサイトが作られた。(現在もコンテンツは爆発的に増えてるよ。) さぁ、君もアイディアを出して、2CHネラーだけの最強サイトをつくろう! 祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り : ぼるじょあ ◆ySd1dMH5Gk [(^^)] 03/08/02 04:58ID:??? ∧_∧ ∧_∧ ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。 =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕 = ◎――――――◎ 山崎渉&ぼるじょあ : 山崎 渉 [(^^)] 03/08/15 23:04ID:??? (⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン : 名無しさん@お腹いっぱい。 [sage] 03/08/23 12:32ID:??? Webの掲示板でdbmを使うときってキーは何にするの?記事の番号を文字列で"1", "2", "3"とかするの? : 名無しさん@お腹いっぱい。 [] 03/08/24 16:41:6jUjlvB1 単純な掲示版ならそれでいいと思う。 で、"max"みたいな特別なキーに記事番号の最大値をいれておけば、新着順に表示できるはず。 2chのようにフローティング機能を持たせたいのなら、各記事を双方向リンクリストでつないでおいて、 記事を上げる場合はそのつなぎかえをしなきゃならんが。 : 名無しさん@お腹いっぱい。 [sage] 03/09/12 05:48ID:??? Constant Database (cdb) Internals ttp://http://www.unixuser.org/~euske/doc/cdbinternals/index.html : 名無しさん@お腹いっぱい。 [] 03/09/22 01:58:wHXY83fg CDBって何が優れてるの? 単なるハッシュDBだったらSambaのTDBが最速だと思うんだけど、djb氏はなぜ今さら yet anotherなものを作る必要があったのだろう。 : 名無しさん@お腹いっぱい。 [sage] 03/09/23 08:26ID:??? >DBMファイル直接ダウンロードできてしまうサーバも多いのは、気にしないの? >ついでに、DBMファイルとの接続は、普通のテキストファイルに比べて、3倍〜10倍の時間がかかるのも気にしないの? >おまけに、1件(テキストファイルなら行)あたりの読込み速度が数倍かかるのも気にしないの? ってみたんだけど、テキストやRDBMSほうがいいの? : 名無しさん@お腹いっぱい。 [sage] 03/09/23 21:58ID:??? >DBMファイル直接ダウンロードできてしまうサーバも多いのは、気にしないの? 鯖の設定を知らんアフォですな、テキストならダウンロードできないとでも思ってるのか? >ついでに、DBMファイルとの接続は、普通のテキストファイルに比べて、3倍〜10倍の時間がかかるのも気にしないの? >おまけに、1件(テキストファイルなら行)あたりの読込み速度が数倍かかるのも気にしないの? に尿意 RECNOみたいに行番号だけで済む探索ならプレーンテキストと優位な差は出んが ランダムアクセスならハッシュのDBMの方が明らかに速いのが判らん痛い人なのだろう。 : >>66 [sage] 03/09/23 22:08ID:??? 数万個のレコードがある場合、ファイルを開く時間に較べれば検索にかかる時間がとても大きくなります。 単なるテキストファイルだと数万回の読みだしとデータ比較を行うことになりますが、DBMを使えばそれが たった数回で済むのです。というわけで、検索キーのあるレコードを保存するにはテキストよりDBMが有利です。 DBMとRDBMSの使い分けに関してですが、検索キーやレコードの構造が複雑な場合はRDBMS、キーとそれに対応 する値がひとつづつといった単純な構造の場合はDBMを使うとよいでしょう。ただし多くのDBMはキーの完全一致 検索しかサポートしていないので注意しましょう。 : 名無しさん@お腹いっぱい。 [sage] 03/09/23 22:20ID:??? > yet anotherなものを作る必要があったのだろう。 元々はqmailとかdjb toolの設定ファイルキャッシュ用に作ったのだとオモタ。 動機はセキュア(=俺が書いたコードでないと安心できない)ってところか? : 名無しさん@お腹いっぱい。 [sage] 03/09/24 15:48ID:??? 勉強になりました。csvやMySQLは使ったことあるんだけど、dbmはなかったので これから少し使ってみようと思います。 : 名無しさん@お腹いっぱい。 [sage] 03/09/24 16:14ID:??? つまりqmailとか以外の用途はなさそうってことか。 : 名無しさん@お腹いっぱい。 [sage] 03/09/26 19:00ID:??? 他にcdb使っているアプリってvpopmailだとかqmail臭いものばっかりだからなぁ。 djb信者じゃなければ、ふつ〜にBerkleyDBやgdbm使ったほうがいいよ。特にBerkleyDB は3以降で機能の大拡張がなされて、トランザクションまで使えるし。 : 名無しさん@お腹いっぱい。 [sage] 03/09/29 00:12ID:??? 2つ質問があります。 dbmは連想配列をファイルに保存とイメージしているのだけれども、 検索キーが複数あるような場合はやっぱし使えないですか。キーを適当なセパレータでつないだり するのは別として。 掲示板のデータをdbmに収めたとして、たとえば"dbm"で全文検索して一致した書き込みを表示とかってできますか? : 名無しさん@お腹いっぱい。 [sage] 03/09/30 00:48ID:??? 質問1の回答:キーが複数ある場合は、複数のDBMを使うしかない。 DBM-1は、列1をキー、オブジェクトのIDを値にする。 DBM-2は、列2をキー、オブジェクトのIDを値にする。 ... DBM-nは、列nをキー、オブジェクトのIDを値にする。 で、 DBM-Vは、オブジェクトIDをキーにし、オブジェクトの中身を値にする。 そして、キーに応じて適切なDBM[1..n]を引いてオブジェクトIDを取得してから、DBM-Vを引いて オブジェクトを取り出せばよい。つまり、リレーショナルDBが暗黙的にやっているようなことを自分 で実装しなければならない。面倒だけど性能は期待できる。 質問2の回答:DBMで全文検索をするのは、そのままでは難しい。 全文検索ってのは、内容にあるパターンを含むレコードの一覧を得る処理なわけだが、DBMはキー の完全一致しかサポートしていない(Btreeは前方一致が可能だが)。 DBMで無理矢理全文検索を実現するなら、テキストに含まれる語句を切り出して、切り出したパタ ーンをキーとし、それを含むオブジェクトのIDの配列を値にすることになるだろうな。 "dbm" : [1,3,9,54,98] "ndbm" : [1,8,53] "sdbm" : [2,3,9,23] みたいな構造にするのかな。パターンをどうやって切り出すかを考えるには、自然言語処理 についてちょっと勉強しないといけないだろう。 : 名無しさん@お腹いっぱい。 [sage] 03/10/01 00:11ID:??? ありがとうございます!! 大変参考になりました。 : NAME IS NULL [] 03/10/30 20:44:HIhyk/qY ちょっと使ってみたら、速度は CDB >>>>> QDBM > TDB >> GDBM だね。 CDBが圧倒的に速いし、ファイルも小さい。 でも更新と検索が同時にできないのはちょっと使いづらいかな。 : NAME IS NULL [age] 03/10/31 12:53ID:??? NDBMだけはガチ : NAME IS NULL [] 03/12/03 15:34
:/crs/ZXG BerkleyDBでは、レコードを削除しても、ファイルサイズが減らない(領域は再利用される)のですが、 元のファイルから古いデータを消して、新しいファイルにダンプするしかダイエットの方法はないですよね? そのデータ移行中に更新がかかると取りこぼすような気がするので、何か良い回避方法はないですかね? : NAME IS NULL [sage] 03/12/05 12:46ID:??? データ移行中には更新をブロックするしかないんじゃないかな。 : NAME IS NULL [sage] 03/12/31 21:15ID:??? ちとすれ違いだが。 apache_2.0.48のapr-utilのbuildが馬DB4.2.xだとコケるんだけど ↓のマクロをみて禿しく萎えた。 ttp://cvs.apache.org/viewcvs.cgi/apr-util/build/dbm.m4 ttp://cvs.apache.org/viewcvs.cgi/apr-util/build/dbm.m4?r1=1.5&r2=1.6 GNU autotoolってほんとにバッドノウハウの塊だね。 : NAME IS NULL [] 04/01/20 17:50:UcaoSa+e Berkeley DBなんですが、解凍したファイルを作成しておいた /db ディレクトリへFTPして、それからTelnetでbuild_unixまで行って、 そこから../dist/configure と打ったら、こういうエラーが出ました。 bash: ../dist/configure: Permission denied /db/ の属性は777と変更してから行ないました。 なにが問題なのでしょうか・・可能性を教えてください。 : NAME IS NULL [sage] 04/01/20 23:30ID:??? それって、bashが「configureが許可がなくて実行できない」って言ってるんじゃない?dist/configureのファイル属性調べてみて。 : NAME IS NULL [] 04/01/21 00:24:vfEXJDFI てか、cd ../dist してから ./configureしなきゃ : NAME IS NULL [] 04/01/23 01:33:OV9Mrwi6 ↑ レ、レベルひくぅー : NAME IS NULL [sage] 04/01/26 23:04ID:??? 人のこと馬鹿にする奴は地獄に落ちるぞ。 : NAME IS NULL [sage] 04/01/28 15:40ID:??? は昨日鳥インフルエンザでお亡くなりになりますた。 : NAME IS NULL [sage] 04/01/30 11:06ID:??? web上の辞書引きページを作ろうと思ってるんですが、 単語数は、1000から2000で、各単語は発音、品詞、訳語、 例文など6〜7フィールドです。 頻繁にアクセスがあるとすると、どのDBMに格納するのが 吉でしょうか。ポスグレとかの方がいいのでしょうか。 : NAME IS NULL [] 04/01/30 11:16:NJwR2Fzf 続きです それともこのくらいならテキストファイルの方が早いですか。 : NAME IS NULL [sage] 04/02/01 00:36ID:??? その程度のサイズならば、ファイル全体がOSのI/Oキャッシュに乗るだろうから、 テキストファイルで問題ないと思います。 速度を追求するならBerkeley DB使った方がいいかな。QDBMもいいかも。 : NAME IS NULL [sage] 04/02/01 08:24ID:??? ありがとうございます。 QDBMって速いっていうレスあったので、テキストと 両方試してみます。 : NAME IS NULL [sage] 04/02/06 08:24ID:??? ndbmが最も速いのでは : NAME IS NULL [sage] 04/02/07 23:03ID:??? QDBM:パフォーマンスはオリジナルのNDBMの数倍は出ます。 ttp://qdbm.sourceforge.net/tutorial-ja.html : NAME IS NULL [sage] 04/02/28 08:20ID:??? Berkeley DBにあるRECNOってドンなの? HASHとかBTREEならちょっとはわかるんだが。 実際どういう風に使うもんなんだろ... : NAME IS NULL [sage] 04/03/04 01:36ID:??? 俺も使ったことないけど、ぱっと見で、プライオリティキューの永続化に役立つんじゃないかな。 : NAME IS NULL [] 04/03/20 23:47:5TfEphvL Berkeley DB って商用で使うとソース公開しないと有料なの? : NAME IS NULL [sage] 04/03/21 20:47ID:??? SDBMよりGDBMのが速いとか風の噂で聞いたので試してみたら 体感で明らかに遅くなってしまって頭かかえてたんだけど ttp://qdbm.sourceforge.net/benchmark.pdf ここの見るとGDBMって書き込みが激しく遅いのね しかしこのベンチのSDBMのReadが0って・・・ : NAME IS NULL [sage] 04/03/21 20:49ID:??? あ、qdbmってVCじゃビルド出来ないのね・・・ : NAME IS NULL [ ] 04/03/22 09:39ID:??? PERLの掲示板スクリプトとかに使ってもOKですかね? MovableTypeでBerkeley DB使えるのを見て思ったのですが。 スレッドとか検索とか付いてくると、色々ごちゃごちゃ してくるし。 : NAME IS NULL [sage] 04/03/23 20:09ID:??? VCでビルドできたよ。 ところで、ベンチマークに「SDBMは100万レコードで壊れた」ってあるけどマジかなぁ。 : NAME IS NULL [sage] 04/03/24 12:19ID:??? cdb の場合 * データベースの作成はとても速い! * データベースのサイズも小さい! * データベースの参照もとても速い! * データベースの更新は、全データが必要(実質、再作成と同じなので、速度も再作成と同じ) cdb 以外のgdbm,qdbmなどの場合 * データベースの作成の速度は普通(ものによるが、cdbほど速くはない) * データベースのサイズもものによる(cdbよりは大きい) * データベースの参照もものによる(cdbほど速くはない) * データベースの更新は、他のデータは不要で、cdbより速い! で、理解あってる?
凡例:
レス番
100 (赤) → 2つ以上レスが付いている
100 (紫) → 1つ以上レスが付いている
名前
名無しさん (青) → sage のレス
名無しさん (緑) → age のレス
ID
ID:xxxxxxx (赤) → 発言が3つ以上のID
ID:xxxxxxx (青) → 発言が2つ以上のID
このページは2ch勢いランキング が作成したキャッシュです。元のページはこちら 。削除についてはこちら 。