设计文件优化范文(精选7篇)
设计文件优化 第1篇
1 CFS-HDFS设计
CFS-HDFS为了能够有效地存储所有的文件, 并有效地利用内存空间和物理存储空间, 采取了分类思想, 区别对待大文件和小文件, 让它们以不同的形式存储在Datanode集群中。对于大文件, CFS-HDFS不会做其他多余的工作, 即让大文件按照HDFS原有的存储方式存放在系统中; 对于小文件, CFS-HDFS会对其设置缓存, 在缓存中将多个小文件合并成大文件, 然后将合并后的大文件存储在HDFS原有的系统中。这种分类思想, 对用户透明, 其并不会改变用户使用HDFS的复杂性, 这种分类由系统前端的分发系统自主完成。
1.1 存储架构
CFS-HDFS系统主要由客户端、 分发系统、 小文件存储子系统以及HDFS子系统等4 部分构成。 其中, 小文件存储子系统又由元数据集群和缓存集群两部分构成; HDFS子系统由Namenode节点和Datanode集群构成。 客户端Client主要是提供用户接口, 使得用户可以方便地完成数据操作; 分发系统Dispatch System完成大文件和小文件的分流, 将小文件重定向到小文件子系统处理, 将大文件直接交由大文件子系统处理, 由于大文件子系统没有做任何处理, 所以, 可以说是直接交给了HDFS子系统处理。
分发子系统是系统的设计核心模块, 它负责完成用户请求的调度, 将用户请求调度到不同的子系统, 由对应的子系统来响应请求。 该系统为了完成请求的合理调度, 需要实现相关的哈希算法和文件相关信息的计算。
小文件子系统Small Files由元数据集群Metadata-Cluster和缓存节点集群CacheNode-Cluster两部分构成, 其中Metadata-Cluster用来存储小文件在Cache Node-Cluster中的信息以及在Namenode中对应的信息, 用来标示小文件的物理位置以能够从系统中准确地读取指定的文件。
HDFS子系统由Namenode节点和Datanode Cluster两部分构成, Namenode存储系统元数据, 用来定位指定的文件在Datanode Cluster中的位置; Datanode Cluster是用来存储实际数据的地方, 所有的数据被划分为64M大小的数据块被存储在Datanode Cluster中相应的节点上, 每个数据块存储3 个副本, 用来保障数据的安全性。
1.2 系统模块交互方案
客户端Client-API并不关心系统内部的实现细节, 它只负责将用户请求发送给分发系统, 然后将请求结果返回给用户; 分发系统和小文件系统以及HDFS子系统通信, 负责将请求转发给小文件系统或者HDFS子系统, 由具体的子系统实际响应用户请求。
用户请求写小文件时, 分发系统和小文件子系统通信, 将小文件上传至相应的Cache Node (S-2) 并将元数据记录在Metadata-Cluster中 (S-1) ; 用户请求读小文件时, 分发系统和小文件子系统通信, 从Metadata-Cluster获取小文件对应的在Cache Node中的位置 (S-1) , 然后从Cache Node中获取数据 (S-2) 。
用户写大文件时, 分发系统和HDFS子系统通信, 通过Namenode获取可以存放数据的位置 (B-1) , 然后将数据写入Datanode Cluster中给定的位置 (B-2) ; 用户读大文件时, 分发系统和HDFS子系统通信, 通过Namenode获取数据的位置 (B-1) , 然后将数据从Datanode Cluster中读出 (B-2) 。
Cache Node将多个小文件合并成大文件后, 需要将大文件存储到HDFS子系统中, 将大文件上传至HDFS子系统的过程和客户端上传大文件的过程相似 (C-2 和C-3, 对应B-1 和B-2) , 只是需要更新小文件子系统中的Metadata-Cluster中对应的数据记录 (C-1) , 以便可以通过小文件信息找到其在HDFS子系统中对应的存储位置。
用户读取一个小文件时, 需要对应的Cache Node响应这个读请求, 当Cache Node中不存在该文件时, 就需要通过Metadata-Cluster中对应记录 (C-1) 从HDFS子系统中将包含该文件的大文件读至Cache Node (C-2 和C-3) , 然后响应用户的读请求。
1.3 分发子系统
分发子系统是CFS-HDFS系统的核心所在, 它负责完成用户请求的调度, 将用户请求调度到不同的子系统, 由对应的子系统来响应请求, 在分发子系统接收到一个请求request后, 对该request进行分析; 首先根据文件大小进行分类, 如果文件大于64M, 则将该请求转发给Namenode处理, 即直接转发到HDFS子系统处理请求; 如果文件小于64M, 则转发给小文件处理子系统。 分发子系统根据用户请求进行一致性hash映射, 直接映射到对应的Cache Node上, 由该Cache Node来响应用户的request请求。
1.4 小文件子系统
小文件子系统是为了解决HDFS对小文件的支持性较差的问题而设计的, 对小文件采取特殊的处理方式, 以实现高效地完成小文件的存储。
Metadata-Cluster由My SQL数据库的集群形式实现, 其中有表1 和表2 两个主要的表来记录用户数据的元数据。 在表1中, 关于每条记录有4 个字段是关于文件寻址的: File ID、Filename、 Cache Path、 Hdfs Path。 File ID是该文件在系统中的唯一标识, 在系统中实现自动递增; Filename是用户指定的将自己的文件存储在系统中的路径, 也是文件的唯一标识;Cache Path是用户文件在Cache中的存储路径, 在读取该文件或者在文件合并成大文件后需要根据此路径来更新Hdfs Path;Hdfs Path是该小文件对应的大文件在HDFS子系统中的存储路径。 在表2 中, 记录着每个Hdfs Path中实际包含的小文件个数, 每当小文件删除时, 就会更新该计数, 在后台删除程序执行实际的文件删除操作时, 就会将计数为0 的记录对应的所有文件从HDFS子系统中删除。
2 实验与分析
为了验证设计的CFS-HDFS系统的可用性与高效性, 本实验设计了对比实验, 并获取相关的实验数据: HDFS占用的存储空间 (Namenode记录数和Datanode数据块数) 、 上传时间、 下载时间、 删除时间。
2.1 实验设计
本实验先后运行HDFS、 CFS-HDFS两套软件, 在相同的用户操作下, 获取实验数据并记录在对应的表中, 为了便于对比, 将文献[6] 实现小文件读写优化实验数据也记录在表中。
2.1.1 实验环境
为了尽可能真实地模拟生产环境, 本实验搭建了HDFS集群 (后搭建了CFS-HDFS) , 并部署了两台Cache服务器, 搭建了My SQL集群, 用作Metadata-Cluster, 一个PC机用来模拟客户端, 该客户端对同样的数据完成上传、 下载、 删除等操作。 为了真实的对比效果, 实验将删除文件时的空间利用率阀值设置为0, 即在物理清理文件时, 对存储空间不做要求, 一律删除。
实验数据: 100 个10M左右的文件; 20 个100M左右的文件。
2.1.2 实验步骤
搭建完毕实验环境, 其实验步骤设计如下:
(1) 运行HDFS集群软件。
(2) 上传所有的大文件, 记录上传时间, 记入表1。
(3) 查看Namenode和Datanode使用情况, 记入表2。
(4) 上传所有的小文件, 记录上传时间, 记入表1。
(5) 查看Namenode和Datanode使用情况, 记入表2。
(6) 下载所有的大文件, 记录下载时间, 记入表1。
(7) 下载所有的小文件, 记录下载时间, 记入表1。
(8) 删除所有的大文件, 记录删除时间, 记入表1。
(9) 查看Namenode和Datanode使用情况, 记入表2。
(10) 删除所有的小文件, 记录删除时间, 记入表1。
(11) 查看Namenode和Datanode使用情况, 记入表2。
(12) 运行CFS-HDFS集群软件。
(13) 执行步骤 (2) 到步骤 (11) 。
2.2 实验结果及分析
通过执行上述实验, 得到如表1 和表2 所示的实验结果。其中, 表1 记录的是各个操作所消耗的时间, 表2 记录的是上传和删除操作对Datanode中数据块的统计情况和Namenode中记录数的统计情况。
从表1 可以看出, 在CFS-HDFS和HDFS两个系统中, 大文件的上传、 下载、 删除等操作所消耗的时间差别不大, 可以认为是相等的。 但是, 对小文件来说, 上传和下载消耗的时间是有明显差别的。 CFS-HDFS相对HDFS来说, 上传、下载和删除操作消耗的时间更少, 效率更高。 经过计算可知, CFS -HDFS相对HDFS而言, 上传文件操作的效率提高了32% , 下载操作的效率提高了27% , 删除操作的效率提高了87%。 CFS-HDFS和文献[6] 的性能对比可知, 实现的CFSHDFS在大文件操作中, 性能无差别; 但是, 对小文件操作却有着显著的差别, 本文实现的CFS-HDFS在各种对小文件的操作上都有着显著的性能提高, 传文件操作的效率提高了25% , 下载操作的效率提高了19% , 删除操作的效率提高了75%。 这是因为CFS-HDFS对大文件并没有做任何优化处理, 而是复用了HDFS的所有操作, 所以效率无差; CFS-HDFS对小文件采用了缓存操作, 小文件上传至缓存后就完成了上传操作, 故效率较高。 下载小文件时, 由于缓存中存在对应的小文件, 所以文件由缓存直接响应用户的读请求, 并没有经过HDFS处理, 所以下载效率较高。
从表2 可以看出, 在CFS-HDFS和HDFS两个系统中, 对大文件而言, 消耗的Datanode的数据块的个数是相等的, 记录数据信息的元数据的记录个数也是相等的。 但是, 对小文件而言, 消耗的Datanode的数据块的个数, 在两个系统中差别是很大的, 在CFS-HDFS系统中, 消耗的数据块的个数更少; 在Namenode中, 记录数据信息的元数据的记录个数, 在两个系统中差别也是很大的, 在CFS-HDFS系统中, 记录数据信息的元数据的记录个数更少。 经过计算可知, CFSHDFS相对HDFS而言, 消耗的Datanode的数据块的个数下降了79%; 在Namenode中, 记录数据信息的元数据的记录个数下降了79%。 CFS-HDFS和文献[6] 的性能对比可知, 本文实现的CFS-HDFS在大文件操作中, 性能无差别; 但是, 对小文件操作却有着显著的差别, 实现的CFS-HDFS消耗的Datanode的数据块的个数下降了63%; 在Namenode中, 记录数据信息的元数据的记录个数下降了53%。 这是因为CFSHDFS对大文件并没有做任何优化处理, 而是复用了HDFS的所有操作, 所以存储空间使用情况无差别; CFS-HDFS对小文件采用了合并操作, 合并后的文件才会被上传至HDFS子系统, 所以会节省大量的Datanode的数据块和Namenode的元数据记录个数。
从表2 可以知道, 当用户删除所有的文件后, HDFS子系统中的数据被全部清理, 没有任何残余。 这是因为实验时, 将空间利用率阀值设置成了0, 即只要Metadata-Cluster中记录的count值为0, 就向HDFS子系统发起文件删除操作, 所以, CFS-HDFS中删除所有的文件后, Datanode中被使用的数据块个数和Namenode中元数据的个数都变为了0。 但是, 要是将空间利用率阀值设置为10%或者20%或者其他某个百分比数值, 当用户发起删除所有的文件操作完成后, Datanode中被使用的数据块个数和Namenode中元数据的个数都不会变成0, 此时, 空间会被 “废弃的数据” 占用着, 造成 “某种意义上的空间浪费”, 不过, 由于空间闲置时无人利用, 此时的“某种意义上的空间浪费” 是可以接受的, 用户可以通过设置空间利用率阀值来控制 “允许浪费的空间” 限额, 设置为0时, 就不会浪费任何空间。
实验数据表明, 设计的基于HDFS的通用文件系统CFSHDFS和HDFS以及文献[6] 实现的小文件优化方案性比, 都有着明显的性能提升, 实验数据表明, CFS-HDFS在不影响大文件处理效率的同时, 强化了对小文件的支持力度。 在处理小文件时, 可以节约大量的Datanode数据块的使用个数和在Namenode中元数据的记录个数, 节省了大量的空间。 CFSHDFS还提高了读写小文件的效率。 因此, CFS-HDFS是可行的、 高效的。
4 结语
针对HDFS处理小文件效率低下的问题, 设计了基于HDFS的通用文件系统方案CFS-HDFS。 CFS-HDFS根据文件大小将文件划分为大文件和小文件, 并对它们进行分类处理。对大文件按照HDFS原有的流程处理, 不做任何其他的额外处理; 对小文件, 设计了对应的小文件子系统来处理。 小文件子系统设计了缓存、 合并小文件、 预读小文件等机制来提高小文件的读写效率以及HDFS的空间利用率。 实验数据再次表明, 设计的CFS-HDFS在不影响大文件处理效率的同时, 提高了小文件处理的效率, 并且节约了Datanode空间和Namenode的内存使用情况, 该方案是切实可行的、 有效的。
摘要:针对Hadoop分布式文件系统 (Hadoop Distributed File System, HDFS) 在存储海量数据时对小文件支持性能低下的问题, 提出了基于HDFS的通用文件存储系统 (Common File Storage-Hadoop Distributed File System, CFSHDFS) 。该方案采用了分类处理的设计思想, 区别对待大文件和小文件。对大文件不做任何处理, 按照HDFS原有的流程完成既定的操作;对小文件的存取, 经过缓存、预读、合并等机制的处理, 从而在提高Namenode内存利用率和Datanode空间利用率的基础上, 提高了小文件的读写性能。区别对待文件的处理以及对小文件的一系列的处理, 对用户来说都是透明的, 因此, 该方案并不会增加用户使用HDFS的复杂性。
关键词:HDFS技术,海量数据,Hadoop分布式文件系统
参考文献
[1]王玲惠, 李小勇, 张轶彬.海量小文件存储文件系统研究综述[J].计算机应用与软件, 2012, 29 (8) :106-109.
[2]Luo Y, Luo S, Guan J, et al.A RAMCloud Storage System based on HDFS:Architecture, implementation and evaluation[J].Journal of Systems and Software, 2013, 86 (3) :744-750.
[3]马灿, 孟丹.曙光星云分布式文件系统:海量小文件存取[J].计算机科学, 2012, 33 (7) :1481-1488.
[4]Zhou Lu, Fang Zhiyi, Xiang Liyun.Performance optimization of processing small files based on HDFS[J].International Review on Computers and Software, 2012, 7 (6) :3386-3391.
设计文件优化 第2篇
文件控制是核电工程质量控制的重要内容, 其中文件管理是对文件控制的具体落实和执行。文件管理的最终效果对工程项目的进度、质量、成本等起着重要的作用。在核电工程里 (以工程总承包模式为例) , 工程设计文件和资料在设计部门的各个专业部室产生, 经整理后流转至核电项目施工现场, 作为项目施工的直接指导文件。流转过程中产生的变更、澄清单、函件等文件资料最终随图纸一并归档并存储, 以设计资料数据库的形式提供统一的分类, 并提供检索查询窗口。文件的有序管理和流转基于各相关方明确的接口控制, 但其版本的控制、发布和分发、变更控制等又具有相当大的灵活性, 存在较大的人为错误风险。故此, 一体化的文件管理体系和平台是确保文件控制落实到位、高效有序的必要手段和工具。
二、核电工程文件管理流程的现状与问题
本文以福清一期核电为例, 介绍目前核电工程文件管理的流程和存在的问题。
(一) 文件管理的流程。
1. 文件的形成。
设计部门形成图纸资料, 移交文印部晒硫酸图或装订成标准资料册后流转回设计部门。在设计部门文档管理员的统一组织和协调下, 设计部门相关人员在硫酸图或标准资料册上执行编制、校核、审核、审定、批准等签字程序, 而后形成设计成品文件。
2. 文件的接收。
设计部门形成成品文件之后, 由各核电工程项目 (每一个核电工程都有专职的文档人员) 的文档管理员接收、核对 (主要是核对数量和编号等字面信息) , 并将文件元数据信息著录至本部门文件管理清单 (excel) 。而后文件会流转至公司文档部, 文档部会将文件元数据信息再次著录至本部文件管理清单 (excel) 。此流转过程需填写文件传递单和复制卡。
3. 文件的整编。
文档部会组织核对各个工程项目部接受的成品文件、图纸, 并将相应的文件元数据信息著录到底图表、档案管理系统案卷级和文件级, 扫描图纸、文件并上传档案管理系统。档案管理系统为经过授权的技术人员开放读取权限, 借此实现不同核电项目之间的经验反馈和文件共享。
4. 文件的现场同步。
文档部门对文件进行核对和检查并确认无误后 (此阶段主要是图纸数量和版本的核查) , 通过工程文档管理系统将电子文件同步分发至核电工程项目现场, 并由项目现场文档管理人员在当地晒图, 并相应地进行控制和管理。
5. 硫酸图、文件的归档。
设计文件的签字扫描版及可编辑版 (通常为Auto CAD或PDMS格式) 的电子文件刻录光盘存档。纸质版设计文件整理后归入档案库, 以便后续追溯查询或借阅参考。
综上所述, 一份设计文件从形成到完成流转并最终归档需经历多个环节, 且涉及到多个部门, 接口关系复杂, 并至少需要1名项目文档员、1名部门文档员、若干名现场文档员和一台扫描仪。
(二) 文件管理流程中存在的问题。
从文件管理的流程分析, 其主要不足可概括为以下几点:一是核电工程文件数量繁多, 流程涉及人员较多, 管理成本高;二是文件在流转过程中需经过数次核对, 但核对内容基本相同, 增加了时间成本, 且对文件质量的控制效果不甚明显;三是将文件元数据著录的著录过程分三批次, 且均为人工独立著录。著录工作产生了较大的工作强度, 且极易出现人为原因错误, 为今后的文件追溯和检索、数据统计工作带来了一定的不利影响。表1为需要重复著录的文件元数据, 从表中信息可知需著录的元数据类型庞杂, 工作量也相对较大。
三、文档一体化管理体系的优势
传统的文档管理方法和流程存在管理成本高, 重复性劳动较多, 效率低下, 人为错误风险高等诸多问题, 文档一体化管理系统可基本弥补传统文档管理方法和流程的不足。一体化的管理系统可实现系统自动、及时著录文件, 并通过系统进行逐级签字和跟踪反馈, 并做到一次著录多次利用, 减少重复缩短整个流程的周期, 不仅提高了工作效率和准确率, 也减轻了人工质量检查的工作量。在确保质量的前提下使文件顺利地、更快地交付现场。具体而言, 一体化文档管理体系具有以下几个明显的优势。
(一) 文件的无纸化流转和在线跟踪。
在文件的形成和流转设定之初可以在所有任务页签中指派流程责任人, 实现文件编校审无纸化签字, 并实现文件部门间流转的自动编号和状态跟踪。文档管理员可以从繁杂的著录和重新起文工作中解脱, 把主要精力放在文件状态的跟踪和确认、计划的落实反馈和管理上。
(二) 任务流转的逻辑自动化。
文档一体化管理系统由一系列的任务节点组成, 每个任务节点由流程拥有者指派特定的一个人或几个人完成。任务节点是工作流程的基本组织部分, 且有明确的先后逻辑关系。每个任务节点的工作职责和状态均可在线跟踪和查询。任务流转的自动化实现了接口控制在文件流转过程中的执行和落实, 明确了任务的阶段划分和责任归属, 便于进行任务的进度和质量控制。
(三) 计划管理平台。
一体化管理平台包括任务进度状态跟踪系统和时间表管理器。利用此工具, 可以实现核电工程具体任务项的进度状态跟踪, 并可更加便捷地管理设计三级计划, 兼具管理计划和跟踪活动的功能。核电工程的四级计划与IED图纸和图册IED图纸相关联, 并能够通过跟踪IED图纸状态实现跟踪任务完成百分比。
四、结语
设计文件优化 第3篇
随着互联网、物联网、云计算等信息与通信技术的快速发展, 信息系统中的数据量呈几何级数增长。据统计, 21世纪后, 人类每18个月产生的数据量是之前产生的所有数据之和。大量的数据一方面为信息的获取提供了便利, 另一方面, 也对数据存储技术提出了更加严峻的挑战。
在此背景下, 分布式存储系统应运而生, 它具有海量数据存储、高扩展性、高性能、高可靠性、高可用性的特点, 成为当今存储研究与应用的热点。然而, 文件系统的主要任务是管理和完成在外存中存取和搜索文件的操作, 并提供透明方便、高效安全的外存应用接口, 核心算法是确定磁盘或分区上的文件存储方法和数据结构, 即在磁盘上组织文件的方法。对于普通计算机使用者来说, 通常无法介入文件系统的核心态进行优化和改进, 但可以通过应用程序, 研究和设计高效的用户态文件存储管理算法, 包括负载均衡、存储资源分配、文件索引、目录结构优化等, 以改善系统访问的总体响应时间。
本文分析了现有主流文件系统的存储特征, 分析了影响文件读取性能的因素, 针对气象水文应用中, 大量常规观探测报文批量访问出现的低效问题, 研究文件存储特性, 通过实验跟踪了目录结构对读取效率的影响, 给出了一种高效访问文件的方法。
2 文件系统存储特征分析 (The file system storagecharacteristics analysis)
文件系统是操作系统的重要组成部分, 由与文件管理有关软件、被管理文件以及实施文件管理所需数据结构三部分组成, 根据系统运行和部署的方式, 可分为本地和分布式两种。
2.1 本地文件系统
NTFS (New Technology File System) 、FAT (FileAllocation Table) 、EXT (Extended File System) 是当今最为广泛使用的文件系统, 主要管理本地文件。NTFS和FAT多在WINDOWS操作系统中使用, EXT多在LINUX操作系统中使用。其中, NTFS文件系统所有的数据, 包括系统信息, 如引导程序、记录整个卷的分配状态位图和用于文件定位和恢复的数据结构等都以文件的形式存在, 而且文件和目录是以数据库进行组织的。
NTFS卷中的任何一个文件均由位于MFT表中的文件记录来完全描述, 主控文件表MFT是NTFS中最重要的系统文件, 它是一个关系数据库, 由文件记录的数组组成, 磁盘卷上的每一个文件都有一个文件记录[1]。
记录描述文件的第一个记录称为基本文件记录, 如果一个文件无法被一个基本文件记录完全描述, 系统会在MFT表中继续为该文件分配一个或多个文件记录, 这些文件记录称为扩展文件记录。
NTFS文件系统中文件夹与它所包含的文件或文件夹的关系是通过索引来建立的, 一个文件夹下文件的索引在父文件夹MFT记录的0X90属性或数据运行中, 一个文件夹下所有文件的索引构成一个B+树的结构, 这种结构适合快速查找。
三种典型文件系统的存储特性比较如表1所示, 从中可见, NTFS的所有复杂度最小, 支持的操作系统最多, 也是目前应用最广泛的本地文件存储系统, 因此本文的实验部分主要针对NTFS进行了研究。
2.2 分布式文件系统
分布式文件系统DSF (Distributed File System) 是指文件系统管理的物理存储资源不一定直接连接在本地节点上, 而是通过计算机网络与节点相连。HDFS是当今最为广泛使用的分布式文件系统, 它被设计成适合运行在通用硬件是一个高度容错性的系统, 能提供高吞吐量的数据访问, 非常适合大规模数据集上的应用[2]。
HDFS主从式的架构极大地简化了分布式文件系统的结构, 文件系统所能容纳的文件数目取决于控制节点的内存大小[3]。这就导致了HDFS对海量小文件支持不理想, 虽然已有技术通过小文件合并来经行优化[4], 但这一瓶颈始终限制了其在海量小文件存储中的应用。因此HDFS在海量小文件存储应用效率还不是很高。
3 文件存取效率分析 (File access efficiency analysis)
3.1 影响存取效率的因素
不同的文件系统采用不同的索引方式进行文件定位。在NTFS文件系统中, 定位文件步骤由图1所示。
设文件系统定位时间为T1, 与文件系统本身有关;遍历B+树时间为T2, 与B+树的结构有关;磁盘的控制及访问时间为T3, 与计算机的硬件性能有关。一个文件的读取时间为TS, 则
3.2 读取效率优化方法
在文件系统与计算机硬件条件固定的情况下, B+树的结构对文件的存取效率影响至关重要。因此, 如何减少公式 (1) 中T2是提高文件检索效率的关键。
以NTFS为例, 目录中, 文件索引放在父目录的MFT记录的0X90属性中。一个文件的MFT记录大小为1kB, 当父目录下的文件不断增加而生成新的索引项, 父目录MFT记录没有足够的空间存放时, 会按照B+树的节点分裂规则进行分裂, 产生了两层的B+目录结构。当文件夹下的文件数量一直增加到一个临界点, 两层的B+树目录不足以存放所有的索引项时, B+树第二层的一些节点会根据B+树的分裂规则分离出叶子节点, 自身变成非叶子节点, 此时变成了三层B+树结构[5]。
树的深度对检索的效率有着极为关键的影响, 理论上, B+树的层数越大, 检索文件的所需的遍历时间将越长, 但定量的分析未见文件报道。不同的文件数量下系统中目录会产生不同的树结构, 从而对对文件的检索效率产生影响:
第一层B+树存放的索引项数目为:30
第二层B+树存放的索引项数目为:900
第三层B+树存放的索引项数目为:27930
4 实验及分析 (Experiment and analysis)
在第3节中, 已讨论了读取效率的影响因素, 式 (1) 中T1与文件系统本身有关, 视为定量, 为了减少对T2的影响, 在实验中将文件进行连续的写入以控制T3。因此, 通过测量TS, 便可间接得到目录组织结构对T2的影响。
结合气象水文应用中, 常规观探测报文特点, 本文对小文件在计算机中的组织形式对检索效率的影响进行了实验。将大量的小文件连续写入计算机, 将其组织在不同的目录结构中, 编程实现了对每个文件的遍历, 遍历完成后自动记录时间。
4.1 实验环境
操作系统:Microsoft Windows Server 2003;计算机系统配置:CPU为Intel (R) 、Xeon (R) 、1.86GHz, RAM为2.00GB;文件系统:NTFS;实验分区容量:30GB。
三层B+树目录结构可以存放27930个索引项, 满足一个超大文件夹下文件数量的要求。当索引项超过27930时, 会产生四层B+树结构。因此分别设计了文件数为10000和100000的文件检索实验, 代表了三层与四层B+树的结构, 也覆盖了一般大目录应用的条件。
4.2 实验分析
将1万个147kB的小文件平均存储在N个目录中, 并统计其检索速度, N的值为5、10、20、50、100、200、500、1000。用同样的方法, 我们还研究了10万个文件时的检索效率走势, 统计其结果如图2所示。
分析实验数据, 发现目录数在[20, 50]之间时, 总体检索时间处于一个最小值的区间, 因为B+树在此区间内目录结构的查找效率已达到最优, 因此要将目录数控制在此范围内才能达到最优的检索效率。
通过算法人为设置最大目录数, 从而改变系统的默认。将目录改进后与目录改进前的时间作对比, 得到图3和图4。
将本文的方法与普通方法对比可得, 1万个文件时, 性能提升了20%, 10万个文件时, 性能提升了71.3%。
综上所述, 改进后的目录在文件读取上的效率有明显, 特别是在文件数目较多时, 性能有显著的提升。
5 结论 (Conclusion)
本文针对大量文件访问时出现的性能下降问题, 对常用的文件系统的存储方法进行研究, 发现不论是集中式存储还是分布式存储, 最终的读取效率与本地数据文件的存储结构有很大关系。在基于文件名检索的文件系统中, 文件数相对于文件大小, 对于系统的访问效率影响更大。因为, 其名字空间的管理随文件数量的变化形成数据结构上的量变到质变, 这种变化使得不同操作系统隐含了最佳的目录数和单个目录下存放的文件数。据此, 以最常用的NTFS文件为对象, 通过实验, 定量分析了不同数量目录和文件的读取效率和变化趋势, 得出了一种简单易行的优化方法, 有效改善了海量文件存储访问的响应时间, 特别是存在大量小文件的情形。研究结果对于提高某些应用系统性能, 特别是自动文件保存和缓冲, 如气象水文观探测报文的接收处理和批量数据交换等, 有重要的工程指导意义。下一步将结合具体应用案例, 将本文提出的优化存储方法在不同文件系统中进行检验, 并与分布式环境下的负载均衡和备份服务相结合。
参考文献
[1]尤晋元, 史美林.Windows操作系统原理[M].北京:机械工业出版社, 2001.
[2]张春明, 芮建武, 何婷婷.一种Hadoop小文件存储和读取的方法[J].计算机应用与软件, 2012, 29 (11) :95-100.
[3]赵跃龙, 等.一种性能优化的小文件存储访问策略的研究[J].计算机研究与发展, 2012, 49 (7) :1579-1586.
[4]Bo Dong, etc.A Novel Approach to Improving the Efficiency of Storing and Accessing Small Files on Hadoop:a Case Study by PowerPoint Files.2010 IEEE International Conference on Services Computing[R].
数据库中小文件的实时存储与优化 第4篇
1 现有的小文件处理方法
1.1 结构化存储
结构化存储是在数据库中将小文件整合成一个大文件一次性写入, 将小文件的内容作为二进制字符串的大字段存入数据库中, 由于每个字段都是固定的, 而小文件则是在一定范围内变化的, 为了保证数据不因字段长度不够而丢失, 故在设计数据库时会将字段设计得相对比较大, 这样就使小文件内容的存储占据了大量的空白数据, 造成磁盘资源的浪费, 也会使数据库在进行I/O操作时操作时间变长[1]。
1.2 归档文件
归档文件是将文件合并后放入文件存档设备, 在文件系统上创建一个文件系统进行工作, 虽然采用创建归档文件来处理小文件能够降低内存的使用效率, 但创建归档文件的同时会创建一个副本, 需要同样大小的磁盘空间, 而且一旦创建后, 归档文件就不能再改变, 所以要增加或删除文件时必须重新创建文件。
1.3 文件优化器技术
在分布式文件系统上设计一个小文件优化器, 将小文件在优化器中进行合并, 并且建立索引, 这样所有操作都在优化器中完成, 而大文件直接存储在文件系统, 虽然避免了海量小文件存储的麻烦, 但如果小文件索引多到无法估计, 就对优化器磁盘的容量提出挑战。
1.4 构建结构体
构建结构体是将相同扩展名的小文件进行合并, 元数据存储于结构体的成员中, 通过建立结构体中各文件间的存储索引[2]。访问时只需读取要查找文件的扩展名, 然后访问名称节点, 名称节点根据该扩展名返回一个索引块列表;最后用户根据这个块列表访问相应的数据结构体, 在数据结构体中根据元数据进行截取, 查找到原先的小文件进行截取并返回。虽然将多个小文件合并成一个大文件的方案能使原先小文件占用的名称节点服务器的内存成倍数地降低, 但是由于结构体在定义时已经设定了成员的大小, 所以对于同类型但大小不一的小文件, 传统的合并方法会浪费大量的存储空间。
2 基于数据库处理小文件的方案
在归档文件方法和文件优化器处理思想的基础上进行改进, 能够使文件优化器的功能由传统的结构化数据库来实现。数据库能存储海量块小的元数据, 能快速建立索引, 检索速度比较快;而分布式文件系统可以多个存储磁头并行读写, 文件的存储和读取带宽较大, 能够突破数据库存取的I/O瓶颈问题。文件系统与数据库系统各尽其能, 弥补了对方的不足[3,4]。由于实时存储系统在这一时刻和下一时刻传入的文件类型可能不同, 不属于同一个业务, 可以根据他们不同的访问字段来对部分常用字段建立非聚集索引, 在不过分影响插入效率的前提下提高用户查找文件的速度。
2.1 文件的合并机制
在合并文件时需要创建文件头, 记录大文件中包含的小文件个数以及每个小文件的大小, 并且与小文件放置在同一块大缓存内, 在数据库中记录文件的元数据信息及相应的大文件和在大文件中的具体位置, 与构建结构体进行文件合并的方法相比, 创建文件头的合并机制更适合于文件大小有变动的海量小文件的合并, 在进行文件读取时通过查询数据库来获取文件的逻辑地址并且对文件进行访问。
2.2 优化思想
首先, 创建一个Ping File的类, 其中包括:Name:大文件的文件名称;size[count]:用于记录每个小文件的大小;*addr[count]:用于记录每个小文件的内存地址;timecount:用于记录当前Ping File存在的时间;current:用于记录当前状态传入的参数, 要求存入Ping File的相对位置。count表示大文件中小文件数量的上限, timelimit表示等待时间的上限, 当等待时间或数量达到上限时, 开启线程将Ping File中小文件的缓存按照表1的结构形式合并为一个大缓存并存入到文件系统中, 提交本次数据库的事务, 完成一次小文件的合并及其元数据的入库。程序接收到传入的小文件, 根据传入的相关参数将文件块存入大的缓存区内, 并将小文件在大文件中的相对位置和大文件的命名作为元数据, 放在数据库事务中, 以便保持数据库和文件系统的一致性, 然后继续等待下一文件的传入。当缓存区的文件达到合成条件时, 将缓存块生成数据文件存放在文件系统中, 数据库再次提交事务 (见表1) 。
2.3 文件的读取过程
在读取文件时, 首先根据查找信息在数据库中查找相应的数据条目, 如果找不到就直接返回, 如果找到就遍历所有的结果集, 找到大文件的地址以及小文件在大文件中的相对位置, 然后对大文件进行解析, 根据小文件的存储位置在缓存中取出小文件并返回给用户, 完成文件的读取操作。
3 实验测试及结果
使用本地文件系统将300个不同的图形文件 (32KB至512KB不等) 进行合并, 之后对其进行逐一读取, 最后得到的图形文件与原文件完全相同, 其可行性得到了验证。表2为512KB大小不同数目的小文件合并读取的时间对比 (时间为十次测试的平均值, 每次读取的是第30个小文件) 。从图1可以看出, 合并与读取所用时间基本和合并个数呈线性关系。
4 结论
针对文件系统实时存储海量小文件不方便, 提出了基于数据库的小文件合并方法, 即对大量小文件的数据进行批量处理, 在保证存取前后系统的稳定性和文件正确性的前提下, 大幅度提高了文件系统对小文件存储效率。通过文件系统与数据库的结合, 解决了文件系统的检索瓶颈和数据库I/O瓶颈问题, 减少了存储时间。但是需要指出的是, 由于进行了文件合并, 如果要对单个小文件进行修改操作, 则需要对大文件中的片段进行解析、扩展或者缩减, 会造成单个小文件更新操作的不方便。所以, 该方法适用于量多块小、时间分布均匀且更新频度较小的数据仓库类的工作业务流程。
参考文献
[1]江柳.HDFS下小文件存储优化相关技术研究[D], 北京邮电大学, 2010.
[2]http://hadoop.apache.org/mapreduce/docs/r0.21.0/hadoopp_archives.html.
[3]刘小俊, 徐正全, 潘少明.一种结合RDBMS和Hadoop的海量小文件存储方法[J].武汉大学学报, 2013 (1) :27-31.
P2P文件分发的遗传算法优化研究 第5篇
P2P文件共享系统已成为互联网上的主流应用之一,对等用户参与的随意性带来了系统可用性、数据可用性问题。该类问题在国内外已有一些相关研究,如文献[1]提出一个数据复制的策略,来提高P2P的数据可用性;文献[2]通过分析P2P文件共享系统的运行日志,研究活跃型客户对系统可用性的影响;文献[3]通过增加系统中数据的副本数量,提高数据的可用性等。因大型网络而产生P2P计算,在这类系统中,某节点复制文件并不妨碍其它节点也复制该文件,但是提供文件的公共存储池需付出昂贵代价。在给定的时间内,随着参与者的增加,共享文件的提供者也应伴随着不断地增加,才会有满意的性能。这类文件可用性的优化问题,目前未见文献提及过应用遗传算法。
该问题虽然可以用很多优化技术解决,但因为它包含大量的参数且需用到整数规划,所以解决起来较难。而遗传算法是较少需要领域相关知识的进化技术,容易实现且健壮,已在P2P中有一定的应用,如文献[4,5,6]论述的解决P2P系统的相关问题等。由于遗传算法适合许多优化问题,且在P2P计算中有广阔的前景,所以在文件可用性优化问题上,考虑引入遗传算法加入解决。
1 问题描述
在一个P2P文件共享系统中,给出以下参数:
I—节点数;
Pi—节点i的上传概率;
Si—节点i的共享存储;
J—表示不相同文件的数量;
第j个文件的大小;
第j个文件的请求概率;
一个0-1变量,当节点i包含文件j的副本时等于1,否则等0。
那么,命中概率由式(1)表示:
且满足条件:
在满足式(2)条件下,式(1)最大化问题是一个整数规划,对所有的文件分发管理算法都一样,其解决办法是求出一个命中概率的上限。
现在考虑一个特珠情况,每个节点上传的概率相等,使nj表示文件j的副本数。对于这种上传概率等值的情形,问题演变为找到非负整数n1,…,nJ,使式(3)最大化。
且满足条件:
这里1指共享存储总和,如式(5)表示:
由于将存储合计为总和形式,式(3)、式(4)讨论的问题的优化结果值,实际上是在等值概率pi情况下命中率的一个上限。不过,很难确定能否找得到这个上限,事实上证明对重要的特殊情形,如当所有文件大小相同时,则该上限非常精确。该优化问题可以用动态规划有效地解决。
其实,当总存储S字节和文件j,…,J需要进行复制时,以表示不命中概率的最小值,则标准动态规划可以由式(6)表示:
这时,最佳复制n1,…,nJ解决式(6)描述的问题。
必须指出,当节点中的两个分区集合使用的上传概率不相同时,仍能采用该方法求出上限。这种情形下,可以使用二维动态规划方程,只不过计算的复杂程度增加了。
另外,在给定的时间内,P2P中对象的副本数量均为整数。将该完整性约束废除后,可以有效地求出大规模P2P系统中自适应管理算法性能的这个上限。
2 遗传算法的应用
遗传算法能够进行全局最优搜索,它所采用的种群搜索策略不依赖于目标函数的梯度信息,因此比传统的优化方法有更大的适用范围,在解决工程复杂问题优化中,愈来愈显示出其优越性。
现在的问题是求出J个正整数n1,…,nJ,使式(3)在满足式(4)条件时最大化,使用简单遗传算法解决该问题。
2.1 编码
编码时使用正整数向量,向量的构成形式,如下图1所示。
必须指出的是,在评价阶段,二进制串被解码还原成相应的正整数,用来建立适应度函数。
2.2 交叉算子
交叉算子属于遗传算子,处理对象为二进制串,交叉算法由以下步骤组成:
(1)用交叉概率随机选出两个双亲p1和p2,
(2)随机地选择[1,2,…,],作为交叉点的一个数,l1是第一个双亲的长度。第一个双亲的染色体划分成三个子染色体:左边放置的k1-1左边部分,右边子染色体放置k1+1的右边部分,中间一个放置和之间部分。
(3)随机地选择[1,2,…,],作为交叉点的一个数,l2是第二个双亲的长度。第二个双亲的染色体划分成三个子染色体:左边放置的k2-1左边部分,右边子染色体放置k2+1的右边部分,中间一个放置和之间部分。
(4)通过交换两个双亲的中间子染色体,交叉产生两个后代。
另外,交叉算子还需验证产生的新个体是否满足问题的约束,如果不满足,它使用修补策略,重复地进行直到约束满足为止。
2.3 变异算子
变异算子与交叉算子类似,也属于遗传算子,处理对象为二进制串,单点变异算法由以下步骤组成:
(1)使用变异概率随机选出单个双亲P。
(2)随机地选出k∈[1,2,...,l],生成变异点的一个数,l是双亲的长度。选出的元素用补充值替换。
与交叉算子类似,变异算子验证一个变异后的新个体是否满足问题约束,如果不满足,它也使用修补策略,通过重复地变异产生新个体,直到约束满足为止。
2.4 其它讨论
首先定义出初始种群。通过由图2描述的形式产生个体,在取值范围内随机获取的正整数参数生成。并且,每个体均满足式(4)给出的约束条件。
在产生初始种群过程中,不合适的个体被丢弃,继续随机产生个体直到要求的个体数确定下来并且不违背约束条件式(4)。
确定双亲种群(第一次为初始种群)以后,根据它们在搜索空间中的特性对所有个体评价,主要任务是计算由关系式(7)给出的目标函数。
选择算子使用时根据适应度值进行,采用转轮选择方法,根据与个体适应度值成正比的概率选出新的种群。生存概率等于给定个体的适应度,除以所有个体的适应度相加后的和得到的商。在算法实现中,可采用简单精英选择方法。这保证了最优的个体生存下来。经过组合算子处理后,一个新的种群创建出来。依据双亲种群的遗传值计算所有的参数,没有新信息加入到种群中,而仅仅是旧信息重新组合。
为了将新信息引入种群池,可使用变异算子;为产生合适的后代,对交叉算子和变异算子的修改,也按遵守约束条件式(4)的方式进行。
3 案例分析
现将给出一个P2P网络的以下参数:
·文件总数:J=250;
·节点总数:I=10;
·每个节点共享的存储Si是等量的;
·文件大小相同;
·第j个文件的请求概率:
·第i个节点上传的概率:
所求问题为:寻找J个正整数nj,使关系式(7)给出的命中率取最大值。
所求未知数nj取值范围在区间[1]中,个体为250个整数的向量,算法使用最多含有100个体的种群,约束条件变为关系式(8)。
由于bj大小相同,并且它们的取值相对S已确定,所以约束条件等价为:
适应度值等价于目标函数式(7)。初始化程序持续随机地生成整数向量,直到由式(9)给出的条件满足为止。交叉算子和变异算子使用修补策略,这些算子重复使用直到约束规则满足为止。
现在分两个不同的情形进行讨论。
3.1 情形1
算法使用一个含有50个体的种群,并且进化30代。运行之后,适应度值给出较高的命中率:
,并且:
满足约束条件。
在算法各代中适应度值的进化,如图2示。
3.2 情形2
算法使用一个含100个体的种群,且进化30代。运行之后,适应度值给出更高的命中率:
,并且:
满足约束条件。
在算法各代中适应度值的进化,如图3示。
将图2和图3对比可以看出,适应度值大体上显示出一代比一代有所增加。并且,个体的数量越多,算法表现越好。
4 结束语
该文讨论了简单遗传算法如何应用到P2P内容分发的文件可获性的优化设计中,结果表明遗传算法适合解决这一问题。不足之处可能在于大型网络对时间性能有更高的要求,但近年来不断增长的计算能力足以使该问题可忽略。因此,在很多应用中有效地使用随机算法,如该文讨论的问题,完全是有可能的。
将该算法应用到其它更复杂的网络,做一些测试研究,并将结果与其它算法做比较,是未来的工作。
参考文献
[1] Nazir S,Hauswirth M.Using Monte Carlo simulation for improvingdata availability in P2P network.Proceedings of the Fourteenth Inter-national Database Engineering&Applications Symposium,Montreal,QC,CANADA,August,2010
[2]刘翰宇,肖明忠,代亚非,等.活跃型用户对P2P文件共享系统可用性的影响.软件学报,2006;17(10):2087—2095
[3]杨哲,李领治.一种面向可用性的P2P数据分发方法.计算机工程与应用,2010;46(14):103—106
[4]赵慧娟,王汝传,等.基于遗传算法的P2P资源发现算法.南京邮电大学学报(自然科学版),2007;27(4):85—89
[5]安玉艳,赵煜辉,杨德国,等.基于遗传算法的P2P流媒体多播模型.计算机工程,2007;33(12):217—219
设计文件优化 第6篇
VRML[1]被称为继HTML之后的第二代Web语言,作为一种建模语言,其是用来描述三维物体及其行为的,可以构建虚拟境界(Virtual World)、集成文本、图像、音频、MPEG影像等多种媒体类型,还可以嵌入Java、ECMA Script等语言编写的程序代码。VRML的基本目标是建立因特网上交互式三维多媒体对象,基本特征包括分布式、三维、交互性、多媒体集成、境界逼真性等。VRML的出现使得虚拟现实像多媒体和因特网一样逐渐走进我们的生活,多媒体、虚拟现实与因特网技术共同构成了以VRML为基础的第二代万维网络。
VRML是一种文本语言[2],任何文字编辑程序都可以编辑VRML场景模型文件。但是基于文本格式的VRML文件包含了大量的冗余信息,文件体积相对比较庞大,占用了较多的存储空间,影响网络传输速度,导致其传输速度较慢及下载时间过长。
对于三维模型的精度和复杂度要求较高的大型复杂VRML场景设计一般采用3DS MAX, Maya, TrueSpace, Softimage, Matlab等用于PC平台的超级3D软件来进行高精度渲染建模和刚体、柔体动画等工作,通过插件转成VRML文件,此时VRML文件较大,难以实现用户与VRML世界进行流畅的交互。为保证人们能顺畅地传输与浏览三维场景,VRML文件优化技术成为必然[3]。
本文提出了一种基于优先级的VRML文件优化技术PBOT。与传统技术相比,它简化了文件结构,缩小了文件尺寸,使之更有利于网络传输与用户浏览,同时处理后的数据信息不影响虚拟可视化的显示质量。
1VRML优化技术
目前国内外关于VRML优化技术的研究主要集中于两个方面:减少文件大小、提高文件执行效率。
由VRML工作方式可知,VRML将所有描述三维的指令文件(*·wr1)以及其它媒体文件,如贴图、声音和视频文件一次性下载到客户机上,再由客户机解释、执行指令并渲染变化的场景。因此,优化VRML文件需要考虑以下两个因素:一是下载速度,即文件的大小;二是渲染速度,即文件的执行效率。
1.1有效地描述场景,减少文件大小
(1) 使用模型优化器[4]
采用3DS MAX提供的模型优化器(Optimize helper),使用“合并相邻平面”的算法将平面之间夹角小于某一指定值的面合并,从而减少多边形的数量。
(2) 使用NURBS
NURBS(非均匀有理B样条,Non-Uniform B-Splines)是一种在3D空间中,用曲线和曲面表示物体轮廓和形状的方法,简化了对复杂曲面的描述,使得3D模型文件变得很小。
(3) 贴图优化
一般在可能的情况下,多利用纹理代替多边形为模型指定纹理贴图可以获得更加逼真的视觉效果。
(4) 使用压缩文件[5]
VRML文件格式支持Zip压缩,用gzip工具软件进行压缩,也使模型文件体积进一步缩小,减少对网络带宽的要求,许多浏览器支持自动解压缩且不影响浏览效果。另外,消除文件中空白间隔、使用文本节点、浮点数取整、尽可能使用法线自动生成也可有效减小VRML文件的大小。
1.2提高VRML文件的执行效率
(1)使用LOD[6]
LOD意为“细节层次”(Level of Detail),指在制作场景中的模型时分别制作复杂程度不同的几个模型(面数不同),浏览器会根据用户的视点离该物体的远近自动显示相应的模型。
(2)有效使用脚本
有效使用脚本可以提高渲染速度,隐藏多余的物体、动画、灯光。当脚本控制的物体不可见时,VisibilitySensor节点可用来加速脚本的描述。
2PBOT技术
在VRML定义的几何模型中,由点连接成线,线组合成面。线和面的某些属性特征是包含在点的属性特征之中的。因而,对点属性特征的描述是造成VRML文件庞大的主要原因之一。由此,对点及其属性特征的优化处理是本技术的核心。
基于以上分析,PBOT技术从实际需要出发,在保证虚拟可视化显示质量的前提下,保留重要性较高的点及其属性信息,删除重要性较低的点及其属性信息。为了判断点的重要程度,本文分别提出点的相关度(点与其他点的邻接程度)以及点的价值(点所包含的细节信息)这两个概念,综合考虑这两个因素后构造出点的优先级计算公式,根据公式计算该点的优先级,将得到的优先级数值与给定的阈值P做比较,若大于等于P则保留该点的信息,否则删除该点的信息。剩余的点根据各自的属性信息在传输后还原到各自的位置,构成了经过PBOT优化的VRML文件。该技术缩小了文件的尺寸,减少传输时延和用户下载时间。
为了优化三维文件模型,去除某些冗余点及其属性信息,按照分层思想,假设每个点及其属性值由三元组表示Nij(S(xij,yij),ρij,wij),(其中i代表层数,j代表该层第j个点;假设已知三维曲面S的方程式为S(x,y)=(x,y,f(x,y)),S(xij,yij)代表Nij的坐标值)。下面分别介绍ρ和w的定义。
2.1点的相关度ρ
本文借鉴二维图形中广度优先搜索(WFS)遍历顶点的思想,提出了一种新的遍历三维图形中点的算法,可将点的遍历扩展到三维空间[7]。通过类似的树形结构记录每个点的邻接点信息,计算该点的入度和出度得到与之相连的邻接点个数,从而得到该点的相关度。图1是一个简单三维模型,以该模型为例说明点的遍历过程。沿某个坐标轴找出坐标值最小点,过此点作该坐标轴的平行线,以该辅助线为初始路径开始搜索。图2中实线代表直接相连,虚线代表间接相连。假设v1的坐标值最小,首先对它进行广度遍历,与其直接相邻的为v2,v4,v5,v9,图2(a)为从v1搜索得到结果;其次,图2(b)表明对v2进行广度遍历,找出其邻接点v3,v6,v10;图2(c)为其余点依次遍历,得到的包含此图形所有点的分层结构。统计各点的入度和出度就可得到它对应的邻接点个数。
设第i层第j个点为N(i,j),其中1≤i≤m,1≤j≤n,m表示总层数,n表示每一层的总点数,则第i层的点数
定义任意点的度为TD(i,j),其值等于入度之和加上出度之和。其为:
则点N(i,j)的相关度ρ(i,j)为该点的度与总点数的比值:
2.2点的价值w
目前关于三维模型的优化技术有很多,如何在保证处理后显示质量的前提下,达到VRML文件尺寸最小化,是研究的主要目标。为判定各种优化技术的可靠性及效率,必须要有优化判据。优化判据可以用重要性度量来衡量,包括距离误差度量、曲率度量和特征角度量等指标。综合考虑以上因素,其近似模型的全局误差为:
∑x,y,z‖H(x,y,z)-(τM)(x,y,z)‖ (3)
其中,H(x,y,z)为在高度场下原有模型中(x,y,z)点处的高度值,(τM)(x,y,z)为近似模型中该点处的高度值。显然,全局误差越小,近似模型的保真性和保细节性就越好,但随之而来的是计算量和算法复杂性的增加。在优化过程中,所删除的点必须有尽量小的全局误差。
对于三维模型而言,要使优化模型的保真性和保细节性好,主要是要保证优化模型在曲率变化大以及不可导的点、线、面处尽量具有与原模型一致的数据。对于曲面上的每一点来讲,用曲率来描述该点所表征的细节信息的多少是比较合适的。曲率大的细节丰富;反之细节就简单。因此曲率大的点具有较高的价值,曲率小的价值较低[8]。
已知曲面S的方程式,根据微分几何的相关知识,曲面S上Nij点的高斯曲率和平均曲率分别为:
式中:fx、fy、fxy、fxx、fyy分别是f(x,y)的一阶和二阶偏导值。和高斯曲率相比,平均曲率显得更为准确,因此选其作为点的价值,即w(i,j)=w(i,j)A。
2.3优先级的确定
P_ρ(ρ)与P_w(w)分别表示随ρ和w的变化,点的优先级变化趋势。如式(6)和式(7)所示:
综合考虑ρ和w变化的影响,定义点Nij的优先级如式(8)所示:
Pij(ρ,w)=P_ρ(ρ)+P_w(w) (8)
式中α,β(0≤α,β≤1)[9]可根据模型特征和实际要求选取,以合理地调整优化效果。
Pij(ρ,w)是一个模拟变量,本文只需要对Pij(ρ,w)值进行比较分析,因此不需要经过量化处理输出成二进制形式的数值。由上述公式可以看出,Pij(ρ,w)越大,点的优先级越高。将得到的Pij(ρ,w)与给定的阈值P做比较后得到优化后的文件,在尺寸上有较为理想的减小。
3性能分析
3.1仿真环境
主要环境是两台装有Linux 9操作系统(内核2.4. 20-8版本,含有Netfilter组件)的X86系列个人PC,系统内存为2G,硬盘160G,显示器的分辨率为1024×768,刷新率为85Hz。
以下通过仿真实验来检测该优化技术的可靠性和效率。两台主机通过因特网传输VRML与PBOT文件,比较场景的可视化质量、传输时延和控制开销。
3.2结果分析
本仿真实验中得到的VRML原始模型与PBOT优化模型显示质量的比较如图3所示,它们在视觉上几乎是无法分辨的,但该VRML文件大小为126KB,而PBOT文件大小为5KB,可见经过优化的文件体积只有原始文件的4%。
由于人眼的分辨能力是由视网膜上感觉接收器的间距决定的,因此存在一个观察角度,在这个角度下,眼睛恰好能分辨两条线,而更精细的结构则不能识别。
根据衍射理论,人眼的角分辨率θ可表示为:
其中d表示瞳孔直径,λ为照明光波长。在良好的照明条件下,人眼的角分辨率为1’。当θ小于1且越接近于1,表示一定区域内人眼可识别的再现立体图像的点数越多;宏观上表现为观察者观察到的图像轮廓越细锐,细节越丰富,视觉效果越好;当θ大于1时,表示系统再现的立体图像中存在一些人眼无法识别的点,这样会造成系统分辨率的浪费,增加不必要的成本。因此,为本文的可行性提供了理论依据。
Pij(ρ,w)具有自适应性,对于给定的P,用户可以根据模型特征和实际要求选择α,β(0≤α,β≤1),来实现三维场景的高效传输与浏览。在仿真实验中,α,β越小,Pij(ρ,w)相应比较小,所以PBOT文件尺寸较小,场景相对模糊;而α,β较大时,Pij(ρ,w)也相应较大,PBOT文件尺寸越大,场景越逼真。因此,基于以上特征,该方法可以运用到许多实际需要中。例如保安监控录像只需要简单的模型来分辨是否有嫌疑人等进入,而在其他一些对分辨率要求很高的环境中,则需要较为清晰的模型。
图4是PBOT与VRML传输时延的比较,本文采取简单的端到端时延来验证本方法的效率。从图中可以看出PBOT在传输时延上有很好地改善。
图5是控制开销的比较,与VRML相比,PBOT的控制开销增加。由前面的分析可知,将点扩展为三元组形式,计算点的优先级会带来一定的开销,终端需要花费一定的计算时间,但在互联网终端内存资源与计算能力迅猛发展的条件下,是完全可以接受的;而如今网络资源非常宝贵,网络传输带宽已经相当拥挤,如何更好地优化VRML文件使之更有利于网络传输、减少传输时延和用户下载时间,已经非常富有实用价值。
4结语
本文所提出的PBOT技术综合考虑相关度和价值两个方面来计算点的优先级并对其进行数值比较,减少了各个VRML文件的大小,从而很好地处理了传输时延长与下载速度慢的问题, 减轻了网络链路压力。通过上述努力,传输时延和下载时间在某种程度上得到了控制。同时,处理后的数据并不影响虚拟可视化场景的显示质量。这一技术将被进一步研究和推广,被用于探索其他优化技术,从而提高三维数据的传输效率。
虽然使用优先级选择后能使文件体积大为减少,传输速度变快,从一定程度上缓解了网络链路的压力,但模型中还是存在很多冗余点信息,存储这些点及其属性信息依然占用了大量的资源,因此还有其他更优的方法能对VRML文件进行更深层次的优化,效果也会相当好,这将是以后研究的重点。
摘要:针对VRML文件描述的复杂场景模型数据信息量巨大,不利于网络传输与浏览的问题,提出一种基于优先级的VRML文件优化技术PBOT,并从相关度和价值两个方面综合考虑了点优先级的选取原则,在保证虚拟可视化显示质量的前提下,对该类数据进行优化处理。仿真实验结果表明PBOT可有效地提高数据传输效率,减轻网络链路压力。
关键词:优先级,虚拟现实建模语言,三维模型,优化
参考文献
[1]The VRML Consortium Incorporated.The Virtual Reality ModelingLanguage International Standard ISO/IEC[S].The VRML ConsortiumIncorporated,1997.
[2]Isenburg M,Snoeyink J.Coding with ASCII:compact,yet text-based3D content[C]//Proceedings of 3D Data Processing Visualization andTransmission,2002:609-616.
[3]Deering M.Geometric Compression[C]//Computer Graphics(Proc.SIGGRAPH),1995.
[4]汪兴廉,牛燕明,邓谆谆.VRML与Java编程实例讲解[M].北京:中国水利水电出版社,2001.
[5]朱攀蓉,郭阳明,王志旭.基于VRML文件的二进制压缩编码技术研究[J].计算机应用,2005(5):1128-1132.
[6]Takahashi S,Fujishiro I,Takeshima Y.A Feature-Driven Approach toLocating Optimal Viewpoints for Volume Visualization[C]//Proceed-ings of IEEE Visualization’05,2005:495-502.
[7]Berg M D,Kreveld M V,Overmars M.Computational Geometry:Al-gorithms and Applications[M].2nd ed.Springer-Verlag,2000.
[8]Wijk J J V.The Value of Visualization[C]//Proceedings of IEEE Vi-sualization’05,2005:79-86.
《文件大管家》教学设计 第7篇
1. 教学内容
本课是苏教版小学信息技术上册第二十九课的内容, 主要通过学习文件分类整理、删除文件 (夹) 、回收站等操作对文件进行管理。在此之前, 学生已经学习了新建文件夹、复制文件 (夹) 、移动文件 (夹) 的知识, 所以本课的知识是一个综合运用、螺旋上升的内容。通过本课的学习, 不仅要让学生掌握文件 (夹) 移动删除、还原、清空的操作方法, 更重要的是要让学生养成分类整理文件的方法和习惯, 以便能有效方便地查找使用这些文件。同时也希望通过本课的学习, 让学生在平时生活学习中养成良好的整理习惯。
2. 学情分析
(1) 年龄及心理特点:本课教学对象是已经学习信息技术一学期的三年级学生, 逻辑思维和分析能力不是太强, 注意力难以持久集中, 多数学生对枯燥的文件操作不感兴趣, 因此在课前设计了学生易于接受的情境导入, 用学生感兴趣的直观的图片资源进行分类作为任务驱动, 在深化知识环节中, 让学生对动物图片文件夹再分类整理, 分析不同的分类方法。在愉快的课堂氛围中, 激发学生的学习兴趣, 从而达到培养学生信息素养的目的。
(2) 前期知识水平:已经掌握了画图软件的基本操作、简单的文字操作;已经初步认识了文件和文件夹, 并学会了为文件改名, 学习了如何新建文件 (夹) 、复制文件 (夹) 、移动文件 (夹) , 但是对如何合理利用文件夹还不是很清楚, 因此本节课将在原有知识的基础上进一步学习。
3. 教学方式与教学手段
任务驱动:在这堂课中设计了二个任务。一个是整理已有的图片库资源, 另一个是将动物图片库文件夹再次分类。将枯燥的知识练习暗藏于生动有趣的任务之中, 不但使学生情绪饱满, 而且将学到的知识用于解决实际问题中, 有利于对新知识的理解、掌握和熟练运用。
合作学习:初步整理好文件后, 再引导学生将动物图片资源按其内容从不同角度分类整理, 研究如何合理利用文件夹管理文件。培养学生合作意识的同时, 了解不同的分类方法。
自主学习:整理文件、删除文件 (夹) 、还原文件 (夹) 等新知识不直接给学生, 而是让学生自己上机去探索, 这样学生经过自己努力, 找到的答案记忆会比较深刻。
4. 学习环境与资源
懒羊羊整理房间的动画;图片库资源;局域网;极域电子教室。
二、教学目标
1. 知识与技能
(1) 能根据实际需要选择合理的分类方法。
(2) 能根据实际需要创建文件夹、移动文件 (夹) 。
(3) 掌握删除文件 (夹) 的操作方法。
(4) 掌握回收站的操作。
2. 过程与方法
(1) 通过组织文件管理活动, 学会管理自己的文件夹。
(2) 通过自主探究回收站的相关操作, 提高信息素养, 养成良好的信息道德。
3. 情感态度与价值观
(1) 认识文件管理的作用, 养成良好的计算机文件管理习惯。
(2) 通过“删除”操作的教学, 使学生认识到要慎重对待“删除”操作, 要负责任地使用计算机。
4. 教学重点
分类整理文件;回收站的操作。
5. 教学难点
根据需要合理地分类管理资源。
由于学生年龄小, 对于分类管理资源不容易理解, 而且在平时的应用过程中, 缺少意识, 因此在本节课中将分类管理资源定为难点。为了突破难点, 通过小新整理房间这个情境, 引出分类管理资源概念。通过整理图片库资源, 学会将各种文件进行合理分类的方法。
三、教学流程示意
四、教学策略
本节课共设计了两个任务, 首先是将图片库资源进行分类整理, 将重复无用的文件删除并将误删的文件恢复。另一个是分析动物图片, 将它们再分类方便查找。第一个任务是将图片文件按内容存放到合适的文件夹中, 让学生初步体验整理文件, 因为是移动到建好的文件夹中, 降低了难度, 学生达成度应该比较好。第二个任务是在了解建文件夹重要作用的基础上, 通过小组讨论与自主学习相结合的方式讨论出根据文件内容从不同角度分类的方法, 并进行分类整理, 是对前一个任务的巩固提高。这样将枯燥的知识练习暗藏于生动有趣的任务之中, 不但使学生情绪饱满, 而且将学到的知识用于解决实际问题中, 有利于对新知识的理解、掌握和熟练运用。
【设计文件优化】相关文章:
设计证明文件06-04
初步设计审批文件07-31
设计文件变更范文06-06
毕业设计格式文件06-22
红头文件设计范文06-01
文件复制教学设计08-03
课程设计文件实验报告02-27
装修工程消防设计文件07-02
金旺旺建设工程消防设计文件05-23
施工图设计文件审查费09-07