铁路客票信息化,这个项目是多少代铁路人的梦想,搞了几十年。其中最关键的技术是:多用户数据库。大量用户争夺同一批票,这是任何其他交易系统不具备的。如银行,不会许多人操作同一个账号。每一张票都是唯一的,卖两次你上车就有架可打了。不仅在存储空间中,就是在争夺过程中,不能重也不能丢。
为什么1995年才搞成?因为技术准备到位了,之前研究的数据库,局域网都不具备多用户同时争夺同一个记录的能力。DBASE,FOXBASE等等普及型数据库和3com,pcnet网络条件都无法进行所需的操作。直到,我们接触了c语言(1984年),进入了unix多用户系统(1985年),学习了多用户关系数据库INFORMIX(1986年),并且掌握了TCP/IP网络工具(1992年),这个项目才有了实施的可能。这个数据库是当时唯一具备行级锁的多用户关系数据库。直到2000年后ORACLE8才具备行级锁。在测试INFORMIX数据库的过程中,进行了最严厉的测试,包括大量用户抢同一条记录(有,且只有一个能抢到),多个任务争夺同一批席位,和在业务最繁忙时数据库直接关机,不进行shutdown,它都经受住了考验,没有丢数据。这就使我们对未来系统充满信心,也回答你为什么不能在内存存储席位。
铁科院由于历史原因,他们采用了SYBASE数据库,当时是不具备行级锁的,争夺过程是表级锁,在高峰期,比狗都慢。
早期的客票项目注意力都在汉字处理和印票方面,这都是表面现象并不是技术关键。
【 在 callmebbser 的大作中提到: 】
: 赞!
: 看了你这几篇转载,把CProgramming版给加到收藏了。之前收藏的技术板里是没有C编程版的。
: 另外,一个疑问:把所有席位都加载到内存中,全部内存操作,需要多大的内存?
: ...................
--
修改:ylh1969 FROM 221.221.55.*
FROM 221.221.55.*