可類化(Classable)是Laxcus大數據管理系統提供的一項基礎功能,它能夠將類轉化為一串字節數組,或者逆向將字節數組轉化為一個類。這項功能與JAVA提供的序列化(Serializable)非常相似,但是不同之處在于,可類化是可以由用戶自己定義的,包括數據的選擇、數據的樣式、數據結構等一系列的規則。
這樣的好處在于,我們擺脫了JAVA序列化的那種由系統硬性規定的固定格式,可以自由組織我們需要的數據,包括一些可能是私密的數據;不便在于,因為這種自由,程序員需要做些犧牲,編寫代碼來實現這項技術。
盡管這樣,Laxcus大數據管理系統已經將這項工作做至極簡。API中提供了可類化接口,用戶需要做的,是在自己的類中繼承這個接口,接口只有兩個方法:
<1> int build(ClassWriter writer);
<2> int resolve(ClassReader reader);
第一個方法是將類輸出到可類化寫入器(ClassWriter)中,寫入器能夠寫入目前已知的所有格式的數據。
第二個方法是對寫入操作的反向動作,把數據從可類化讀取器(ClassReader)還原到類里。
設計可類化的初衷是因為,在之前的Laxcus大數據集群里,負責組織實施大數據計算的中間件計算組件,采用了JAVA系統默認的序列化來產生數據。序列化產生數據量非常龐大,對網絡通信、網絡計算、數據存儲都造成了巨大的擔負。更關鍵的問題是,在序列化的數據里面,有很多數據是計算過程中并不需要的,它們成為大數據計算的數據“雞肋”。
目前的Laxcus中間件計算組件,經過可類化改造后,在Laxcus大數據集群里傳輸的數據量明顯減少,普遍減少量在4-5倍左右,個別已經超過10倍。數據在網絡中的傳輸速度,以及計算機對數據的處理反應能力也得到明顯的提高。
可類化對提升大數據能力非常有效。