主题:【原创】身为码农,为12306说两句公道话 -- 代码狗
有同步和能保证事务是两个概念。
从下文可以看出12306的确是全部在内存中处理,而且是冗余内存。也就是说要坏就要冗余内存都坏才会造成数据丢失。问题在于软件就会有BUG,如果因为各种原因造成两份内存数据不一致,又怎么办呢?
所以这些都是外围的解决方案。GemFire既然叫分布式内存数据平台,而不叫内存数据库,就说明了其对事务的担忧。但是在某个具体的应用,比如12306,非通用软件,比如一个数据平台就可以使用,通过其它手段尽可能保证事务,比如排队等。这个跟淘宝把MYSQL的事务瘦身,然后承担出错风险,本质是一样的。
所以12306通过冗余内存来提高性能的办法,不叫专业,叫外行。这里并非说外行不能解决问题,而是更多风险而已。
GemFire分布式内存数据平台的原理为:
通过云计算平台虚拟化技术,将若干X86服务器的内存集中起来,组成最高可达数十TB的内存资源池,将全部数据加载到内存中,进行内存计算。计算过程本身不需要读写磁盘,只是定期将数据同步或异步方式写到磁盘。GemFire在分布式集群中保存了多份数据,任何一台机器故障,其它机器上还有备份数据,不用担心数据丢失,而且有磁盘数据作为备份。GemFire支持把内存数据持久化到各种传统的关系数据库、Hadoop库和其它文件系统中。12306之前采用Unix小型机架构,采用GemFire技术改造成Linux/X86服务器集群架构。
- 相关回复 上下关系8
🙂ssd硬盘就相当于是内存盘了 铁手 字0 2014-01-15 12:19:53
🙂铁。。。。手! 1 whyshanghai 字454 2014-01-16 00:09:30
🙂你错了,12306比你想象的要专业多了 4 吹西门的雪 字71 2014-01-12 07:52:47
🙂基本概念不清
🙂我猜他隐含的技术背景是去IOE 7 敲门 字687 2014-01-10 21:01:58
🙂12306的宝 坚持的阿甘 字101 2014-01-10 06:57:34
🙂其实库存可以不必那么复杂 1 szxy 字82 2014-01-10 05:49:21
🙂大胖子沙发 1 大胖子 字8 2014-01-10 04:16:17