SharePlex Optimistic Commit Explained

 So the other day, as I was using a taxi to get to the airport for a flight. I was watching all the traffic on the freeway and it got me thinking about SharePlex’s optimistic commit feature and a taxi are similar.  

How can SharePlex and a taxi have anything in common you ask? Well they are both responsible for moving something from one point to another with as little latency or delay as possible.

Optimistic commit is one of the features that comes as a part of SharePlex that helps dramatically cut down latency between the source and target. This is accomplished by moving the data from the source to the target as soon as it is seen in the redo logs. We base this philosophy on the premise that if you are inserting data into a production database you will most likely commit it. We don’t wait for the commit to happen in your source database before moving the data to the target. We have a constant small stream of changed data going across your network so that the data is actually on, and in most cases, inserted into your target. You just won’t be able to see it until the commit comes through. The advantage of this is that you don’t have to worry about waiting until logs or extract files or any other method that is out there to either switch or are created on your source database before the data gets moved. This also helps alleviate network bandwidth since you are not blasting large archive logs or files through your network at once. Optimistic commit also helps prevent the loss of transactions if there is a failure somewhere in your data replication. Since the transactions are happening as they are seen in the redo logs and shipped across to the target, if something happens let’s say to your network, the data is already there. If you were shipping archive logs or other files and something happens to that log or file you would lose every transaction that’s in it.

So what does a taxi have to do with this. Well, think of a taxi as SharePlex’s optimistic commit. You have all these little taxi cars all lined up waiting to take you to your target destination. You jump in and off you go, next guy jumps in, then the next one, and so on. No waiting for a bus to show up, load up a bunch of other people, and then take you to your destination (like a created extract file or archive log). What happens if the bus breaks down? Everyone has to go back and start over or worse they wander off and get lost. If an a taxi breaks down on the guy behind you, only that one guy has to start over, everyone else just keeps moving on.

Let’s expand on our example for all you amusement park lovers. Smart You and a hundred of your friends are all taking taxi’s to the amusement park. All of your friends get there and are standing at the entrance, they are just waiting for you (the commit) to show up with the tickets. You give them their tickets and everyone is off to go ride the “DROP OF DEATH” roller coaster. Now at the same time your neighbor, who is not as smart as you, plans the same trip, but they rent a bus. So now everyone has to wait for the bus to show up…..wait for everyone one by one to get into the bus…..blast through the highway (network) slowing everyone down due to its size……then wait for everyone to get out of the bus and to the entrance…..and then wait for your neighbor to give out the tickets (the commit) before they can get in. Or worse, what happens if the bus breaks down? No one gets to go and ride on the “DROP OF DEATH” and everyone’s day will be ruined.

So to sum it all up, when you need data replication think about SharePlex and its optimistic commit ability and how nice it is to ride in a taxi and not cram into a bus.

For more information, visit our SharePlex product page.

About the Author
With over 15 years as an Oracle DBA working for multi-national Financial institutions, I know the importance of replication and reliability. As the requirements for more and more data grow and with more...
  • Thanks Mike for some valuable information on Shareplex. I have a customer with a unique scenario where he wants have both the source and target databases in read/ write mode.

    The transactions will hit both the nodes in a kind of load balancing mode. Can we achieve it using Shareplex?

  • Hi Deepak, Thanks for the comments.  The scenario you are describing where they would like to have both source and target database in read/write mode is call Peer - Peer replication.  SharePlex is great for that method of replication.  One of our Product Specialist did a great blog explaining Peer-Peer replication. Here is the link to her blog. Read it over and let me know if you have questions.