My explanation only applies to Compaq's Virtual Snapshot replicator software, I wouldn't be surprised if NetApp had something better. And besides, I have never known a salesperson to lie!! : - o |---------+-----------------------------> | | Tim Johnston | | | <tjohnston@quallab| | | y.com> | | | Sent by: | | | oracle-l-bounce@fr| | | eelists.org | | | | | | | | | 03/24/2004 10:19 | | | AM | | | Please respond to | | | oracle-l | | | | |---------+-----------------------------> >-----------------------------------------------------------------------------------------------------------------------| | | | To: oracle-l@xxxxxxxxxxxxx | | cc: | | Subject: Re: Falconstor/IPStor with Clariion, EMC Timefinder with Symmetrix | >-----------------------------------------------------------------------------------------------------------------------| >The way it works is that when you create a snapshot it creates a file which contains a pointer to the database file. When someone changes the database, the before image is written to the snapshot file. At this point the file is no longer just a pointer it containts before image data. > Yuck... I remember getting a dog and pony from the NetApps guys about the snapshot method... The way I understood their method was much different then this... A change to a physical block is always written to a new location in the filesystem There is a pointer for each physical block (call this the current pointer list) When a physical block is updated, it is written to a new block and current pointer list is updated You perform a snapshot copy which grabs a copy of these pointers (call this the snapshot pointer list) As long as the snapshot pointer list is active, those blocks can not be changed or overwritten This allows the two pointer lists to stay "mostly" the same The longer a snapshot is active, the more the two pointer lists will diverge A picture might help... Here is the current pointer list before the snapshot... XXXXXXXXXXXXXXXXXXXXXXXXXXX Then you take a snapshot... Current pointer list XXXXXXXXXXXXXXXXXXXXXXXXXXX Snapshot pointer list XXXXXXXXXXXXXXXXXXXXXXXXXXX Next several changes come into the database which cause a physical block changes in the filesystem... Current pointer list XXAAAAAAXXXXXXXXXXXZZZZXXXX Snapshot pointer list XXXXXXXXXXXXXXXXXXXXXXXXXXX At this point, the majority of the pointer lists still point to the same physical blocks in both lists... However, the current pointer list is the only one that changes... This means that only one write was performed (and the pointer list was updated)... At least that's the way it was explained to me... I could have been lied to... :-) Tim ---------------------------------------------------------------- Please see the official ORACLE-L FAQ: http://www.orafaq.com ---------------------------------------------------------------- To unsubscribe send email to: oracle-l-request@xxxxxxxxxxxxx put 'unsubscribe' in the subject line. -- Archives are at //www.freelists.org/archives/oracle-l/ FAQ is at //www.freelists.org/help/fom-serve/cache/1.html ----------------------------------------------------------------- ---------------------------------------------------------------- Please see the official ORACLE-L FAQ: http://www.orafaq.com ---------------------------------------------------------------- To unsubscribe send email to: oracle-l-request@xxxxxxxxxxxxx put 'unsubscribe' in the subject line. -- Archives are at //www.freelists.org/archives/oracle-l/ FAQ is at //www.freelists.org/help/fom-serve/cache/1.html -----------------------------------------------------------------