View Single Post

   
  #1 (permalink)  
Old 04-08-2008, 03:41 PM
jmsalvo
 
Posts: n/a
Default ASE 12.5.0.3, Raw devices on Solaris, DiskSuite mirroring, and Write-on-Write Problem

We are well on our way and on the final few steps of migrating from
Oracle to ASE.

Our configuration is an E3500 running Solaris8, with dual A1000s. The
disks in each A1000 is mirrored to the other A1000 by Solstice
DiskSuite. Now I noticed that metainit actually says about
"Write-On-Write Problem" .... in particular for raw I/O and direct
I/O, that you need to have

set md_mirror:md_mirror_wow_flg=0x20

in your /etc/system file ... but it will degrade performance.
Question ... by how much ?
Is anyone using ASE with SDS with the above turned on ?
Or should I just use ASE's mirroring ?


Here is the snippet from "man metainit":


Write-On-Write Problem
When mirroring data in Solstice DiskSuite 4.2.1, transfers
from memory to the disks do not all occur at exactly the
same time for all sides of the mirror. If the contents of
buffers are changed while the data is in-flight to the disk
(called write-on-write), then different data can end up
being stored on each side of a mirror.

This problem can be addressed by making a private copy of
the data for mirror writes, however, doing this copy is
expensive. Another approach is to detect when memory has
been modified across a write by looking at the dirty-bit
associated with the memory page. DiskSuite 4.2.1 uses this
dirty-bit technique when it can. Unfortunately, this tech-
nique does not work for raw I/O or direct I/O. By default,
DiskSuite 4.2.1 is tuned for performance with the liability

SunOS 5.8 Last change: 11 May 2001 9

Maintenance Commands metainit(1M)

that mirrored data might be out of sync if an application
does a "write-on-write" to buffers associated with raw I/O
or direct I/O.

Note that without mirroring, you were not guaranteed what
data would actually end up on media, but multiple reads
would return the same data. With mirroring, multiple reads
may return different data. The following line can be added
to /etc/system to cause a stable copy of the buffers to be
used for all raw I/O and direct I/O write operations.

set md_mirror:md_mirror_wow_flg=0x20

Setting this flag will degrade performance.
Reply With Quote