Tasuku SUENAGA
a****@razil*****
2007年 8月 6日 (月) 21:20:36 JST
末永です。 Windows上でmmapに相当するAPIの調査を進めてきました。 その結果、 論理空間を枯渇させないような実装の方向性が ある程度分かってきました。 いまだ実験・実装等に着手できていないのですが、 将来的にはi.c.xxxファイルが肥大しても大丈夫となるように 開発を続けております。 Shingo Kawamura さんは書きました: > ご無沙汰しています。河村です。 > > 「1プロセス内で2GB」なのか、「1インデックスで2GB」なのか > を特定しようと思い、以下の調査を行いました。 > > CSV_ODD > と > CSV_EVEN > 二つのテーブルを用意して、各インデックスが1.5GB弱で、 > 合計が3GB以上になるようにデータ量を調節して、 > 1プロセス内で各テーブルへのInsertを交互に行ってみたのですが > 正常に動作完了しました。 > #/3GBスイッチははずしています > > 各テーブルのインデックスサイズは以下の通りです。 > ・CSV_ODD > サイズ:260,880 KB > --- > .SEN 12,416 KB > .SEN.i 84,160 KB > .SEN.i.c 524,096 KB > .SEN.i.c.001 523,264 KB > .SEN.i.c.002 492,544 KB > .SEN.i.c.003 145,408 KB > .SEN.l 8,320 KB > --- > ・CSV_EVEN > サイズ:260,880 KB > --- > .SEN 12,416 KB > .SEN.i 84,160 KB > .SEN.i.c 524,096 KB > .SEN.i.c.001 522,496 KB > .SEN.i.c.002 513,792 KB > .SEN.i.c.003 144,896 KB > .SEN.l 8,320 KB > --- > > このテストでもエラーが起きるかな、と思ったのですが、 > 正常終了してしまいました。^^; > > 最悪、このような方法で動作できそうなら、 > 件数でテーブルを振り分けて、全テーブルをUNIONして使う、 > という方法もありかなと思っています。 > > > ----- Original Message ----- > From: <morit****@razil*****> > To: <ludia****@lists*****> > Sent: Thursday, July 12, 2007 2:11 PM > Subject: [Ludia-users 70] Re:CreateIndexでエラー > > >> 森です。お世話になっています。。 >> >>> パッチを当てて再度実行してみました。 >>> --- >>> 07/11:06:49:10.021|A| MapViewOfFile failed #8 <400293888> >>> 07/11:06:49:10.071|A| io_win_map(8183, 287121676) failed!! >> ありがとうございます。 >> >> ひょっとするとSennaロジックのレベルでちゃんとメモリを解放していないのではないかと >> 考えたのですが、お蔭様でその疑いは晴れました。 >> >> どうやらUnmapViewOfFile, CloseHandleという手順を踏んでも >> 意図したように論理空間が解放できていないように見受けられます。 >> >> 一点、気にかかっているのは、WIN32_FMO_EACHの場合は、 >> CreateFileMappingでoffset + length分のmappingを作成している点です。 >> mmapと違ってファイルの途中から一部分だけmappingすることができないので、 >> このような手段を取っているのですが、そうすると論理空間を、 >> length分ではなく、offset + length分消費してしまうのかも知れません。 >> >> また、WIN32_FMO_EACHでない場合は、UnmapViewOfFileの際にCloseHandleを発行していないので、 >> これも問題かも知れません >> >> 以上、すぐには着手できないのですが、私達の方でも検証してみたいと思います。 >> >> -- >> mori --- Tasuku SUENAGA <a****@razil*****>