Unix Technical Forum

ASE 12.5.0.3, Raw devices on Solaris, DiskSuite mirroring, and Write-on-Write Problem

This is a discussion on ASE 12.5.0.3, Raw devices on Solaris, DiskSuite mirroring, and Write-on-Write Problem within the Sybase forums, part of the Database Server Software category; --> We are well on our way and on the final few steps of migrating from Oracle to ASE. Our ...


Go Back   Unix Technical Forum > Database Server Software > Sybase

Register FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 04-08-2008, 02: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.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old 04-08-2008, 02:41 PM
Ramon Vennik
 
Posts: n/a
Default Re: ASE 12.5.0.3, Raw devices on Solaris, DiskSuite mirroring, andWrite-on-Write Problem

certainly the Sybase mirroring won't benefit any performance goal.
Maybe you should do some basic benchmarking about how much performance
is lost with this md_mirror setting.
Compare the numbers with I/O to a single submirror without the md_mirror
parameter and (if you want) with Sybase mirroring.

PS where/how did you encounter the problem that showed you the
write-on-write problem ?

Ramon

jmsalvo wrote:
> 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.


--
Groetjes

Ramon Vennik

================================================== ====================
As a computing professional, I believe it would be unethical for me to
advise, recommend, or support the use (save possibly for personal
amusement) of any product that is or depends on any Microsoft product.
================================================== ====================

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #3 (permalink)  
Old 04-08-2008, 02:41 PM
Anthony Mandic
 
Posts: n/a
Default Re: ASE 12.5.0.3, Raw devices on Solaris, DiskSuite mirroring, andWrite-on-Write Problem

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


Congratulations.

> Our configuration is an E3500 running Solaris8, with dual A1000s. The
> disks in each A1000 is mirrored to the other A1000 by Solstice
> DiskSuite.


Given that the E3500 has internal FC-AL disks, I would have
gone with that and an external FC-AL unit to suit for the
mirroring. The i/o performance would have been a lot higher.

> 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 ?


That's something you'd need to ask Sun tech support about.
I don't expect the perforamnce impact to be really noticeable.

> Is anyone using ASE with SDS with the above turned on ?
> Or should I just use ASE's mirroring ?


I would stick to SDS's mirroring. Turn the option on (I haven't
- but then I don't have your exact combination either but I've
noticed no problems) if you are concerned but don't forget that
the A1000s have a write cache and the parallel write method
should write to each mirror at the same time. Some of the
comments in the reference seem to suggest its not applicable
to ASE either (cf. dirty-bit and memory page).

-am © 2003
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #4 (permalink)  
Old 04-08-2008, 02:41 PM
jmsalvo
 
Posts: n/a
Default Re: ASE 12.5.0.3, Raw devices on Solaris, DiskSuite mirroring, and Write-on-Write Problem

Ramon Vennik <ramon@vennik.com.nocrap> wrote in message news:<3f0bb80a$0$282$ba620e4c@reader1.news.skynet. be>...
> certainly the Sybase mirroring won't benefit any performance goal.
> Maybe you should do some basic benchmarking about how much performance
> is lost with this md_mirror setting.
> Compare the numbers with I/O to a single submirror without the md_mirror
> parameter and (if you want) with Sybase mirroring.


That's exactly what I will do today.

>
> PS where/how did you encounter the problem that showed you the
> write-on-write problem ?
>


I have not yet ... but in the course of trying to find out more about
SDS, I read about "write-on-write" problem. I searched on google, saw
this:

http://dbforums.com/arch/158/2003/5/782082

Searching Sunsolve, saw this:

Bug ID: 4331413
http://sunsolve.sun.com/private-cgi/...e_ 32=4306468
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #5 (permalink)  
Old 04-08-2008, 02:41 PM
jmsalvo
 
Posts: n/a
Default Re: ASE 12.5.0.3, Raw devices on Solaris, DiskSuite mirroring, and Write-on-Write Problem

jmsalvo@yahoo.com.au (jmsalvo) wrote in message news:<4d6d063b.0307091632.27585b36@posting.google. com>...
> Ramon Vennik <ramon@vennik.com.nocrap> wrote in message news:<3f0bb80a$0$282$ba620e4c@reader1.news.skynet. be>...
> > certainly the Sybase mirroring won't benefit any performance goal.
> > Maybe you should do some basic benchmarking about how much performance
> > is lost with this md_mirror setting.
> > Compare the numbers with I/O to a single submirror without the md_mirror
> > parameter and (if you want) with Sybase mirroring.

>
> That's exactly what I will do today.
>


I'll be doing the tests tonight ( combination of dd, time, and iostat
).

If worse comes to worst ... I may end up using cooked filesystems for
ASE ( hope not! ) on Solaris8 ... just to make sure that the data is
mirrored between the two A1000s that we have.

Anyway, the main case for using raw device is data integrity, since
the writes are not buffered by the OS. But doesn't using a cooked
filesystem with DSYNC to ON equivalent anyway .. acheiving the same
reliability?

If yes, the only argument left is performance ... if Solaris have
async I/O for cooked filesystem. From what I can recall, it does.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #6 (permalink)  
Old 04-08-2008, 02:41 PM
jmsalvo
 
Posts: n/a
Default Re: ASE 12.5.0.3, Raw devices on Solaris, DiskSuite mirroring, and Write-on-Write Problem

jmsalvo@yahoo.com.au (jmsalvo) wrote in message news:<4d6d063b.0307091632.27585b36@posting.google. com>...
> Ramon Vennik <ramon@vennik.com.nocrap> wrote in message news:<3f0bb80a$0$282$ba620e4c@reader1.news.skynet. be>...
> > certainly the Sybase mirroring won't benefit any performance goal.
> > Maybe you should do some basic benchmarking about how much performance
> > is lost with this md_mirror setting.
> > Compare the numbers with I/O to a single submirror without the md_mirror
> > parameter and (if you want) with Sybase mirroring.

>
> That's exactly what I will do today.
>


I read that Solaris8 Update 3 has a new implementation of Direct I/O
allows the UFS file system to perform at near raw disk performance:

http://mailman.eng.auburn.edu/piperm...ly/004459.html

http://de.sun.com/Partner/Softwarepa...on_Solaris.pdf


Yeah .. yeah ... the PDF link is about Oracle .. but it is where the
improvement in Solaris8 Update 3 is mentioned.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #7 (permalink)  
Old 04-08-2008, 02:42 PM
jmsalvo
 
Posts: n/a
Default Re: ASE 12.5.0.3, Raw devices on Solaris, DiskSuite mirroring, andWrite-on-Write Problem

jmsalvo wrote:
> jmsalvo@yahoo.com.au (jmsalvo) wrote in message news:<4d6d063b.0307091632.27585b36@posting.google. com>...
>
>>Ramon Vennik <ramon@vennik.com.nocrap> wrote in message news:<3f0bb80a$0$282$ba620e4c@reader1.news.skynet. be>...
>>
>>>certainly the Sybase mirroring won't benefit any performance goal.
>>>Maybe you should do some basic benchmarking about how much performance
>>>is lost with this md_mirror setting.
>>>Compare the numbers with I/O to a single submirror without the md_mirror
>>>parameter and (if you want) with Sybase mirroring.

>>
>>That's exactly what I will do today.
>>

>
>
> I read that Solaris8 Update 3 has a new implementation of Direct I/O
> allows the UFS file system to perform at near raw disk performance:
>
> http://mailman.eng.auburn.edu/piperm...ly/004459.html
>
> http://de.sun.com/Partner/Softwarepa...on_Solaris.pdf
>
>
> Yeah .. yeah ... the PDF link is about Oracle .. but it is where the
> improvement in Solaris8 Update 3 is mentioned.



Ack! Unfortunately ... that write-on-write problem of SDS also happens
for direct I/O.

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #8 (permalink)  
Old 04-08-2008, 02:42 PM
jmsalvo
 
Posts: n/a
Default Re: ASE 12.5.0.3, Raw devices on Solaris, DiskSuite mirroring, andWrite-on-Write Problem

jmsalvo wrote:
> jmsalvo@yahoo.com.au (jmsalvo) wrote in message news:<4d6d063b.0307091632.27585b36@posting.google. com>...
>
>>Ramon Vennik <ramon@vennik.com.nocrap> wrote in message news:<3f0bb80a$0$282$ba620e4c@reader1.news.skynet. be>...
>>
>>>certainly the Sybase mirroring won't benefit any performance goal.
>>>Maybe you should do some basic benchmarking about how much performance
>>>is lost with this md_mirror setting.
>>>Compare the numbers with I/O to a single submirror without the md_mirror
>>>parameter and (if you want) with Sybase mirroring.

>>
>>That's exactly what I will do today.
>>

>
>
> I'll be doing the tests tonight ( combination of dd, time, and iostat
> ).
>
> If worse comes to worst ... I may end up using cooked filesystems for
> ASE ( hope not! ) on Solaris8 ... just to make sure that the data is
> mirrored between the two A1000s that we have.
>
> Anyway, the main case for using raw device is data integrity, since
> the writes are not buffered by the OS. But doesn't using a cooked
> filesystem with DSYNC to ON equivalent anyway .. acheiving the same
> reliability?
>
> If yes, the only argument left is performance ... if Solaris have
> async I/O for cooked filesystem. From what I can recall, it does.



Correct me if I am wrong here:


Cooked filesystems in general:
* Synchronous, and writes are buffered by OS

Cooked filesystems, mounted with "forcedirectio"
* Synchronous, writes are not buffered

Cooked filesystems with concurrent direct I/O:
* Asynchronous, writes are not buffered

Raw devices in general:
* Asynchronous, writes are not buffered



Now in ASE .. when a sybase device is created on a cooked filesystem
with DYNSC set to true, does that mean that it uses direct I/O ?

I suppose note ... in particular if the filesystem is not mounted with
"forcediretedio". So what does it mean to the OS when you create a
sybase device on a cooked filesystem with DSYNC set to true ?

... in particular for Solaris ?


Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #9 (permalink)  
Old 04-08-2008, 02:42 PM
Anthony Mandic
 
Posts: n/a
Default Re: ASE 12.5.0.3, Raw devices on Solaris, DiskSuite mirroring,andWrite-on-Write Problem

jmsalvo wrote:

> > If worse comes to worst ... I may end up using cooked filesystems for
> > ASE ( hope not! ) on Solaris8 ... just to make sure that the data is
> > mirrored between the two A1000s that we have.
> >
> > Anyway, the main case for using raw device is data integrity, since
> > the writes are not buffered by the OS. But doesn't using a cooked
> > filesystem with DSYNC to ON equivalent anyway .. acheiving the same
> > reliability?
> >
> > If yes, the only argument left is performance ... if Solaris have
> > async I/O for cooked filesystem. From what I can recall, it does.

>
> Correct me if I am wrong here:
>
> Cooked filesystems in general:
> * Synchronous, and writes are buffered by OS
>
> Cooked filesystems, mounted with "forcedirectio"
> * Synchronous, writes are not buffered
>
> Cooked filesystems with concurrent direct I/O:
> * Asynchronous, writes are not buffered
>
> Raw devices in general:
> * Asynchronous, writes are not buffered
>
> Now in ASE .. when a sybase device is created on a cooked filesystem
> with DYNSC set to true, does that mean that it uses direct I/O ?
>
> I suppose note ... in particular if the filesystem is not mounted with
> "forcediretedio". So what does it mean to the OS when you create a
> sybase device on a cooked filesystem with DSYNC set to true ?
>
> .. in particular for Solaris ?


The open man page -

http://docs.sun.com/db/doc/816-0212/...#indexterm-173

doesn't say very much about it. I'd suggest asking in the
Solaris newsgroup.

-am © 2003
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #10 (permalink)  
Old 04-08-2008, 02:42 PM
jmsalvo
 
Posts: n/a
Default Re: ASE 12.5.0.3, Raw devices on Solaris, DiskSuite mirroring, and Write-on-Write Problem

jmsalvo <jmsalvo@yahoo.com.au> wrote in message news:<bejvto$egq$1@lust.ihug.co.nz>...
> jmsalvo wrote:
> > jmsalvo@yahoo.com.au (jmsalvo) wrote in message news:<4d6d063b.0307091632.27585b36@posting.google. com>...
> >
> >>Ramon Vennik <ramon@vennik.com.nocrap> wrote in message news:<3f0bb80a$0$282$ba620e4c@reader1.news.skynet. be>...
> >>
> >>>certainly the Sybase mirroring won't benefit any performance goal.
> >>>Maybe you should do some basic benchmarking about how much performance
> >>>is lost with this md_mirror setting.
> >>>Compare the numbers with I/O to a single submirror without the md_mirror
> >>>parameter and (if you want) with Sybase mirroring.
> >>
> >>That's exactly what I will do today.
> >>

> >
> >
> > I read that Solaris8 Update 3 has a new implementation of Direct I/O
> > allows the UFS file system to perform at near raw disk performance:
> >
> > http://mailman.eng.auburn.edu/piperm...ly/004459.html
> >
> > http://de.sun.com/Partner/Softwarepa...on_Solaris.pdf
> >
> >
> > Yeah .. yeah ... the PDF link is about Oracle .. but it is where the
> > improvement in Solaris8 Update 3 is mentioned.

>
>
> Ack! Unfortunately ... that write-on-write problem of SDS also happens
> for direct I/O.



Got the response from Sun Support here in Australia....

The statement that I got from them is that, when using SDS mirroring,
don't use raw devices but use instead ufs with concurrent direct I/O
.... which will avoid the situation altogether.

However, he did mention that to take great advantage of concurrent
direct I/O, the database should use kaio instead of aio for
performance.

So that's what I have to do then ... forget about raw devices and use
concurrent direct I/O on UFS.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 02:23 PM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0
www.UnixAdminTalk.com