10.12日记

发布时间 2023-10-12 19:20:05作者: zhangmingmingkjz

1, 我们应该怎么使用数据库来实现,我们能不能用Oracle生产库,能不能用TimesTen

 

不能,使用Oracle,TimesTen会加大我们项目的预算,使我们的项目用很赚钱,变成赚一点钱的项目,要在我们所有业务支撑系统中推广,每一个实例30W$东西我们坚决不用,所以数据库的机制由我们自己实现,那么必须是开源的,可改造的。

 

2, 我们自己实现的数据库,有什么技术需求,他与普通的数据库用什么区别。

*我们在计费,账务过分的依赖于共享内存,它必须小心的使用,因为你如果将未知大小销账列表都装进内存,当系统迅速吃光所有服务器的内存时,我们只好等着工程人员骂着娘帮我们重启机器。

用了数据库来运行就不一样了,当我们设定一个地市的pagecache是5G是,那么20个地市就是100G,消耗资源的大小是我们心中有数的。

 

*我们需要将千万级以上的数据快速的转换成B-tree的数据结构,我们不能忍受我们入库Oracle是每秒几千条入库效率,由话单文件,生成数十G数据库文件必须在二十分钟以内。

 

*转换后的文件形式不能过分的膨胀,XX省移动的话单在300G左右,我们不能再转换后将其变成几个T的容量,那样会使到我们又必须拉下面子求客户买机器。

 

*数据库索引的建立必须是快速的,自发的,能够依照我们sql里的条件,自动的创建需要的索引,由于他不是在线数据库,那么我们不用当心建立索引后,数据操作过慢的问题。我们是在所有数据转换成B-tree后,根据sql批量的建立我们需要的索引。

 

*业务对应的逻辑的实体,我们称之为规则RULE

 

*规则可以拆分成可重用的逻辑粒度,我们称之为规则细项RULEITEM

 

*多个sql处理逻辑的过程我们称之为处理逻辑handle