[cpif] r30 - trunk/tests

svn at argo.es svn at argo.es
Mon May 7 21:29:47 CEST 2007


Author: jcea
Date: Mon May  7 21:29:45 2007
New Revision: 30

Log:
Algunos sistemas operativos/discos duros mienten vilmente
en lo que se refiere a las escrituras sincronas en disco duro.

Este programa detecta este hecho.

Normalmente los sistemas operativos "modernos" no mienten
al hacer un "SYNC", pero si el disco duro tiene la cache
de escritura activado, el sistema operativo puede darse
por satisfecho cuando los datos estan en la cache del
disco duro, ANTES de que se hayan grabado fisicamente
en la superficie magnetica. Si es asi, un fallo electrico
hara que se pierdan datos aunque el sistema operativo
jure que los datos se hubiesen grabado realmente en disco duro.



Added:
   trunk/tests/write_sync.py   (contents, props changed)

Added: trunk/tests/write_sync.py
==============================================================================
--- (empty file)
+++ trunk/tests/write_sync.py	Mon May  7 21:29:45 2007
@@ -0,0 +1,40 @@
+#!/usr/bin/env python
+
+# $Id$
+
+# Algunos sistemas operativos/discos duros mienten vilmente
+# en lo que se refiere a las escrituras sincronas en disco duro.
+#
+# Este programa detecta este hecho.
+#
+# Normalmente los sistemas operativos "modernos" no mienten
+# al hacer un "SYNC", pero si el disco duro tiene la cache
+# de escritura activado, el sistema operativo puede darse
+# por satisfecho cuando los datos estan en la cache del
+# disco duro, ANTES de que se hayan grabado fisicamente
+# en la superficie magnetica. Si es asi, un fallo electrico
+# hara que se pierdan datos aunque el sistema operativo
+# jure que los datos se hubiesen grabado realmente en disco duro.
+
+
+import time,os
+
+num_escrituras=1000
+
+f=open("../db-test/write-sync","wb")
+t=time.time()
+for i in xrange(num_escrituras) :
+  f.write("x")
+  f.flush()
+t=time.time()-t
+print "%d escrituras asincronas por segundo" %(num_escrituras/t)
+
+t=time.time()
+for i in xrange(num_escrituras) :
+  f.write("x")
+  f.flush()
+  os.fsync(f)
+t=time.time()-t
+print "%d escrituras sincronas por segundo" %(num_escrituras/t)
+
+



More information about the cpif mailing list