偶希望可以使用结构化存储来解决巨型树结构的问题,大家帮忙瞧瞧可行性,多谢了

编程语言: c#

问题描述:


      这棵树是用在大型ftp站的搜索服务中的,除了要存储大量的目录结构信息,还需要对目录的改变作出即时的改变.因为这颗树是一个小型插件的一部分,占用太多内存,似乎就显得比较龌龊了,所以把这么一棵树部署在内存中是说不过去的.曾经考虑了多种方案,例如虚拟内存,内存映射文件;索引文件;XML等等.

使用虚拟内存和内存映射文件甭说了,一坨一坨的非托管数据结构和托管数据结构的转换,效率那是超级低的.

索引文件似乎是个不错的选择,按照常用的搜索条件建立索引,多级定位...但是大家要找的文件稀奇古怪,什么都有.而且,似乎难于即时的反映文件系统的变化,而且非常复杂,偶没有设计过Cache,经验欠缺,这个东东对我来说,困难.

XML搜索起来方便,即时反映文件变化也方便,唯一的缺点是要动它,就得用XmlDocument,这东西卡拉一家伙就把整个文档都读进来了,内存就....

结构化存储似乎是个好东西,我可以用文件夹名字命名IStorage,用一个IStream来存储该文件夹下所有文件的信息.例如:文件名,创建时间之类.

用结构化存储的好处就是自然的树型结构,添加删除方便.就是搜索的速度稍微有点slow.
IStorage的一些子对象的管理操作,像什么EnumElements,MoveElementTo,RenameElement,DestroyElement都比较慢.

另外,用一个IStream来存储该文加夹下所有的文件信息,而不是一个文件一个IStream是因为流对象是以512字节为一个单位进行申请,一个文件一个IStream,太浪费了.


各路奶牛,可有什么好的建议嘛?兄弟在这里多谢了先.
                                                                                                                    (Nineteen.bbs@bbs.tsinghua.edu.cn)

posted on 2004-06-19 18:53 .Share 阅读(989) 评论(10) 编辑 收藏

评论

#1楼  回复 引用   

对于你说的xml修改的时候必须使用xmldocument这个带缓存的对象;
我觉得可不可以使用xmltextwriter这个轻量级的对象来解决呢?
sdk里的描述:
表示提供快速、非缓存、只进方法的编写器,该方法生成包含 XML 数据(这些数据符合 W3C 可扩展标记语言 (XML) 1.0 和 XML 中命名空间的建议)的流或文件。

2004-06-19 23:17 | 数码幽灵

#2楼  回复 引用   

要不用数据库??
有一种嵌入试的数据库来着的,,我不记得名字了,据说性能不错...
2004-06-20 13:56 | hBifTs

#3楼  回复 引用   

关键是数据库不能安装.如果拿过来就可以用,最好了.
2004-06-20 15:25 | Nineteen@smth

#4楼  回复 引用   

XmlTextWriter是"只进的"-_-b

想删除结点,还是用XmlDocument啊.有其他解决方法吗?
2004-06-20 15:30 | .Share

#5楼  回复 引用   

嵌入式数据库有两个:
Berkeley DB
SqlLite

可以试试~
2004-06-20 15:50 | hBifTs

#6楼  回复 引用   

@.Share
删除结点,如果不用XmlDocument,就只有使用XmlTextReader + XmlTextWriter了,读一个,写一个,如果是要删除的,就不写.:)
2004-06-20 15:51 | hBifTs

#7楼  回复 引用   

感觉了一下sqlLite,好像真的可以用嵌入式数据库这种解决方案。。
不错;有待深入研究
2004-06-20 23:32 | 数码幽灵

#8楼  回复 引用   

那xml文件还不得越来越大啊.偶试了sqlite,我考!强.写入速度几乎是sql的6倍,读取速度几乎快了一倍.,用它的.net提供程序和sql的.net提供程序.
2004-06-21 00:06 | Nineteen@smth

#9楼  回复 引用   

就用sqllite吧,感觉这种不大不小的又对查询要求很高的数据结构用这种数据库就很不错;
现在可以统一一下NodeServer了,大站小站都可以用一个版本了;不错
2004-06-21 02:47 | 数码幽灵

#10楼  回复 引用   

库的结构得好好设计设计.
2004-06-21 10:34 | Nineteen@smth

导航

<2004年6月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

公告

昵称:.Share
园龄:7年8个月
粉丝:0
关注:0

搜索

 
 

常用链接

随笔档案

文章分类

相关技术站点

最新评论