欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

走出误区之解惑,何谓“随机访问”? 何谓“随机读写”?

程序员文章站 2022-05-25 10:10:46
...
长期以来,我们一直都会说XXX文件系统支持随机读写,XXX数据结构或XXX开源项目支持随机访问,这种称为随机XX的叫法,其实是一种错误的说法,如果你是一位真正了解"随机读写或随机访问"的人,可能并不是太会在意这种说法,但是对于一些刚入行,或入行不久的朋友们来说,这种叫法会常常使我们感到十分迷惑和不解,按照我们汉语的方式理解,随机访问是指具有不确定性的访问,意思就是可能一会访问这里,又可能一会访问那里,而随机读写是指,随机的找一个位置,进行读取或写入数据。如果我们要是按照这样的意思理解它,那我们完全就被这种根深蒂固的叫法给误导了。



接下来散仙要冒天下之大不韪,来详细的解惑下,到底什么才是真正的“随机读写”和“随机访问”。首先,散仙要拿我们生活中都很熟悉的一个东西,来作为解惑的开端,这个东西就是我们计算机的内存条,或者用我们工程师的专业术语称为RAM,散仙不知道有多少朋友知道RAM的非缩写的全称,就像很多人知道CTO是技术总监,但是并不知道每个缩写代表着那个单词一样,不过没关系,这不是本文的重点。RAM的全称是Random Access Memory,而事实上“随机访问”就是由Random Access两个单词翻译来的,而Random在英语里不仅仅有随机的意思,还有任意的意思,如果能这样理解Random,那我们就可以更好的理解Random Access了,而Random Access真正翻译过来应该是叫做任意访问,而不是随机访问。
内存是可以*的访问,任意一个存储点的,这一点与磁盘,磁带等需要寻道,倒带才可以访问到指定存储点等存储器是不一样的,正因为磁盘访问需要计算微乎其微的寻道时间以及IO的开销,所以我们会发现存储在内存的东西的访问速度,比磁盘要快很多。


而正是恰恰由于这个寻道的原因,所以用过Hadoop的朋友们都知道HDFS默认存储的block都是64M存储的,为什么要设计的这么大,很大一部分原因就是为了减少读取时拼接块的寻道时间。

到此处,我们已经可以真正的理解所谓的“随机读写”和“随机访问”是指其支持任意一个位置的读和写以及访问,而不是像我们汉语理解的随机一个位置的读和写。或许我们理解成“随便读写”和“随便访问”都比理解成“随机访问”和“随机读写”要准确的多,当然它最准确的叫法,还是叫做“任意读写”和“任意访问”。

说了这么多,散仙并不是在这里咬文嚼字,也不是想改变大家的叫法,而只是想提示一下大家,由于一些技术文章翻译的质量实在是不堪入目,于是造成了很多读者可能被误解,导致给他人讲解的时候形成不良循环,所以建议大家要么直接看国外原版的技术书籍,要么就直接看国内的技术书籍。