锁定老帖子 主题:百万级数据能这么干
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-11-19
百万级数据应该不是很多,也就250MB以内,按照一个U盘5M/s的写入速度不到一分钟;
(一般读取速度都有30M/s 10s以内足够读取了) 如果采用压缩,相信性能还有30%左右的提升! 1)2)做月结的话数据是不是不可能发生变化了,锁定表也无所谓了!因为只有自己修改这些状态,别人只是读取和查询,问题应该不大 后面的3)4)5),第3点要重启就太变态了,真的有点怀疑他们的驱动 4)5)应该问题不大了 以上只是猜想,过于理想化,请大家自动越过 |
|
返回顶楼 | |
发表时间:2010-11-19
我做过的项目里有个与人民银行的数据交换,他们用的是分批次的纯文本(直接用c从数据库里导出来)。
譬如201003-1.txt,201003-2.txt... 每个文本控制在10M左右,ftp传输。 简单可靠。 |
|
返回顶楼 | |
发表时间:2010-11-19
在下的一些愚见,呵呵。
第一,在服务器将月结数据按用户写成自定规则格式数据到文件 第二,要求客户端用户自己下载自己的月结数据文件到本地 第三,用户在客户端通过这个文件写入U盾,增加对数据完整性的判断,来得出数据是否写入完成。 第四,要求用户自己申报写入U盾成功请求,本地判断非完整不准申报U盾写入成功请求。 第五,本地数据以及U盾数据验证通过,服务器接收请求认为该用户U盾写入成功。更新百万级数据的状态,服务器在缓存中加入标识,说明哪个用户的数据的状态数据已被更新。 |
|
返回顶楼 | |
发表时间:2010-11-19
我觉得这些方案只要考虑周全,技术上没什么问题。什么百万级、6百客户端长连接什么的别以为有什么特别。
在十年前B/S还不成熟时,随便个破小型机+Oracle 7+PB的C/S方式就轻松达到一千以上客户端同时在线连接呢,只要设计好cache机制,用u盘作数据存储也不难。 |
|
返回顶楼 | |
发表时间:2010-11-19
显然这个公司需求场景没有搞清楚。
|
|
返回顶楼 | |
发表时间:2010-11-19
边从数据库取,一边压缩进IO流,输出为压缩文件,百万级的文本记录也没多少M的
|
|
返回顶楼 | |
发表时间:2010-11-19
抛出异常的爱 写道 ukey根本是个笑话.... 事务查出更新数据库更是扯 不如写日志. 一个批次.写二条日志. 日志一条开始写 另一条写结束 只要有开始有结束 就认为数据完整 有开始没结束或结束是error 就认为数据是不完整的. 银行还省这点小钱 拉根专线没几个钱. 那个项目负责人,告诉我每次写数据一定能保障要么成功,要么失败。对于这一点我非常的怀疑,有什么办法能保证事务呢?。所以要求他们提供数据验证的工具,能够从Ukey中对比数据库中的数据是否一致。但业务部门的人,有点向着他们,说不用了。出了问题,IT不用负任何责任。我晕。 在我看来也应该分批分批的写。 有专线的。 |
|
返回顶楼 | |
发表时间:2010-11-19
skzr.org 写道 百万级数据应该不是很多,也就250MB以内,按照一个U盘5M/s的写入速度不到一分钟;
(一般读取速度都有30M/s 10s以内足够读取了) 如果采用压缩,相信性能还有30%左右的提升! 1)2)做月结的话数据是不是不可能发生变化了,锁定表也无所谓了!因为只有自己修改这些状态,别人只是读取和查询,问题应该不大 后面的3)4)5),第3点要重启就太变态了,真的有点怀疑他们的驱动 4)5)应该问题不大了 以上只是猜想,过于理想化,请大家自动越过 我刚才大约计算了一下,假设一条记录大约400字节,月结记录1500000,那么应该有400*1500000/1024/1024=572M 而整个数据事务读写过程应该非常的慢了。 虽然是月结,但是系统还是要正常运转的。他们没有采用分表冻结,所以同一张表,在月结是,还会有记录写入的。所以,我认为会有锁表的情况,甚至业务系统会瘫痪。 |
|
返回顶楼 | |
发表时间:2010-11-19
kingkan 写道 在下的一些愚见,呵呵。
第一,在服务器将月结数据按用户写成自定规则格式数据到文件 第二,要求客户端用户自己下载自己的月结数据文件到本地 第三,用户在客户端通过这个文件写入U盾,增加对数据完整性的判断,来得出数据是否写入完成。 第四,要求用户自己申报写入U盾成功请求,本地判断非完整不准申报U盾写入成功请求。 第五,本地数据以及U盾数据验证通过,服务器接收请求认为该用户U盾写入成功。更新百万级数据的状态,服务器在缓存中加入标识,说明哪个用户的数据的状态数据已被更新。 也是一种方案。 有成功的案例吗? |
|
返回顶楼 | |
发表时间:2010-11-19
zlowly 写道 我觉得这些方案只要考虑周全,技术上没什么问题。什么百万级、6百客户端长连接什么的别以为有什么特别。
在十年前B/S还不成熟时,随便个破小型机+Oracle 7+PB的C/S方式就轻松达到一千以上客户端同时在线连接呢,只要设计好cache机制,用u盘作数据存储也不难。 我也觉得他们的方案可以。 但是,如果能解决我这问题,那么就是一个非常成功的案例。那么他们的银子就大把大把的来了。 |
|
返回顶楼 | |