由买买提看人间百态

topics

全部话题 - 话题: fsync
1 (共1页)
T********i
发帖数: 2416
1
前两天在帖子里就知道用fsync了。
其实,他这辈子从来没写过一行fsync。
t**********1
发帖数: 550
2
来自主题: Programming版 - 说说CAP吧
对,就是要扯fsync。不懂fsync就是不懂durability。难道不是么?
人家的wiki特意强调了fsync。你自己看看。而且强调了default是periodic。
真懂durability不会不懂fsync。
也不会闹那个commitlog写入就durable的笑话了。
看来你现在还是不懂durability。又闹了一次笑话。
g*****g
发帖数: 34805
3
来自主题: Programming版 - 招人过程中关于语言一点小经验
我没有啥都会,我这辈子也没调用过fsync,绝大多数java程序员都没有。学校里也没
教过这个,
我不觉得这有啥好丢脸的。
反过来,基本上是个C++程序员都用过关系数据库吧,任何DB课都讲吧,不懂
transaction很丢人。
另外,对于那个设计而言。fsync对于我是在数据库轮子里已经实现了的,我不知道也
不影响我的设计。
transaction则直接关系到他是否重票少票。你要拉偏架也尊重一点事实。
t**********1
发帖数: 550
4
来自主题: Programming版 - 说说CAP吧
C*我确实懂得不如你多。这个我从来没否认过。
但是我想知道什么我知道怎么能最有效知道。你看看我2年多前发的帖子。是不是古德
霸开侃durability的时候我就去搜Cassandra Durability fsync去了?
因为我知道谈durability必需要看fsync。你现在还不知道。现在你明白了吧?
M*****n
发帖数: 2301
5
来自主题: Programming版 - 说说CAP吧
CAP理论是要理解,但理解的目的是运用,不是扯大旗唬人,
正确分析大系统很不容易,这需要大量实践经验。
魏老师是实践派,我看还是别揪者人家什么flush/fsync不放了,纯属
意气之争没意思,有空多谈谈技术问题
貌似这个flush/fsync还是我最先指出好虫程序这个问题的,没想到
被抓了2年多,连wdong都不来了。
p******f
发帖数: 162
6
fflus() just sends the data to OS buffer, as white(), it does not touch
phisical hard disk.
as wien suggested, some systems are doing background fsync at about 30
sec frequency, if you feel you can't afford 30 second data lost, you
at do a fsync every 10, or 5 or 1 seconds. adjust the intervals to find
the best frquency.
BTW, are you worring about application crash or OS crash, IIRC, the data
in OS buffer will not lost even if your application crashed.
maybe, your concern is data integrity, the
n*****t
发帖数: 22014
7
来自主题: Military版 - 现在的马宫水平太次了!
你去看看葵版,各种泼皮滚刀肉,说好打赌人家接了丫开始改条件。跟大学扩招一样,
学点三脚猫爪握,就以为会抠腚了,大名鼎鼎的架构师连 fsync 都不知道,简单 SQL
写不出来都能扯 ACID 的蛋。
g*****g
发帖数: 34805
8
来自主题: Java版 - High Availability DB question
The fsync interval can be configured though.

every
a*****i
发帖数: 4391
9
I am thinking whether 3k forgot to enable fsync for www services.:)
N****w
发帖数: 21578
10
来自主题: Linux版 - ext4 in 2.6.32 性能退化
http://www.phoronix.com/scan.php?page=article&item=linux_perf_regressions&num=2
PostgreSQL 只有以前 20% 的性能
看来 ext3 就没这事
When asked about the commit, Red Hat's Eric Sandeen shared:
"Hey, thanks for doing the digging :)
It is required for safe behavior with volatile write caches on drives.
You could mount with -o nobarrier and it would go away, but a sequence
like write->fsync->lose power->reboot may well find your file without the
data that you synced, if the drive had write caches enabl
j*a
发帖数: 14423
11
来自主题: Linux版 - Q on the sync() system call in linux
man fsync
man fflush
y*******g
发帖数: 6599
12
来自主题: Programming版 - 请问java有类似fsync之类的方法?
是什么?
或者怎么在java中使用unix的系统调用?
thanks
P*****f
发帖数: 2272
13
来自主题: Programming版 - 请问java有类似fsync之类的方法?
JNI肯定是可以的

是什么?
或者怎么在java中使用unix的系统调用?
thanks
T********i
发帖数: 2416
14
goodbug和zhaoce都是输不起的。而且辩论的品格非常不好。本来不打算回应就算了。
之所以回应就是因为害怕谬种流传。很多不明真相的网友把谬误当作真理。当然也包括
这两位。
goodbug号称用cassandra方案解决我提出的春运售票问题。在我提出我的方案
performance的throughput比他的高1-2个数量级的情况下。他认为他的方案可靠性比我
的好。理由是能够同步写log到磁盘。在我提出用磁盘(磁盘是机械式的,SSD不是磁盘
,是基于半导体的)同步写每秒不到千的情况下,他给我一个链接和一张图。号称【
quote】写一个结点能到1000,写100个就可以接近10万。【quote】
我只能这种人的基本功连做一个普通程序员都不见得够格。如何能有人追捧他?看来公
共论坛水的嗓门大貌似水有理。
简单说一下:
1. 操作系统下普通的文件写操作一般是写到缓冲区,然后由OS schedule磁盘的写操作
。要强制flush缓冲区需要特殊API fsync。这个过程很费时,而且是blocking的。因为
普通磁盘的寻道时间都在5ms以上。IOPS(IO per second)不会很高... 阅读全帖
T********i
发帖数: 2416
15
就6行程序你还写错了。不明白fflush和fsync有啥差别是吧?
说呢基本功不扎实还真不是盖的。CS是体育老师教的吧?
T********i
发帖数: 2416
16
http://www.mitbbs.com/article_t1/Programming/31283973_0_1.html
发信人: goodbug (好虫), 信区: Programming
标 题: Re: Goodbug这个人头重脚轻,嘴尖皮厚;不但学问浮夸,而且人品恶
发信站: BBS 未名空间站 (Mon Nov 25 16:02:11 2013, 美东)
就写这么个程序,随便你怎么优化,随便你用啥语言。在你那1万的机器上benchmark大
家看看,别光说不练。
int count = 100000;
for(int i = 0; i < 100000; i++){
int count = readCounter();
count--;
write(counter);
flush();
}
发信人: TeacherWei (TW), 信区: Programming
标 题: Re: Goodbug这个人头重脚轻,嘴尖皮厚;不但学问浮夸,而且人
发信站: BBS 未名空间站 (Mon Nov 25 16:08:41 2013, 美东)
就6行... 阅读全帖
T********i
发帖数: 2416
17
来自主题: Programming版 - goodbug短短6行代码7个常识错误
发信人: goodbug (好虫), 信区: Programming
标 题: Re: Goodbug这个人头重脚轻,嘴尖皮厚;不但学问浮夸,而且人品恶
发信站: BBS 未名空间站 (Mon Nov 25 16:02:11 2013, 美东)
就写这么个程序,随便你怎么优化,随便你用啥语言。在你那1万的机器上benchmark大
家看看,别光说不练。
int count = 100000;
for(int i = 0; i < 100000; i++){
int count = readCounter();
count--;
write(counter);
flush();
}
发信人: TeacherWei (TW), 信区: Programming
标 题: Re: Goodbug这个人头重脚轻,嘴尖皮厚;不但学问浮夸,而且人
发信站: BBS 未名空间站 (Mon Nov 25 16:08:41 2013, 美东)
就6行程序你还写错了。不明白fflush和fsync有啥差别是吧?
说呢基本功不扎实还真不是盖的。CS是体育老师教的吧?
发信人: ... 阅读全帖
T********i
发帖数: 2416
18
来自主题: Programming版 - 提上来:Goodbug有资格谈I/O么?
发信人: goodbug (好虫), 信区: Programming
标 题: Re: Goodbug这个人头重脚轻,嘴尖皮厚;不但学问浮夸,而且人品恶
发信站: BBS 未名空间站 (Mon Nov 25 16:02:11 2013, 美东)
看看GoogBug 6行程序犯了多少错误。
就写这么个程序,随便你怎么优化,随便你用啥语言。在你那1万的机器上benchmark大
家看看,别光说不练。
int count = 100000;
for(int i = 0; i < 100000; i++){
int count = readCounter();
count--;
write(counter);
flush();
}
发信人: TeacherWei (TW), 信区: Programming
标 题: Re: Goodbug这个人头重脚轻,嘴尖皮厚;不但学问浮夸,而且人
发信站: BBS 未名空间站 (Mon Nov 25 16:08:41 2013, 美东)
就6行程序你还写错了。不明白fflush和fsync有啥差别是吧?
说呢基本功不扎实还真... 阅读全帖
g*****g
发帖数: 34805
19
来自主题: Programming版 - nickmit你过来
没有你这么算的,一次写1K, 写1K次,跟一次写1M能一样吗?
你要确保不丢,就得fsync。

journal
v***e
发帖数: 2108
20
来自主题: Programming版 - 招人过程中关于语言一点小经验
你这么说就没意思了,你和魏老师打架,和现在吵的是两回事
很多C++程序员比如我,都是旁观而已。
而且你的漏洞也够大的,写几行code,连fsync都搞不清,
在我看来这个比txn更丢脸。
p***o
发帖数: 1252
21
就算你调成1秒钟fsync一次,长远来看你发消息也没法超过磁盘的带宽。
IPC不需要持久化图省事就用zmq之类的好了。
t**********1
发帖数: 550
22
来自主题: Programming版 - 学术贴,1M/s ACID Message Queue
其实严肃讨论的,我的12306架构又转移到出票机(支付系统)上面来了。
如果要达到我说的性能,其实支付端要实现一个ACID的系统。幸好我们的应用简单,不
需要通用ACID数据库,只需要简化成一个ACID message queue就好了。
ACID message queue,输入是有序的message。每个message带一个单调递增的message
ID。甚至增量严格定义为1没有问题。
如果抢票机死掉,这个message queue负责回放某个message ID开始的所有交易。恢复
现场。
其实这个message queue关键技术在于存储。存储设备的IOPS要达到至少1M IOPS。
网上搜搜,就可以看到多少battery backed RAMDisk或者SSD能够达标就好了。
思索的几点误区:
1. 文件系统开销呢?
答:raw memory map file,可以确保每次写一个record(512 byte以内)正好一个IO
。记住一定每个记录都要fsync阿。呵呵。
2. message queue挂了怎么办?
答:多于一个串联,甚至可以跨DC partition。这也是... 阅读全帖
w**z
发帖数: 8232
23
来自主题: Programming版 - 说说CAP吧
C* 的durability 有啥特别的?就是写进commit log 呗,和大多数db做法一样。你是
不是又想扯上fsync啥的?如果不是搞底层的,不知道flush 和sync的区别也没什么奇
怪的。
p******f
发帖数: 162
24

As I said, you do not have to worry about application crash,
'cause OS buffered data will not lost in such occasions.
fsync() only forces OS level data flush to disk, you have to write()
or fflush() first.
l****y
发帖数: 18
25
Actually, I think there is always a conflict between realibility and performance.
you always want to buffer much data enough b4 make a fsync() request, then it
causes the reliablity problem
If you are REALLY serious about this, My suggestion is to use NVRAM (non-
violate RAM) it won't lose any data even when there is a power-off. for further
reading:
http://citeseer.nj.nec.com/hitz95file.html
1 (共1页)