Star Trek: Voyager 星艦上的資料庫

作者:   發佈於:   #system #capacity #startrek

最近又把 Star Trek: Voyager 看了一回。在這部跨越 y2k 前後 (1995 至 2001) 的系列影集中有許多與電腦系統的互動,更不缺關於人工智慧討論,某種程度上有點像是承先啟後的感覺吧。最近兩部 Star Trek 影集的製作是讓整季連貫下來是一個故事,而這系列雖然基本上每一集是一則帶有結論的故事,通常前後兩集互不連貫,而每則故事本身都是各自完整,也不會讓人有「想要趕快看下一集」這種心理壓力。或許這樣的製作方式還比較好。

這一部系列的主角船艦「Voyager」的特殊之處,是她身處遠端孤獨一船。自第一集起就被推到距離離地球 75000 光年之外的太空,並且在影集範圍的大部分時間內,都是處於無法與星際艦隊建立通訊連線的狀態。在第六季時星艦總部成功以人造微型蟲洞作為傳導通道,與 Voyager 船艦電腦連上一、兩分鐘,在那之後才偶爾有與總部短暫連線通訊的可能。

這種基本上無法連上網路的狀態,完完全全就是 90 年代後半一般人的生活。那時如果要上網,必須使用電腦,而當時的一般人用的電腦多半是無法攜帶的。也就是說一般人只要在外走動,就等於不能上網。在那臨時碰到問題無法在路邊上網查詢的年代,或許大家為了辦事,的確能記得各種知識吧。

在這系列影集中不乏組員們利用船艦電腦解決各種問題的場景。Janeway 艦長常利用電腦做的事,通常就是先點一杯黑咖啡然後開始讀各種紀錄跟報告。而這「各種紀錄跟報告」甚至還包含了艦隊中其他船艦的航行紀錄、戰略心得。艦長在面臨難題時,會在資料庫找尋前人經驗作為決策時的參考。

S1 E10 "Prime Factor" 這集的故事之中,組員試圖與船艦資料庫中的「文學作品集」換取外星科技。而在 S5 E23 "11:59" 這集裡,Neelix 在船艦上的「Ferengi 資料庫」當中找到一張艦長祖先家族的舊照片。偶爾也有出現船醫參閱其他船組員之醫療紀錄這種台詞。

既然 Voyager 電腦是長時間處於獨立無網路的狀態,那也就表示那些看似來自各處的資料,其實是完整地儲存在 Voyager 本身的電腦系統當中,否則就無法隨時讓人搜尋查閱。顯然,24 世紀那時的記憶體容量與效能都遠遠強於 21 世紀的今日,而或許我們可以假設:星際艦隊中的每一艘船艦,都完整地保存了聯邦中其他所有船艦的資料,一些關於各文明的基本資料,甚至還有一些聯邦之外的資料供戰略參考。

組員們除了查資料,同時也會寫報告跟紀錄、個人日記之類的。看來他們很習慣使用語音輸入,艦長顯然也很習慣以影像形式留個人紀錄(每位艦長都是 vlogger ?)。不難想像,電腦能自動將口語轉換成文字與搜尋索引。

既然如此,或許我們能說:每一艘星艦上的資料庫都是全知的,包涵了整個聯邦內的知識。並且能在某些時候,與聯邦中其他船艦進行資料同步,取得更新。

若星艦上的作業系統要依賴某些「雲端服務」,想必會是戰略上的一大缺點吧。考慮到幾乎每一集都會出現像是「通訊電波被電磁風暴遮斷」這種台詞。只要被敵人蓋台,系統就停擺,這也未免太虛了。顯然要強,就不能上網。或者說,不能「一直」上網。讓每艘星艦持有全數資料,讓組員們就算再離線狀態下也隨時可以查詢,顯然是讓艦隊具有戰略優勢的作法。

考慮到每艘星艦各自的活動範圍不同,設計能讓他們彼此同步的機制似乎也不太簡單。偶爾能兩兩同步似乎比較方便,而偶爾進場維修時似乎與某個中央中繼站會比較有效率。在 21 世紀的現在,有如 Merkle Tree 或 CRDT 等各種關於能讓資料順利同步的研究與實作。也有如 Scuttlebuttipfs 這種點對點也可小圈圈的網絡設計。

這麼說來,每艘星艦上的儲存空間要有多大,才能放下那麼多東西?

如果我們要將全地球文明的資料都存下來,要多少空間呢。參考地球上最愛囤積資料的 Internet Archive 磁碟用量,他們目前用了 88 PB (88000 TB)。而從最近的 Backblaze Drive Stats for Q1 2021 上的表格數字粗算起來 Backblaze 掌握的容量至少是 100 PB 等級的。這些都是不錯的估計,但應該都只是片面,至少是極端傾向在美國產生的資料量。

一般認為 Google 持有的資料量應該是地球上各大組織中最多的,但 Google 資料中心的容量一直都是謎。依 xkcd/63 於 2013 年估計當時他們持有 10 EB (10000 PB) 左右。至今日,資料廠房數量已經倍增,儲存媒介密度也大幅增加,每日由使用者產生的資料量更是有百倍成長。就姑且假設 Google 已經進入 1 ZB (1000 EB) 等級了吧。

根據 How much data is on the internet? The Big Data Facts Update 2020 這報告上給的數字,有上網的人類約為 4.6 B,為目前人類人口數之 65%。而這些人上網行為所帶來的傳輸資料量在 2019 年為 44 ZB 。與 2025 年時或為 175 ZB。

如果全人類都能上網,或許就會有「數十 ZB」等級的資料需要經常性地保存著。如果算上所有星艦聯邦三百多個文明,整體來說就是 1 YB 數量級的資料了。也就是 21 世紀 Google 所持資料規模的 1000 倍。

如果只限制在傳統計算機的技術領域,1 YB 數量級的資料之索引與搜尋差不多就是個無解的題目。顯然每艘星艦上的電腦系統都必須具備量子電腦以上的效能。

如果一艘星艦的資料容量就真的是千倍於今日 Google 規模的話,說不定這是今日的我們最靠近未來星艦世界的部分。在曲速科技還沒聲影之前,或許我們已經可以開始準備設計給星艦用的資料庫了。

至少 Unicode 已經準備好能迎接瓦肯星人了:🖖