AWS Relational Database Service (RDS): Read Replicas & Multi-AZ Instances

Friday morning. Second cup of coffee. I remember the discussion I had yesterday about the differences of RDS read replicas vs. multi-AZ instances in the Amazon compute cloud.

Actually these concepts are completely different. So it is important to pick the right one that supports your design. Here is a short comparison:

Multi-availability zone instances Read replicas
Purpose Availability Scalability
Number of copies 1 primary + 1 secondary 1 primary + n secondaries
Secondaries used during normal operation? No Yes
Synchronization Synchronous Asynchronous
Use with ELB No (only one active) Not supported
Use with elastic IPs Not supported Not supported
Cost Doubles Per Instance

And don’t forget you can use a combination of both.

WebLogic 10, 11g and WebLogic 12c and Apache mod_wl Plugin Problems

Unfortunately there is a problem with the Apache plugin for WLS10.3.1. It is rather annoying because it spoils the WebLogic cluster experience as such and even worse: it spoils my distributed cluster demo. I reproduced it working with different teams using WLS 10.3.1 / Windows 32 bit / Apache with mod_wl_20 and also mod_wl_22. And typically I encourage all my customers to create a support case concerning this.

Let me explain what happens. Typically the symptoms are the following: In a distributed cluster setup with three managed server m1, m2, and m3 you configure the plugin for load balancing which initially seems to work fine. You can monitor your requests being distributed in a round-robin way, e.g. m2, m3, m1, m2, m3, m1, m2, m3, … Then, if you kill one managed server, let’s say m2, the pattern changes to m1, m3, m1, m1, m1, m1, m1,…. So the load balancing breaks.


There is a bug now mentioned in the release notes of WLS 10.3.2 which is pointing towards the same direction but the description is rather vague.


Last week I could verify the same behaviour on two clusters with WLS 10.3.3 under Windows. I’d recommend you to try it with your Windows installation. It is reproducible even on one machine running three managed servers.

UPDATE3 WebLogic 10.3.5 and WebLogic 12c:

I thought it would be interesting to verify if the error shows up for WebLogic 12c as well – in contrast to the documentation there is currently no proxy plugin with the WebLogic 12c (12.1.1) distribution. So I used the 10.3.5 version for Linux 32 bit and guess what? The behavior is different! It is not perfect (as it used to be in the good old WLS9 days) but Oracle does have a sense of humor apparently. When running 3 managed servers I observe m1,m1,m1,m2,m2,m2,m3,m3,m3,m1,m1,m1,m2… Interesting, hmm? So it load balances but kind of addresses on server n times. Now here is the good surprise: After killing e.g. m2, I see the following pattern: m1,m1,m1,m3,m3,m3,m1,m1,m1,m3…  So unlike with the previous 10.x versions there is still load balancing but the plugin keeps assigning a particular server more than once.

UPDATE^2 WebLogic 10.3.5 Apache 2.2 plugin used for WebLogic 12c: I have to correct myself. When trying WLS 10.3.5 plugin for Apache 2.2 on CentOS6 again in 2 different setups, it seems to work fine. I could’t observe the strange lb pattern anymore. So maybe Oracle has some sense of humor but they don’t express it in the way the plugin load balances your request. Better like this 😉