西西河

主题:【原创】身为码农,为12306说两句公道话 -- 代码狗

共:💬137 🌺892 🌵3 新:
全看分页树展 · 主题 跟帖
家园 基本概念不清

有同步和能保证事务是两个概念。

从下文可以看出12306的确是全部在内存中处理,而且是冗余内存。也就是说要坏就要冗余内存都坏才会造成数据丢失。问题在于软件就会有BUG,如果因为各种原因造成两份内存数据不一致,又怎么办呢?

所以这些都是外围的解决方案。GemFire既然叫分布式内存数据平台,而不叫内存数据库,就说明了其对事务的担忧。但是在某个具体的应用,比如12306,非通用软件,比如一个数据平台就可以使用,通过其它手段尽可能保证事务,比如排队等。这个跟淘宝把MYSQL的事务瘦身,然后承担出错风险,本质是一样的。

所以12306通过冗余内存来提高性能的办法,不叫专业,叫外行。这里并非说外行不能解决问题,而是更多风险而已。

GemFire分布式内存数据平台的原理为:

通过云计算平台虚拟化技术,将若干X86服务器的内存集中起来,组成最高可达数十TB的内存资源池,将全部数据加载到内存中,进行内存计算。计算过程本身不需要读写磁盘,只是定期将数据同步或异步方式写到磁盘。GemFire在分布式集群中保存了多份数据,任何一台机器故障,其它机器上还有备份数据,不用担心数据丢失,而且有磁盘数据作为备份。GemFire支持把内存数据持久化到各种传统的关系数据库、Hadoop库和其它文件系统中。12306之前采用Unix小型机架构,采用GemFire技术改造成Linux/X86服务器集群架构。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河