這篇跟Day 10是同系列的,同樣是關於In-Memory的問題。
受惠於 Memory的性價比越來越高,越來越多廠商推出 In-Memory Computing的Solution ,不過,所謂 In-Memory Computing跟目前已知的運算方式有什麼差別?目前所有的運算也是將資料放到 Memory hierarchy裡才能運算啊。
In-Memory Computing號稱把Memory 當做Disk,而 Disk當做磁帶,可以省去將資料從 memory持久化到disk 的過程。除非是要 recovery,也無須從disk 讀取資料。因為 disk和memory 的速度是多個數量級的差距,不碰 disk自然有加速效果,但同時也會受限於 Memory大小,必須思考解決之道。
所以 In-Memory computing solution多半會強調資料壓縮能力,能把更多資料存進 Memory。有的solution 還強調他們能更有效運用 CPU,如:降低cache miss 、減少 lock/latch contention等,因為bottleneck 已經不再在 I/O了,所以需要讓CPU能更高效運作。
但以上這些議題,就算不是 In-Memory Computing也是會遇到的。只是大資料的應用過去常卡在 I/O,所以還看不到這些議題罷了。
所以, In-Memory Computing是一個真正的議題嗎?還是只是 buzz word?大家來討論一下吧。