1) Self-heal of open files        打开文件的自修复

With this new feature GlusterFS can now self-heal replicated files even while they are op
Servers can fail in replicated mode,  recover transparently i.e. have the files housed on th
automatically self-healed.  The benefit of this feature is that Replicate use cases that also
require files to remain open for extended periods, e.g. always open VM images, will wor
better and be more reliable and available when a Replicate server fails and recovers.

2) Performance improvements in self heal       自修复过程的性能提升

2.1) Choice of self-heal algorithms      自修复的算法选择

During self-heal of file contents, GlusterFS will now dynamically choose between two
algorithms based on file size:

a) "Full" algorithm – this algorithm copies the entire file data in order to heal the out-of-
sync copy. This algorithm is used when a file has to be created from scratch on a
b) "Diff" algorithm – this algorithm compares blocks present on both servers and copies
only those blocks that are different from the correct copy to the out-of-sync copy. This
algorithm is used when files have to be re-built partially.
The “Diff” algorithm is especially beneficial for situations such as running VM images,
where self-heal of a recovering replicated copy of the image will occur much faster because
only the changed blocks need to be synchronized.

2.2) Background self-heal           后台自修复
In GlusterFS 2.0.x, if self-healing is required e.g. when a failed Replicate server recovered,
the first I/O command executed after recovery, such as a ‘ls -l’, that triggered the self-healing
would block until the self-heal operation completed.  With v3.0, self-healing is now done in
the background. Commands that can trigger self-healing will thus appear more responsive
resulting in a better user experience.  Replicated VM images also benefit from this because
they can continue to run even while the image is self-healed on  a failed server.

3) Stat-prefetch performance translator         状态预取性能模块
Stat-prefetch is a new performance translator that pre-fetches directory entires and stat
information.  The purpose of this translator is to optimize operations like ‘ls -l’, which
generates a directory read followed by stat calls on each directory entry.  Overall
performance of such commands will now be better due to directory entry stat being served
from the cached pre-fetched stat data instead of triggering a network operation to obtain the
stat information for that entry. 

4) Quick-read performance translator            快读性能模块
Quick-read is a new performance translator that improves read performance on small files.
Over a POSIX interface, files are read using the APIs lookup, open, read and close.  For a
filesystem implemented over a network, the roundtrip overhead of these calls can be
significant.  Quick-read reduces the network roundtrip overhead by delivering the file data
for such small files to the client on the first operation (lookup) on the file, with subsequent
read operations being served from the cached data.  Applications that involves lot of small
files, such as webservers, source compliation will benefit noticably from using this

5) I/O Cache   I/O缓存
I/O cache translator has been enhanced to efficiently cache very large files (> 1GB).  All
environments with large files, such as VM images, databases, genomics,
animaition/rendering in which file sizes can easily be multi-GB in size, will benefit from
this enhancement.

6) Direct FUSE device I/O           直接使用FUSE设备的I/O
GlusterFS FUSE translator now can talk directly to the FUSE device without involving any
data copying.  This leads to lower CPU utilization and better overall sysem performance.
This enhancement removes the dependency/pre-requisite of having libfuse installed on the
system for running, or building, GlusterFS.

7) Process Dump            进程转出
Process Dump aggregates internal runtime information and writes it out into a file
( /tmp/glusterdump.<pid> ).  Users can trigger it by sending the SIGUSR1 signal
( kill -USR1 <pid> ) to a GlusterFS process.  You can use this feature to dump internal
process information for debugging.  Process Dump is the first feature of the GTrace
Framework, with additional features to follow. 

8) GlusterFS Volume Generator – Self optimized configuration    gluster配置文件生成工具
GlusterFS Volume Generator (volgen) generates optimized volume configuration files for
common workloads.  It is the recommended way to create GlusterFS volume configuration
files.  By using volgen, users can quickly generate GlusterFS configuation files for their use
case and avoid common configuration errors that can occur with hand coded configuration
NOTE: Configurations generated outside the scope of volgen are neither recommended nor
supported by Gluster.

9) Re-optimized Internal Datastructures       重新优化内部数据结构
Large data structures inside GlusterFS have been reimplemented to use R-B-tree based hash
tables.  This will help improve overall system performance.


Leave a Reply

Your email address will not be published. Required fields are marked *