scegg

scegg

V2EX 第 128796 号会员,加入于 2015-07-24 23:54:09 +08:00
今日活跃度排名 6948
根据 scegg 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
scegg 最近回复了
不错啊,这样就省事了。
@wxf666 99.37%是哪位提供的,就请 at 哪位回答呗。
@wxf666 嗯。速度降低是因为数据库的提供者没有解决问题。批量写入能带来一定的性能提升,但不大(因为实际操作还是零散的随机 IO ,性能只在通道开闭的开销上可以提升)。正常的解决问题方法是让存储系统(比如 LUN )增加各类合适的缓存和队列(他们也是落盘的“盘”)。
@wxf666 对于需要落盘的事务,直接使用数据库功能,强制他落盘再返回。对于不需要落盘的事务,使用数据库的默认策略提交事务。
至于数据库的性能,那是数据库系统构建者(不是数据使用者)需要考虑的事。数据库使用者需要的是不要给数据库系统带来不必要负担,而不是替数据库系统考虑问题。而数据库系统构建者(比如服务器提供方、运维)则需要根据实际使用需求来设计存储。
@wxf666 积攒提交在数据库服务器上意义不大。
首先,数据库是随机操作,积攒落盘也只是要批量执行这一些写入操作,并不一定会减少写入次数。
然后,数据库后端通常都是 HBA 连接的 LUN ,它自己就有自己的写入队列、写入日志、写入缓存、分层存储等多个策略在排队,并不需要数据库替他们操心。
@wxf666 数据库没有办法满足既要又要的功能,只能允许使用者自己做出取舍。既要又要这种需求只能存在在无法实现的文件里。
@wxf666 理论上,只要事务提交成功,数据库有义务完成事务的持久性( ACID 特性的 D )。至于实际上,为了“提升性能”,可做出妥协。但妥协多少是可以选择的。如果选择不妥协的策略,那么就一定会在操作系统认可的磁盘写入操作完成后,才会返回提交成功。
另,操作系统认可的磁盘写入操作完成并不意味着实际磁盘的写入完成,因为这是存储系统的事,数据库和操作系统管不着了。但只要这存储系统设计靠谱,也意味着它在很大程度上是会完成持久保存的。至于程度有多大,又是一个为了提升性能的妥协程度问题。
@julyclyde 嗯,机房也有塌的时候。对小概率事件的预备程度有多高,只取决于你的客户想出多少钱。
@hullopanda 支持。但文件系统是否支持就不一定了。毕竟 iscsi 只是提供了通路。就像 sas 硬盘的两条线同时都会活着,但是否可以同时读写而不会损坏硬盘里的数据结构,那就要看数据结构是如何定义和操作的了。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1098 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 10ms · UTC 18:22 · PVG 02:22 · LAX 11:22 · JFK 14:22
Developed with CodeLauncher
♥ Do have faith in what you're doing.