




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
秒杀场景的SQL解决杭州平民软件有限公司问题搞定库存秒杀问题需要什么技术?NoSQL?SQL?Why?章节库存业务?库存技术?库存方案?技术难点?方案优化?库存业务用户商家网站库存系统库存全景多种库存前端库存后端库存实际库存用户体验实际有库存,显示零库存显示有库存,实际零库存已经下订单,得知零库存已经付完款,得知零库存付款遇问题,得知零库存商家体验实际有库存,显示零库存显示有库存,实际零库存库存数不对,常常做盘点卖出太多货,加班来不及下单数很高,付款数很低特惠有限度,不能无止境平台体验实际有库存,显示零库存显示有库存,实际零库存库存数不对,常常做盘点卖出太多货,加班来不及下单数很高,付款数很低流量转化率,下单与成交系统成本处理不够快,拖跨整个站数据不准确,加班又通宵废单特别多,浪费又可耻一两件商品,坏了一锅粥库存快准库存处理快,网站不能跨库存处理准,大家都开心库存机制好,商品买卖爽契约精神甲方用户乙方商家中介网站库存契约合同系统库存操作用户商家库存调整对账售出退货库存逻辑拍下扣减付款拍下预扣付款扣减库存技术余额减一操作明细完整事务数据落地余额减一使用pthread_mutex_t使用pthread_spinlock_t使用CAS指令__sync_fetch_and_add__sync_fetch_and_sub__sync_add_and_fetch__sync_sub_and_fetch操作明细下过的单有没有减?付款的单有没有减?预扣的单有没有加?退货的单有没有加?完整事务扣了库存没有记明细?记了明细没有扣库存?数据落地内存不可靠,丢了怎么办搞错一辆车,可能赔得起搞错一套房,还能赔得起库存方案MySQLMySQL+ReadCacheMySQL+Read/WriteCacheMySQL+NoSQL+CacheNoSQL+CacheOneSQL+ReadCacheMySQL最开始的模式最省心的模式规模小的模式MySQL+ReadCache顺然自然发展比较省心模式读Delay影响用户体验规模中等模式MySQL+Read/WriteCache顺然自然发展极度操心模式读Delay影响用户体验写操作丢失引起超卖写操作丢失引起少卖写节点漂移引起乱卖规模大型模式WriteCache(全量)MySQLCache(item1)Cache(item2)Cache(item3)App1App2WriteCache(问题)MySQLCache(item1,item2)Cache(item2,item3)Cache(item3,item1)App1App2WriteCache(增量)MySQLCache(item1,item2)Cache(item2,item3)Cache(item3,item1)App1App2WriteCache(问题)设置麻烦增量与销量相关按商品逐人设置秒杀商品不能多卖,赶工无好货不能少卖,成就唯品会MySQL+NoSQL+Cache方案复杂数据复制需求过多投入巨大硬件资源投入巨大不解决问题只解决性能未解决准确性MySQL+NoSQL+Cache(全量)MySQLNoSQL(item1,item2)NoSQL(item2,item3)NoSQL(item3,item1)App1App2MySQL+NoSQL+Cache(增量)设置麻烦增量与销量相关按商品逐人设置秒杀商品不能多卖,赶工无好货不能少卖,成就唯品会NoSQL+Cache未敢正式偿试缺少事务支持NoSQL技术不适准确性需事务支持简单读的成本过高MySQL问题定位MySQL优势事务机制程序稳定事务优化单行更新并发优化最大并发数排队优化抢同一商品OneSQL+ReadCache关键技术突破非常省心模式读Delay影响用户体验缓存实时更新技术突破大型模场景验证技术难点事务机制单行并发排队机制事务机制数据准确更重要库存数据是可以盘点多级库存对账成本高事务机制最成熟应用层无成熟事务机制数据层数十年事务机制单行并发热点商品资源有限,精确计数关注度高,并发很高瞬间压力前一分钟,千万用户容易堵塞,拖跨网站SLA可计算每秒要求500个?OneSQL并发能力处理逻辑StarttransactionInsert库存明细Update库存余额Commit过独木桥库存(数据库)n1网络确认Commit后才放行技术测试本机Socket连接(CPU速度)AutoCommit(CPU速度)0.2ms网络0.4ms网络2.0ms网络时延很关键同城机房间时延?Update后JVMGC?网络优化如何判断Update成功?两个条件:Update自身没报错确认Update记录数客户端:确认Update记录数通知服务器提交优化思路提前告知Update记录数?开源定制优化方案StarttransactionInsert明细Update/*+[auto_commitaffect_rows1]*/…Commit可以省略效果评测保留事务NoSQL性能扩展定制一致性查询StarttransactionSelect/*+[auto_rollback]*/…forupdate效果评测保留事务NoSQL性能JVM问题StarttransactionInsert库存明细Update库存余额JVM
gc回收内存(100ms)Commit测试用例建表语句Createtablet_item(col1intnotnullprimarykey,col2int);Insertintot_itemvalues(1,100000000);测试用例StarttransactionUpdate/*+[auto_commit]*/t_itemsetcol2=col2-1wherecol1=1;Commit;秒杀、大账号、额度定制优势治标治本数据层治本应用层治标简洁方案调整SQL顺序扩展SQL语法NoSQLvsSQL?SQL青春常驻排队机制应用层如何阻太多会话进入MySQL?MySQLServer层如何阻太多请求进入InnoDB?MySQLInnoDB层锁冲突检测成本非常高!应用排队机制Q1Q2Q3Q4Q5Item?AppMySQLQ1Q2Q3Q4Q5Item?App应用排队缺点应用需要改造统一开发框架应用集群扩容控制不够精确MySQL排队机制Q1Q2Q3Q4Q5Item?AppInnoDBAppAppMySQL排队优势应用极少改造无需统一开发框架修改少量SQL语句排队非常精确发挥InnoDB最佳性能方案优化拆分有固定规则热点商品无定律热点需动态迁移复制测试MySQLServer1MySQLServer2库存余额库存明细1百条/1千条/1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年安徽翠兰投资发展有限公司社会招聘14人笔试参考题库附带答案详解
- 2024年中国石油大庆油田有限责任公司秋季高校毕业生招聘630人笔试参考题库附带答案详解
- 二零二五融资担保保函融资担保合同
- 酒店协议合同价格合同正规范例
- 二零二五无线WiFi覆盖业务合作协议
- 租赁车托管合同范例
- 2024四川虹微技术有限公司招聘软件开发工程师等岗位7人笔试参考题库附带答案详解
- 2025届黑龙江省肇东第一中学下学期高三联考数学试题
- 2024内蒙古能源集团校园招聘394人笔试参考题库附带答案详解
- 管道井改造施工方案范本
- 高效液相色谱简介及操作课件
- 东荣一矿12 Mta的新井设计矿井冲击矿压及防治措施至煤柱设计智能演变
- 进口第二类、三类医疗器械注册申报资料电子目录
- 脑卒中早识别及预防治疗课件
- 直线和平面平行的性质定理名师优质课赛课一等奖市公开课获奖课件
- 氟橡胶基本课件
- 上海市一模二模或中考数学答题纸
- 桩基础负摩阻计算表格(自动版)
- 幼儿绘本故事:爱书的孩子
- 47页数字孪生人脸识别轨迹分析电子围栏智慧工地解决方案.pptx (2)
- 手术室手卫生PPT课件
评论
0/150
提交评论