Skip to Content
avatar image
Former Member

ASE CE (Active-Active)

Hi,

we plan to implement ASE Cluster Edition on AIX and would like to know if we can have one ASE with the one work load running on two nodes to have zero downtime. Something that similarly works for Oracle RAC

As against to one ASE that fails over and fails back in an active-passive scenario which has a downtime.

and are there any benefits of choosing Sybase HA over AIX Power HA option if we do choose active-passive scenario.

thank you

Humayun

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

1 Answer

  • Best Answer
    Dec 31, 2014 at 07:58 PM

    Some of this is opinion (mine only) and some of this is fact.   Let's get the fact out of the way first.

    If you use ASE HA option, it relies on an underlying OS HA service - such as AIX Power HA.   However, it increases the functionality of the OS HA service to reduce the downtime of using the OS HA service alone.    For example, when using the OS HA service alone, if the primary fails, the standby has to restart ASE from scratch - which can take a bit of time to allocate memory, clear tempdb, and go through database recovery.    When using ASE HA on top of OS HA services, the standby node already has an ASE instance running - so there is no need to do the memory allocations, etc. - tempdb is already online - as is sybsystemprocs, etc. - so the only thing ASE needs to do is perform database recovery on the databases as they are failed over.   When ASE HA was introduced, there was some additional log interactions (PFTS) added to reduce this recovery time as well......so that is one option....but.....it is strictly availability.

    CE (as of ASE CE 15.7 sp130) is primarily an availability solution as well - but it doesn't use OS HA services.   It is NOT a scalability solution (Shared Disk Cluster scalability is a whole different discussion).    However, it can be faster than even ASE HA at failing over - especially as it doesn't need to wait for OS HA services to transfer resources (e.g. mount disks, etc.).   In normal configuration with a 2 node cluster and all the users on node 1, when node 1 fails, the database still has to go through recovery - but ONLY on the pages that are in doubt due to inflight transactions at the time of failure.  In other words, the recovery time is drastically reduced over even ASE HA option.     However, there is a price to pay for this - and that is ASE CE has to use cluster locking, etc. - which can degrade application performance by as much as 10-20% - and increase the amount of resources (e.g. memory and cpu) necessary to run the application.   To minimize this, ASE 15.7 CE sp130 added a concept called "Single Instance Database" - in which a database was only accessible from one node at a time - which brought performance to be on par with non-CE.....but now recovery during failover was extended to be similar to ASE HA.

    Now, as to your question about whether you can have an app spanning 2 nodes ala RAC.   RAC and IBM DB2 SDC implementations both have added features to provide limited scalability within the cluster - e.g. partitioned databases and distributed query processing - which ASE CE has not provided.   The reasons have somewhat to do with that whole discussion on SDC scalability that we can't get into here due to the complexity/depth of the discussion.    However, that means that ASE CE *should* not be planned to provide any scalability for a single application.    That doesn't mean that if you get lucky you won't get some - but you would have to have an application that very narrowly fit within the tight parameters - e.g. negligible to no cache synchronization, predominantly read only on other nodes, etc. etc. - conditions that are so rare....I would suspect it would be more extensive re-design along with some luck that would allow it to happen.    For example, even if you shifted reporting to node 2, some of those reports might access common lookup tables being used by node 1 transactions - or access current data pages (e.g. even if doing end-of-week reporting, you will need today's data or perhaps data locality puts in on the same pages as current transactional data) - either of which requires distributed locking overhead as well as page cache transfers that can really negatively impact either application.

    Where CE really shines is when you have 3-4 or even more applications that need availability and you want to consolidate them into a single cluster - especially since ASE/HA only supports 2 node clusters.

    If it was me, this is what I would be tempted to do.

    1 Application/Database --> use ASE/CE in a 2 node cluster with the database in single instance db mode - let the second node be idle.    This is no different than ASE/HA - except you don't need to pay for OS HA services, and the failover can be a bit faster than ASE/HA.

    2-3 Application Databases --> use a single ASE/CE in N+1 availability so that a single (or perhaps 2) standby nodes are available in case any single node fails.   Once again, use single instance database for each.

    2-3 Application Databases (related apps) --> use a single ASE/CE in N+1 availability as above, but allow databases to be in full cluster mode (no single instance database) so that the applications can do light read-only data sharing (to avoid data duplication).   The apps would be setup logical cluster wise to point to a single node each (more than one app could be on the same node if necessary, but any one LC would only be associated with one active node).

    ....that would be a starter.   

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member

      that was really helpful.

      if possible, can you please redirect me to some information related to "cluster locking" as you mentioned and how the OS for the two nodes are setup and how their mountpoints are managed for a cluster edition.