X



UNIX DBMはこちら(GNU gdbm, Berkeley DB etc...)
0108NAME IS NULL
垢版 |
04/06/29 17:11ID:ZCOlO+nL
マルチスレッドなプログラムでndbmを使用しようとしたんですが、
やはっりというかMT-unsafeなんですよね。
バークレーDBや、qdbm,cdbmはMT-safeなのか、ご存知の方教えて
頂けませんでしょうか
因みにOSはsolaris8で、プログラムの中では検索しかしません。
(検索だけなのでndbmでもいけそうな気もするのですが、、、)
0111NAME IS NULL
垢版 |
04/07/28 09:17ID:WggAfKYD
dbm_fetchを呼ぶと、以前呼んだ時の戻り値のdatum.dptrが指す先が書き換えられるんだね。
これのせいで昨日からずっと悩む羽目にあった。
0112NAME IS NULL
垢版 |
04/07/28 11:14ID:zDkc3K16
>>111
それってえろう怖いんじゃねえか
0113NAME IS NULL
垢版 |
04/07/29 05:49ID:???
つーか今さらNDBM使うなよ。
0114NAME IS NULL
垢版 |
04/08/08 20:40ID:g7uZ+RUn
berkeley db java editionってどう?
0115NAME IS NULL
垢版 |
04/08/10 00:29ID:???
すいません、純粋にjavaだけで動かすことができるDBMっていうのは
あるのでしょうか?
0117115
垢版 |
04/08/10 17:01ID:???
Berkeley DB はJava editonがあるのがわかりました。
ちなみに、話題のqdbmっていうのは、java向けのAPIがあるだけで、
javaだけでは動かないのでしょうか?
0118NAME IS NULL
垢版 |
04/08/10 17:11ID:???
最近話題になったとこだと
ttp://slashdot.jp/article.pl?sid=04/08/04/0843246
あたりか?
0119NAME IS NULL
垢版 |
04/08/11 22:28ID:???
Berkeley DB のライセンスって、なんかBSDライセンスとかじゃ
無いみたいんだけど、日本語でライセンスの書いてある説明
とかってないでしょうか?
0120NAME IS NULL
垢版 |
04/08/12 22:21ID:???
口調を統一しない人には教えません。
0121NAME IS NULL
垢版 |
04/08/13 16:43ID:K37O/N7H
Berkeley DBの使い方が分かるWeb上のドキュメントがあればURLを教えてください。
db_loadというユーティリティでデータベースファイルを作成することはできたのですが、
いらなくなったkey=dataペア(レコード)を削除する方法が分かりません。
そのつど.dbファイルを作り直さなければいけないのでしょうか。
0122NAME IS NULL
垢版 |
04/08/15 21:45ID:???
高林さんの馬DBネタとか。
ttp://namazu.org/~satoru/diary/200406.html
ttp://namazu.org/~satoru/diary/200407.html

>>123はNent Yaku
0123NAME IS NULL
垢版 |
04/08/15 22:13ID:5WUYRlds
>>121
C言語なら
int DB->remove(DB *db, const char *file, const char *database, u_int32_t flags);
という関数がある。C++でもJavaでも同様のメソッドがある。
0125NAME IS NULL
垢版 |
04/08/16 14:47ID:???
>>122-123
レスありがとうございます。121です。
付属のユーティリティをつかって簡単に削除できるのだろうとおもっていたのですが
そういう使い方をするモノではないんですね。ちょっと勘違いしておりました。
0126NAME IS NULL
垢版 |
04/08/30 16:09ID:???
qdbmっていいの?そんなにいいの?
使うよ?いいの?
0128NAME IS NULL
垢版 |
04/09/27 17:52:34ID:SSEQCMVj
勃起age
0129NAME IS NULL
垢版 |
04/09/27 23:42:50ID:???
cygwin + ruby1.8 + BerkeleyDBでうまくいってる人いる?
0130129
垢版 |
04/09/28 00:09:24ID:???
おいおい、会社でだめぽだったのに家では余裕でできた。
会社のはbdbがdevel版がインストールされてなかったのかな。
0131NAME IS NULL
垢版 |
04/10/20 21:58:02ID:???
perlでNDBMを使ってたんですけど1日で10倍以上にサイズが肥大化したので
Berkeley DBに変更しました。すると肥大化はしなくなったものの負荷が数倍かかるようになりました。
GDBMなんかは肥大化するわ壊れるわで最悪でした。
perlのバージョンを変えてもapacheのバージョンを変えても解決せず。
アクセスが多すぎると駄目なのでしょうか。
0133NAME IS NULL
垢版 |
04/10/21 12:37:01ID:???
>>131
ちゃんとファイルロックしてないだろ。壊れるのあたりまえ。
NDBMにしろGDBMにしろ最初はファイルサイズ大きくなる。
が、後からはデータを追加してもその分しか大きくならない。
0134131
垢版 |
04/10/21 18:43:26ID:???
flockでファイルロックは行っています。
壊れるというのは、ファイルが飛んでサイズが減るわけではなく
サイズはそのままで全てのデータが読み込み出来なくなります。
ぷららのサーバで同じように試してみるとどんどんファイルサイズに差が出てきます。
直ぐに200KBと5MBくらいに差がでました。
1度テキストに変換して全て書き直すとサイズは200KBまで落ちたので異常に肥大化されているような気がします。

QDBMはインストールはしましたが書き込めても読み込めなく、原因が分からなかったので諦めました。
0135NAME IS NULL
垢版 |
04/10/23 15:42:49ID:???
許容できないなら仕方ないが、サイズの肥大化は
索引や効率を考えて前もって領域を確保してる分だから、
動作としてはおかしくない。

あと実装によってはdbm側でロックの機構があるから、
それを使う方が望ましいかもしれない。
0136NAME IS NULL
垢版 |
04/10/27 04:38:31ID:Yk8mNdzM
>>131
GDBMが壊れるあたり、DBとの接続をちゃんと切ってないことない?
CGIとかでも、プロセスが死ぬ前に確実に接続を切る(ハンドルを閉じる)
ようにしないとファイルがおかしくなるよ。
0138NAME IS NULL
垢版 |
05/01/15 00:58:37ID:vXqd6/Xv
SymbianOSに入るようなメモリ空間100KB以下の
DBご存知ないですか?C言語でお願いしまっする。
0139NAME IS NULL
垢版 |
05/01/15 03:52:49ID:???
>138

そんなん(メモリ空間100KB以下)だったらDBいらねーんでは?
0141NAME IS NULL
垢版 |
05/01/17 23:44:17ID:FLVEOjow
solidはどう?商用だけど。
ノキアやOpenViewで使ってるって。
0142NAME IS NULL
垢版 |
05/01/20 15:57:28ID:???
超遅レス
>>134
bdb使っているのにflockでロックってなんの冗談なんだろう?
ttp://pybsddb.sourceforge.net/ref/lock/stdmode.html
0143NAME IS NULL
垢版 |
05/01/25 04:15:25ID:fFuVLIUL
糞なOSでも使えるDBじゃねえの。組み込みとか。
0144NAME IS NULL
垢版 |
05/01/25 20:33:08ID:???
ヲイヲイ。おめーは携帯電話をつかってねーのか。
0145NAME IS NULL
垢版 |
05/02/18 03:15:52ID:9UHJegbs
BerkeleyDBよく見たらすごいな。
トランザクション使えるし、レプリケーションできるし、
オンラインバックアップできるし、2phase commitできるし。
ただ、ライセンスがきつくて使いづらい。
0146NAME IS NULL
垢版 |
2005/03/26(土) 15:09:38ID:???
この前tie初めて使った。感動した。
0147NAME IS NULL
垢版 |
2005/04/04(月) 15:27:05ID:IVXkguN3
BerkeleyDBの料金体系ってどんな感じなんでしょう。
どなたか具体的なお話を聞かせて頂けないでしょうか?
0148NAME IS NULL
垢版 |
2005/04/05(火) 00:22:16ID:???
Sleepycatにサポートしてほしいってこと?
直接聞けばいいのに。
0149147
垢版 |
2005/04/05(火) 15:07:31ID:???
>>148
公表されても構わないことと思われるのに、
ネットで全然その話題に行き着かなかったのです。

BerkeleyDBの利用しづらさって、その辺が全然分からんのもあると思うので、
どなたか情報を放流してもらえないかと期待しての書き込みです。
0151NAME IS NULL
垢版 |
2005/04/05(火) 20:31:04ID:???
>>150
いや、そこに載ってるのはサポートの価格で
知りたいのはコマーシャルライセンス自体の価格だと思われ。
Sleepycatのオープンソースライセンスは実質GPL(否LGPL)と同等だから、
製品に組み込もうと思ったら、その製品のソースも何らかの形でオープンにしないと駄目。
http://www.opensource.jp/licenses/sleepycat.html

多分InnoDBと同程度の価格だと思うんだけど、InnoDBはOEMオンリーで
結局MySQLでの価格差でしか見れないし、本当の供給してる値段は判らんね。
0153NAME IS NULL
垢版 |
2005/06/10(金) 12:33:06ID:b9rlejc6
QDBMのVillaで、重複レコードは同じキーのレコードの末尾に格納されるとあるけど
これはキーが重複したレコードの中では登録日時順に並ぶという事だよね。
しかし分からないのはその後の「DBのアップデートの為にそのカーソルは使えなくなる」という記述。
どういう事?
マニュアルのサンプルコードで重複キーのレコードに対してカーソルを使っているが。
0154NAME IS NULL
垢版 |
2005/06/10(金) 15:37:19ID:???
QDBMのVillaの比較関数ってどこに書いてどう使えば良いの?
とりあえずVLCFUNC型の変数に自作関数のポインタを入れてみたけど
それで自動的に使われるというわけではないみたいだし。
0155154
垢版 |
2005/06/10(金) 19:05:58ID:???
おー、分かった。
すっげ嬉しい。
openするメソッドの引数で指定するんじゃん。
灯台下暗しだな。
俺は下以外も暗いけどな。
0156153
垢版 |
2005/06/10(金) 19:27:24ID:???
自己解決しました。
0157NAME IS NULL
垢版 |
2005/06/22(水) 18:26:07ID:+bv5CzNl
qdbmのodeumはWEB上の文書しか扱えないの?
アプリケーション内で作った文字列を格納する方法が見当たらないんだが。
0158NAME IS NULL
垢版 |
2005/06/22(水) 20:13:41ID:???
個々の文書はwebとは限らないけれど、もとの文書を格納しておくわけじゃな
くて、転置インデックスしか管理しない。
estraierの用途を考えればわかるように、元の文書はどっか他の場所にファイ
ルとしてあるっていう前提があって、 odeum 側で、いちいちそのファイルの
内容をコピーせずに、そこへの参照(パスとか)だけ持てばいいって発想なんだ
ろう。
0159NAME IS NULL
垢版 |
2005/06/22(水) 21:56:09ID:???
APIなんだから、対象の文書がどこに保存してあるとか関係ないでしょ。
ODDOCオブジェクトを作ってoddocaddwordで語を入れさえすればいい。
0161NAME IS NULL
垢版 |
2005/06/22(水) 22:04:27ID:Dl2KSbG/
>>161
BSD License だったから あげさせてもらうよ
0162157
垢版 |
2005/06/23(木) 02:59:16ID:TtVhFLaI
oddocopen("URI")は、実際にそのURIにアクセスしてデータを取得したりしないの?
0163NAME IS NULL
垢版 |
2005/06/24(金) 09:05:52ID:???
>>157
しないよ。文書にIDをつけてるだけみたい。実際にはユニークであれば
どんあ文字列をしていしてもいいみたい。
0164157
垢版 |
2005/06/24(金) 11:35:39ID:???
レスありがとう!
0165NAME IS NULL
垢版 |
2005/06/25(土) 04:57:25ID:IcUs4KvU
QDBMのC用APIにはvistaがあるけどC++用APIには無いのは何故?
0166NAME IS NULL
垢版 |
2005/06/26(日) 03:08:08ID:nz35kzcL
QDBMのODDOC型にunsigned intのポインタを加えようとして、
ODDOC構造体にunsigned int *num;を書き加えて、
アプリケーション側でODDOC->num = unsigned intのポインタ;
と書いたのだけど、
odput内でODDOC->numを書くとセグメンテーション違反になってしまう。

oddocopen();を、unsigned int *numを引数として受け取る様にして、この関数内でODDOC->num = num;
とする方法も試してみたけど、そうするとポインタの代入が上手く行かない。
oddoc *doc;
unsigned int num[10];
cout << num << endl;
doc = oddocopen(URI,num);
cout << doc->num << endl;
で、numとdoc->numの値が異なってしまう。

原因分かる方居たら教えてくれませんか?
0167NAME IS NULL
垢版 |
2005/06/27(月) 15:46:55ID:???
古いライブラリとリンクしてるからじゃないの?
0168166
垢版 |
2005/06/29(水) 10:45:23ID:cQGEb3Tt
>>167
reboot後にコンパイルしても変わらないし、make uninstall して make installしても変わらないし、
変更が一部反映されてるからそれは大丈夫だと思うんだけど。

話は変わるけど、
c++でvistaを使いたくて、
アプリケーションのソースコードに#include<vista.h>を書いてみたり、
xvilla.hやxvilla.ccのvilla.hの部分をvista.hに変えて見たりしたけど
そのアプリケーションを実行してもディレクトリじゃなくvilla用のファイルが生成されてしまう。
qdbmのメーリングリストに参加しようとしても何故かメールが送信出来ないし。
qdbmのマニュアルのサンプルコードをvilla.hからvista.hに変えて使ってみると
ちゃんとディレクトリ生成してvistaとして動くんだけど。
xvista.hというファイルは無いし。
C++ではvistaは使えない仕様なのかな?
0169166
垢版 |
2005/06/30(木) 13:10:03ID:???
インストール時に発生していた問題に応急処置をしていた事が原因でした_no
0170NAME IS NULL
垢版 |
2005/07/21(木) 05:47:53ID:???
バークレーDBをperlで使っていますがファイルロックがよくわかりません。
>>142氏のリンク先を何度読んでも理解できず…
どなたか簡単に解説をお願いできないでしょうか。
0171NAME IS NULL
垢版 |
2005/07/21(木) 06:00:25ID:???
すんまそん…、普通にperldocに日本語で書いてありました。
お時間の許す方は煽ってやってください orz
0172NAME IS NULL
垢版 |
2005/08/06(土) 10:21:45ID:???
>これを性能指標とするならば、例えば100万個のレコードを格納するためには50万要素のバケット配列が求められる。
>バケット配列の各要素は4バイトである。
>すなわち、2MバイトのRAMが利用できれば100万レコードのデータベースが構築できる。
QDBMのマニュアルから引用。
これって、バケット配列は2Mしか使わなくてもハッシュが重複してるレコードが50万あるからその為にメモリ使って
2Mバイトじゃ済まないよね?
重複レコードをどう扱ってるのか知らないけど、ポインタとprimary keyが要るから
バケット配列と合わせて合計6Mは使いそうな気がするんですが。
0173NAME IS NULL
垢版 |
2005/08/06(土) 20:28:04ID:???
> ハッシュ値の衝突はセパレートチェーン法で管理する。チェーンのデータ構造は二分探索木である。

という記述と、

> レコード部はバケット部の直後からファイルの末尾までを占め、各レコードの以下の情報を持つ要素が記録される。
> 1. フラグ : `int' 型の整数である。
> 2. キーの第二ハッシュ値 : `int' 型の整数である。
> 3. キーのサイズ : `int' 型の整数である。
> 4. 値のサイズ : `int' 型の整数である。
> 5. パディングのサイズ : `int' 型の整数である。
> 6. 左の子の位置 : `int' 型の整数である。
> 7. 右の子の位置 : `int' 型の整数である。
> 8. キーの実データ : キーのサイズで定義される長さを持つ一連のバイトである。
> 9. 値の実データ : 値のサイズで定義される長さを持つ一連のバイトである。
> 10. パディング : 値のサイズとアラインメントにより算出される長さを持つ一連のバイトである。

という記述から判断するに、重複レコードのポインタはファイル内に記録してあるっぽい

0174NAME IS NULL
垢版 |
2005/09/29(木) 22:43:37ID:???
QDBM以外には、面白データベースは無いのかね?
0175NAME IS NULL
垢版 |
2005/12/03(土) 11:51:57ID:???
データベースそんなに更新しないならcdb最強でFA?
0176NAME IS NULL
垢版 |
2005/12/17(土) 22:53:22ID:???
sleepcatライセンス面倒だな。orz
0177test
垢版 |
2005/12/20(火) 13:38:10ID:???
test
0178test
垢版 |
2005/12/20(火) 13:39:12ID:BChHfMfC
test
0179NAME IS NULL
垢版 |
2005/12/21(水) 21:06:51ID:???
あ〜、本日は hoge なり。
0180NAME IS NULL
垢版 |
2005/12/22(木) 00:58:46ID:???
そろそろdbopenします。
やっぱりver1が落ち着く。
0183NAME IS NULL
垢版 |
2006/02/17(金) 22:02:46ID:???
ついにBSDにオラクル標準装備か。
0184NAME IS NULL
垢版 |
2006/02/18(土) 19:11:15ID:???
Berkeley DBとBSDは全く関係ねーだろ。
0185NAME IS NULL
垢版 |
2006/03/10(金) 02:11:43ID:vhSvdEFS
Berkeley DB メールで値段聞いても無視だったよ なんなんだろうwww
0186NAME IS NULL
垢版 |
2006/03/10(金) 17:37:12ID:???
ボラクルに買収されたので人居ません。
0187NAME IS NULL
垢版 |
2006/03/21(火) 11:52:13ID:fF1wwRiT
ボラクルに買収されたから使うのやめよ。。
ボラクル調子こきすぎてなんかむかついてきたぞ。。

BDBオープンソースじゃなくなる日も近いのかな。。
0188NAME IS NULL
垢版 |
2006/03/21(火) 12:25:31ID:???
その時はGPL化されてFedora DBになりますからご心配無く。
0189NAME IS NULL
垢版 |
2006/03/21(火) 14:17:27ID:???
FSFが買い取って、GNU/DBじゃないの?
0190NAME IS NULL
垢版 |
2006/03/21(火) 14:23:08ID:???
FSFにはgdbmがあるからBDBを買い取る理由がない。
Red Hatは自社のLinuxのパッケージデータベースにBDBを使ってる。
おそらくBDBユーザ数としては最大。
0191NAME IS NULL
垢版 |
2006/03/25(土) 02:49:25ID:???
QDBMがACIDサポートすればBDB要らなくなるかも
0192NAME IS NULL
垢版 |
2006/04/02(日) 13:28:55ID:???
オラクルは InnoDB も買収したが、MySQL の買収には失敗したようだな。
0193NAME IS NULL
垢版 |
2006/05/18(木) 23:40:55ID:237FeIJl
Berkeley DBでデジカメの画像をデータとして入れる時はどうしたらいいの?
教えて下さい。
0194NAME IS NULL
垢版 |
2006/05/19(金) 09:43:32ID:???
いや、普通に入れれば入ると思うんだけど。
もうちょっと具体的にどんな言語を使うとかどういう使い方をするとか詳しく。
0195193
垢版 |
2006/05/19(金) 21:35:29ID:???
>>194
有り難うございます。

いくつか見たサンプルが、いずれもテキスト形式のデータだったので、
バイナリデータは何等かのかたちでエンコードする必要が有るのかなと
思い、確認をしないまま質問してしまいました。

FreeBSD 6.1Rでgccを使っています。
今は郵政公社の郵便番号データをサンプルデータとして、Cで簡単な
プログラムを書きながら使い方を覚えようとしている途中なので、
具体的にこういう使い方をしたいと言えるレベルに達していません。
一応、画像データ、撮影時の情報、データ加工の内容等を
リンクさせて見たいなと思っています。

画像データは結構サイズが大きいのですが(RAWデータだと数十M位)
データの取り扱いで何か注意しなければいけない事など有りますか?

もしよろしければ注意点などお願いします。
0196NAME IS NULL
垢版 |
2006/05/21(日) 17:06:32ID:???
画像ファイルはどこかのディレクトリに置いといて、
パスだけDBに入れるってのもアリかもよ。
取り回しが面倒になる欠点はあるが、万一DBが壊れた場合の
復旧とか考えるとそっちの方が安心。
0197193
垢版 |
2006/05/21(日) 22:50:10ID:???
>>196

先ずはパスを管理するデータベースを作ってみようと思います。
色々質問をしてすみませんでした。


画像データのサイズは数メガの間違いです。
0198NAME IS NULL
垢版 |
2006/06/16(金) 05:29:45ID:???
3年掛かりでやっと200レスか。まったりしててよきかな。
0200NAME IS NULL
垢版 |
2006/06/16(金) 11:01:21ID:RZPI+bcx
200get!
0201NAME IS NULL
垢版 |
2006/06/16(金) 15:35:02ID:???
もう3年になるのかよ
0202NAME IS NULL
垢版 |
2006/06/17(土) 02:20:46ID:???
とっつきにくいからねえ。使ってる香具師も皆無だし、マヌアル本も皆無。
0203NAME IS NULL
垢版 |
2006/06/17(土) 15:22:11ID:UKEJjsFA
>>202
漏れのことを忘れないでくり。
職場のweb上の会議室予約のデータベースに使ってる。
速い、手軽、イイー。
0204NAME IS NULL
垢版 |
2006/06/18(日) 15:19:22ID:???
そーすをup汁。
php当たりから呼んでるとか?
0205NAME IS NULL
垢版 |
2006/06/19(月) 07:38:05ID:???
>>204
相談に乗りますよ。検索→読みモジュールと書き込みモジュールとあるが
それぞれ20万でどうよ。
0207NAME IS NULL
垢版 |
2006/06/19(月) 19:16:56ID:???
perl cgiで二十万はボッタクリだな。
ハロワに月収18万で募集掛けたほうが安く上がる。
0208205
垢版 |
2006/06/20(火) 02:39:48ID:tLdLBl3Q
>>206
その通り。モジュール類だけ挙げるとこんなんだす。
#!/usr/bin/perl
use Fcntl;
use SDBM_File;
use Time::Local;
require "cgi-lib.pl";
require "jcode.pl";
&ReadParse;

>>207
吹っかけただけだす。そらあんた、5〜6マソで十分よ。
レスを投稿する


ニューススポーツなんでも実況