`
- 浏览:
735183 次
- 性别:
- 来自:
北京
-
Code
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->用户:所有分组(QQ好友)
==================================================
消息组:.net(12)
==================================================
消息类型:聊天记录
==================================================
--------------------------------------------------
消息对象:象(4618415)
--------------------------------------------------
2008-07-30 00:23:42 4618415
你的bdb .net是怎么用的啊
2008-07-30 00:24:07 4618415
是自己实现的还是使用 0.95那个 .net实现?
2008-07-30 03:55:46 [北京]Erick
我是用的0.95
2008-07-30 05:41:02 象
我的也是,不过你发现了那个地方有个bug了吗
2008-07-30 05:41:18 象
0.95那个实现有些问题,
2008-07-30 06:12:12 [北京]Erick
似乎是Associate函数有问题,
2008-07-30 06:12:19 [北京]Erick
不知道你用过没有
2008-07-30 06:12:26 象
我用过啊,不是那里的,
2008-07-30 06:12:40 象
我找了好久才找到
2008-07-30 06:12:45 象
你用这个干啥的啊
2008-07-30 06:12:55 [北京]Erick
做二级数据库啊
2008-07-30 06:14:07 [北京]Erick
我刚遇到一个问题想向你请教一下,
2008-07-30 06:14:55 象
说说看看,你是不是还在读书啊
2008-07-30 06:15:31 [北京]Erick
是啊
2008-07-30 06:16:24 [北京]Erick
我设置env用以提供并行的环境
using (Env env = new Env(EnvCreateFlags.None))
{
//设置并发参数Env.OpenFlags.InitCDB,Env.OpenFlags.InitMPool
Env.OpenFlags envFlags =
Env.OpenFlags.InitCDB|
Env.OpenFlags.InitMPool ;
env.Open("", envFlags, 0);
Txn txn = env.TxnBegin(null, Txn.BeginFlags.None);
using (Db db = env.CreateDatabase(DbCreateFlags.None))
{
db.RecLen = 5000;
db.RecPad = '.';
2008-07-30 06:16:52 [北京]Erick
我对并发的参数设置不太了解,
2008-07-30 06:17:06 [北京]Erick
特别是这里的env.Open该如何使用
2008-07-30 06:19:08 象
public int Set_Write_Env(string path,int hash_code, int cache_size)
{
BDB_PATH = path;
HASH_CODE = hash_code;
env = new Env(EnvCreateFlags.None);
Env.OpenFlags envFlags =
Env.OpenFlags.Create |
Env.OpenFlags.InitLock |
Env.OpenFlags.InitLog |
Env.OpenFlags.InitMPool |
Env.OpenFlags.ThreadSafe;
//打开数据库环境,注意后四个标志分别指示DB启动日志、加锁、缓存、事务处理子系统
try
{
env.SetCacheMaxWrite(cache_size * 1024 * 1024, 0); //设置缓冲
}
catch (Exception eb)
2008-07-30 06:19:08 象
{
Console.WriteLine("设置环境错误:{0}", eb.Message);
env.Close();
return 0;
}
env.Open(BDB_PATH, envFlags, 0);
return 0;
}
2008-07-30 06:19:20 象
问你是不是还在上学啊
2008-07-30 06:19:24 [北京]Erick
是的
2008-07-30 06:20:11 象
你30多了还在上学啊,
2008-07-30 06:20:19 象
估计你是做毕业论文吧,
2008-07-30 06:20:19 [北京]Erick
没啦,25
2008-07-30 06:20:23 象
哦
2008-07-30 06:20:39 [北京]Erick
被你猜到了
2008-07-30 06:20:50 象
你最好vc下做成dll再调用,否则你会很难堪的
2008-07-30 06:20:49 [北京]Erick
是写论文用
2008-07-30 06:21:13 象
这个0.95 毛病太多,估计一般的水平和精力都该不出来,资料太少
2008-07-30 06:21:27 [北京]Erick
我不会C++,原来想找人cli c++的wrapper,结果没找到
2008-07-30 06:21:43 象
哈哈哈,你麻烦了
2008-07-30 06:22:09 [北京]Erick
你有这方面的资料提供下吗
2008-07-30 06:22:20 象
c#下的bdb很少有人搞成功的,资料少的可怜,你看到网上那些demo,其实都是演示而已,根本无法应用,
2008-07-30 06:22:48 [北京]Erick
我现在搜,连代码都找不到了,
2008-07-30 06:22:51 象
data的长度好像过了几k就报内存错误了
2008-07-30 06:23:07 象
没有资料,
2008-07-30 06:23:08 [北京]Erick
oracle的论坛我也去过了
2008-07-30 06:23:30 [北京]Erick
那你是怎么做的?
2008-07-30 06:23:34 象
没用的,都是c++的应用,
2008-07-30 06:23:40 象
我是通过dll引入啊
2008-07-30 06:23:42 象
vc
2008-07-30 06:24:12 象
因为bdb .net这方面我们做了很多处理,都是公司的东西,不能给你
2008-07-30 06:25:00 [北京]Erick
网上说是先调用C++的接口再做wrapper
2008-07-30 06:25:20 象
那估计不行
2008-07-30 06:25:58 [北京]Erick
死的心都有了
2008-07-30 06:26:18 象
你得做成vc dll,然后再引入,这样就简单多了,不过你还是研究生,估计实践经验不够,这样做知识面是要广点,比较麻烦些
2008-07-30 06:26:19 [北京]Erick
你们用bdb做什么应用啊
2008-07-30 06:26:29 象
垂直搜索的索引库
2008-07-30 06:26:40 [北京]Erick
不用lucene啊
2008-07-30 06:27:06 象
那东西太低级了,能商用吗
2008-07-30 06:27:32 象
扩展性太差,不适合商用,哄哄老板还可以
2008-07-30 06:27:41 [北京]Erick
呵呵
2008-07-30 06:28:11 [北京]Erick
怎么办啊,其它的嵌入式的数据库我都找了一遍了,并发性都不行,你有什么好的建议
2008-07-30 06:30:39 象
只有bdb
2008-07-30 06:30:47 象
sqlite 速度快,并发不行
2008-07-30 06:31:02 [北京]Erick
我测了,10线程必死
2008-07-30 06:31:33 象
你们也是哄哄导师而已,随便糊弄一下吧,dbd问题不大,只要数据每天不过2K,应该没啥问题
2008-07-30 06:31:49 [北京]Erick
前面你给我的示例代码中BDB_PATH这个参数是设置什么
2008-07-30 06:34:47 象
dbd文件啊,
2008-07-30 06:35:34 [北京]Erick
是bdb文件的绝对路径吗?
2008-07-30 06:35:53 象
是啊,你还要问啊,大哥
2008-07-30 06:36:24 [北京]Erick
还不容易逮着一个懂的,不能放过啊,呵呵
2008-07-30 06:37:10 [北京]Erick
有没有简单的示例性的代码提供学习一下,
2008-07-30 06:37:39 象
没用的,
2008-07-30 06:37:50 象
必须修改dbd 0.95 .net的源码
2008-07-30 06:38:40 象
修改的地方不多,但是代码不是我修改的,你要 修改后的,我可以给你,源码,我拿不到,核心的东西我也没有,
2008-07-30 06:38:53 [北京]Erick
行啊,
2008-07-30 06:38:59 [北京]Erick
我又不要源码
2008-07-30 06:40:08 象
你试试吧,你说的那个函数我们并没有用,也许我们改了别的地方,那个地方自然就通过了
2008-07-30 06:40:11 象
接收文件成功,保存于C:\Documents and Settings\Administrator\Desktop\libdb_dotNET45.dll。
2008-07-30 06:40:27 象
public void Write_Index(string key,IndexClass.index index, int table_id)
{
try
{
#region 写索引
using (Db db = env.CreateDatabase(DbCreateFlags.None))
{
//1:设置环境,打开数据文件
db.SetFlags(DbFlags.Dup);//容许hash重复
DbFile dbf;
try
{
dbf = db.Open(null, BDB_PATH + "\\term" + table_id.ToString() + ".db", null, DbType.Hash, Db.OpenFlags.Create, 0);
}
catch (Exception eb)
{
Console.WriteLine("打开数据文件失
2008-07-30 06:40:27 象
#endregion
}
catch (Exception e)
{
Console.WriteLine("写索引错误:{0}", e.Message);
return;
}
}
2008-07-30 06:40:25 [北京]Erick
嗯,
2008-07-30 06:40:27 象
败.{0}", eb.Message);
return;
}
MemoryStream stream = new MemoryStream();
BinaryFormatter formatter = new BinaryFormatter();
stream = new MemoryStream();
formatter.Serialize(stream, index);
DbEntry _key = DbEntry.InOut(Encoding.UTF8.GetBytes(key));
DbEntry _data = DbEntry.InOut(stream.ToArray());
if (dbf.Put(null, ref _key, ref _data) != 0)
Console.Write("{0}:输入错误", key);
dbf.Sync();//数据更新
db.Close();
}
2008-07-30 06:41:41 象
public int Search_Index(string Term, int score, ref List<Index_Term> index_terms)
{
string key="";
int c = 0;
IndexClass.index p;
string filename = BDB_PATH + "\\term" + Get_Table(Term, HASH_CODE).ToString() + ".db";
if (System.IO.File.Exists(filename))
{
DateTime b = DateTime.Now;
BinaryFormatter formatter = new BinaryFormatter();
MemoryStream stream = new MemoryStream();
Db db = new Db(DbCreateFlags.None);
db.SetFlags(DbFlags.Dup);
DbFile dbf = db.Open(null, filename, null, DbType.Hash, Db.OpenFlags.Read
2008-07-30 06:41:41 象
Only, 0);
try
{
using (DbHashCursor cursor = (dbf as DbHash).OpenCursor(null, DbFileCursor.CreateFlags.None))
{
DbEntry _key = DbEntry.InOut(Encoding.UTF8.GetBytes(Term + "@" + score));
IEnumerable<KeyDataPair> items = cursor.ItemsAt(ref _key, DbFileCursor.ReadFlags.None);
try
{
foreach (KeyDataPair kdp in items)
{
key = Encoding.UTF8.GetString(kdp.Key.Buffer, 0, kdp.Key.Size);
stream = new MemoryStream();
2008-07-30 06:41:42 象
stream.Write(kdp.Data.Buffer, 0, kdp.Data.Size);
stream.Seek(0, SeekOrigin.Begin);
p = (IndexClass.index)formatter.Deserialize(stream);
add_index_item(p, ref index_terms);
c++;
}
}
catch (Exception e)
{
Console.Write("Search_Index:{0}", e.Message);
}
}
return c;
}
finally
{
2008-07-30 06:41:42 象
db.Close();
}
}
else
{
Console.WriteLine("文件{0}不存在", filename);
return 0;
}
}
2008-07-30 06:41:51 [北京]Erick
大哥,能提供个邮件地址吗,方便向您请教
2008-07-30 06:42<span
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
**Berkeley DB (BDB) 使用指南** Berkeley DB(简称BDB)是Oracle公司提供的一款开源、嵌入式数据库系统,广泛应用于各种需要高效、可靠数据存储的应用中。本指南将详细介绍BDB的基本概念、安装配置、操作方法以及...
"BDB数据库测试工具"是一款专为BDB(Berkeley Database)设计的测试工具,主要用于在2007年版本中对数据库进行性能评估、功能验证和稳定性测试。这款工具无需安装,方便用户快速启动和使用,是开发者和数据库管理员...
Oracle中的BDB(Berkeley DB)数据库是一种轻量级、高性能的数据存储解决方案,尤其适合用于对数据快速存取和小型项目的需求。BDB是Oracle公司收购Sleepycat Software后得到的一种开源、嵌入式数据库系统,它以键/值...
基于bdb存贮的简单fifo持久队列,支持多个队列,采用bdb的btree方式组织数据。 启动参数说明: -n 数据库的文件名,默认为:xianglei.db -p http访问的端口号,默认:1985 -i http访问的ip地址,默认:127.0.0.1 -f ...
**伯克利数据库(Berkeley DB,简称BDB)** 伯克利数据库是Oracle公司提供的一款开源、嵌入式、键值对存储的数据库管理系统,主要用于处理轻量级数据存储和检索任务。它最初由伯克利大学开发,因此得名。在.NET环境...
BDB Professional Edition v2.8 >BDB(Bain DB Builder)是跨数据库平台的数据库设计工具、 >目前版本支持的数据库平台: > √ Access > √ MS SQLServer > √ Oracle > √ MySQL > √ SQL...
**Berkeley DB (BDB)** 是一款开源的嵌入式数据库系统,由Oracle公司开发,广泛应用于需要快速、高效数据存储的应用程序中。它提供了一种键值对存储模型,适用于构建事务处理、缓存、日志记录等多种场景。BDB在设计...
**BDB数据库设计软件详解** BDB(Berkeley DB)是一种流行的数据存储系统,由甲骨文公司开发,主要用于构建高性能、轻量级的应用程序,尤其是那些需要高速数据访问和低延迟的应用。作为一款强大的数据库设计软件,...
BDB Developer Edition v3.0 >BDB(Bain DB Builder)是跨数据库平台的数据库设计工具、 >目前版本支持的数据库平台: > √ Access > √ MS SQLServer > √ Oracle > √ MySQL > √ SQLAnyWhere...
Bainsoft BDB 3.2是一款强大的数据库管理工具,专为专业人士设计,以支持多种主流数据库系统,包括Oracle、DB2、MySQL以及Access。它的出现旨在提供一个集成化、高效的平台,帮助数据库管理员和开发人员更加便捷地...
**BDB 2007** 是由贝恩软件(Bainsoft)开发的一款专业数据库设计与部署工具。这款软件支持多种主流数据库平台,包括 Oracle、Microsoft SQL Server、MySQL、Access、SQL Anywhere 和 Sybase。 **特点**: - 支持多...
数据库设计工具BDB 最新版 v3.0 v3.0 下载: 1) 中文简体版: [url]http://www.bainsoft.com/downloads/BDB.rar[/url] 2) 英文版: [url]http://www.bainsoft.com/downloads/BDBEN.rar[/url] v3.0版本更新: 1, 增加...
SVN客户端升级以后打开原来版本库报错Failed to load module for FS type 'bdb',使用该资源下载后解压将原版本库文件夹更名为bdb放到dbd2fsfs.bat同一目录,双击dbd2fsfs.bat,生成fsfs文件夹。用新SVN客户端就可以...
<br>您可以通过BDB来简化软件开发和部署过程: <br>1,数据库设计。 通过BDB快速建立数据库模型。支持正向工程和反向工程, 以及数据库模型和实体数据库之间的比对更新和双向同步。 <br>2,数据库...
BDB是跨数据库平台的数据库设计和自动安装工具、 支持Oracle、MS SQLServer、Access、MySQL、SQLAnyWhere、Sybase数据库。 通过BDB可以快速建立数据库模型、并随时与实体数据库进行双向同步。 同时它还可以...
BDB系列的轻量级版本,开放了绝大部分功能,如: 数据库设计,SQL智能化查询分析, 数据库管理,同步功能,和Excle文件之间的数据导入导出等等. <br>BDB支持的数据库平台: Oracle,SQLServer,MySQL,Access,SQL...
BDB是跨数据库平台的数据库设计和自动安装工具、 支持Oracle、SQLServer、Access、MySQL、SQLAnyWhere数据库。 通过BDB可以快速建立数据库模型、并随时与实体数据库进行双向同步。 同时它还可以为您的应用...
Berkeley DB(简称BDB)是Oracle公司开发的一款开源、轻量级、嵌入式数据库系统,广泛应用于需要快速数据存储和检索的应用场景。在18.1.40这个版本中,BDB继续提供了对高性能、低延迟数据管理的支持,尤其适合于内存...
标题中的“tokyocabinet”是一个轻量级的键值对数据库系统,它提供了两种不同的存储引擎:HDB(Hash Database)和BDB(Btree Database)。这两种引擎各有特点,适用于不同的场景。在进行存储速度的比较时,我们需要...