存储结构的时间轴——未来档案信息结构的一种可能

在我们可以了解到的存储系统中,我所能知道的信息存储方式是版本version,但在我们社会大数据中,却没有版本,只有一个即时的信息。举一个例子,百度搜索所得到的网页快照是对一条信息的记录,从某种意义上讲,它将被视为我们互联网档案的一种。然而百度存储快照的目的不是保管档案,如果网页被更新了或被删除了,百度的快照也会随之更新或删除。而如果有一个小网站由于资金短缺最后倒闭,那么关于它的一切都将在互联网中消失!

问题的提出

而假设,如果我们有一个WEB档案馆,在存储互联网信息时所采用的存储技术大抵和百度的快照存储类似,即通过抓取资源,建立索引,保存在自己的数据库中,但和百度不同的是,WEB档案馆一方面会永久保管这些信息,即使网页更新或被删除(被删除一点值得再商量),另一方面会对信息进行整理,按照电子文件(数字档案)的管理原则进行归档。但存储系统中仍然会有问题,即对一条信息的存储占用了磁盘或存储介质的空间,而当同一条信息的新版本出来之后,会占用新的空间,这该如何管理它们呢?

已有的存储结构方式

我想现在的存储结构可能有以下几种方式:

1、建立版本索引:将同一条信息的不同版本(从代码实质来讲,是两条有联系的不同信息)建立关系索引,以明确哪一条是前面的版本,哪一条是后面的版本。

2、改变代码结构:将发生变化的信息所在原记录进行扩容,直接在信息内部记录关于不同版本的信息,在利用信息时提供版本选择,确定使用这条信息记录中的哪一部分代码。

3、云计算:将同一信息的不同版本放在互联网的不同资源服务器上,建立逻辑索引,使用时调用它们。和1不同的是这种存储方式并不一定稳定安全。

4、保留最新版本:从节省资源的角度讲,最新版本代表最为成熟的版本,归档价值最高,因此只保留最新版本,增加曾有版本的元数据,但不记录曾有版本的具体内容。

5、谁用卖给谁:将旧版本的信息作为无用信息进行贩卖,建立逻辑和物理索引,相当于转移信息所有权以保障信息仍然存在。

6、SVN式匹配管理:和2有点相似,即在原信息代码的基础上进行变化,但不同的是这种方式不是将新版本的信息原原本本的扩充到原信息中,而是通过对比新版本和原始版本的(或最相近的版本的)差异,只将有变化的部分记录下来,而没有变化(一篇文章往往大部分都不会有变化)的部分不进行记录。将这些经过变化的记录建立索引,放在信息记录的开头,使用时根据索引选择使用哪个版本。

无论用什么样的方式,其实最大的矛盾发生在一点之上:我们的存储空间不够用!

虽然电子文件的记录载体是磁介质,拥有巨量的存储能力,但是实际上还是不够用,还是不能满足人类永恒的信息记录需求。所以人类想方设法要增强信息存储的性能,以减少存储介质的消耗,使得它们能够存放更多信息。

时间轴模型的提出与阐释

笔者提出一个存储结构时间轴的模型,希望帮助学者产生一些思考。

[图片已失轶]

在存储系统中使用三维向量来记录信息,分别是信息头、信息长度、信息头时间。但实际上,信息头和信息长度确定了信息的空间占用量,它们其实也是三维的:长、宽、高。这个坐标系主要是来阐述信息头时间(时间轴)的,因此简化了空间占用量。

信息头确定了信息在磁盘或存储介质中代码的开头位置,是一个抽象为质点的值。而长度确定了信息占用量的大小。例如一条关于“天体运转”的新闻报道的信息被存储在磁盘的(1024pos,48992kb),指明了信息的开头被放在磁盘的第1024个单位处,这条信息的长度是48992kb。前文已述,空间占用量是一个三维的值,这里是将信息抽象为一个质点。

时间轴则是用以确定信息的时间与版本。对于一条信息来说,它是有生命周期的,从它诞生那一刻,到它归档进入WEB档案馆,它经历的时间即它的生命(和文件生命周期略有不同,如果归档后又创造出新版本,那它又会是一条新的信息,可以说是穿越了时空,获得了新生)。通过时间轴我们可以确定一条信息所产生的年代及它的生命周期。

关键动作:位移

时间轴的提出基本解决了同一条信息不同版本的空间占用问题的概念化,但是实际上很难确定的是,如何让这种空间占用减少的概念得以实现。我所能想到的关键性因素即位移!和一般磁盘不同的是,时间轴磁盘内部是动态的,半物理的动态。我的设想是当磁盘在运行时其内的数据(二进制代码)是在不断的自我修复,head值不断向坐标中心靠拢的(指空间平面的原点,时间只会不断的向无穷大移动,而length值可能会增大或减小)。例如上图中绿线,它所反映的是:随着时间的发展,它的信息没有发生任何变化,它的头和长度都没有变化。而对于红线来讲就不太妙,这条信息散布在磁盘的几乎所有地方,却只存在于一刻之间,这样的信息我们却不知道它到底重不重要。绿线和红线都是一个绝对情况,是不可能存在的。那么我们就可以对绿线代表的信息进行处理了,将它的头(head)移动到靠近原点的地方,并将它作为一条固定的永久保存在磁盘中的信息(不一定永久,但起码是在一定时间范围内)。它的移动是指将head值逐渐变为0,将这条线平行的移动过来。而对于红线我们最难处理,我们根本找不到下手的办法,最好的方法是将它先浓缩(由平行与head的直线浓缩为一个点,这个过程中length值不断增大),然后再来判断信息的具体情况。蓝线则好理解的多,它代表了一条信息在磁盘中的存在形式,即:它由无数个点构成,每一个点代表着对应时刻的代码起始位置和长度,而从它的延长来看,它的head值和length都在不断的变化,head值变大了,可能是因为把存储位置让个了其他信息,导致自己被挂在后面的位置,而变小了,也许正是这条信息正在被认为是相对固定的信息,把头往中心靠拢。它的length的增加说明经过修改信息空间占用值发生了变化。

位移:在蓝线上的点不是不同的点,而是同一个点的不同位置,蓝线只是它的运动轨迹,且时间值绝对唯一按单位不断增加。正是通过这种位移,使得磁盘中存储的信息在不断的发生位置的变化,但其运动的目标就是在空间上的紧凑,这就为磁盘节约了大量可能被浪费的空间。

模型的误区

要避免一个误区:时间轴是用来确定在某一个时间所存储的信息(错)。这是错误的,时间轴是为了让磁盘拥有一个新的记录维度,让信息除了拥有在磁盘中被检索的能力,还将拥有社会记忆的功能。当然,这个其实可以用前文所述的第一种方法来实现,但是那太占用磁盘空间了,只是权宜之计。另外还有一点,信息的位移只是节省空间的一个方面,不是全部,最节约空间的仍然是时间轴概念下的存储系统。虽然我还没有见过相关的技术性文章,没有听说过哪个磁盘除开存储空间之外还有存储时间的概念。

2014-11-22