Cacheonix in Public Cloud Environments without Multicast

Posted: July 2nd, 2016 | Author: | Filed under: Distributed Caching

Multicast is an amazing protocol when used wisely because it provides a medium for delivering messages in a group with minimal network overhead. On the ideal network a single packet maybe enough to deliver a message to thousands of hosts.

Multicast has its disadvantages. First, the packet delivery is not guaranteed, and Cacheonix addresses this by building a reliable multicast protocol on top of the standard unreliable multicast. Second, multicast has a potential for abuse becuase it’s easy to write a program that floods the network with UDP packets and even makes it impossible to communicate of the network. Unlike TCP/IP, there is nothing in standard multicast that prevents this. TCP/IP has a built-in collaborative features such as back-off in case of errors, and multicast being a lower-level protocol has none. It’s this second disadvantage that most likely forces some network administrators and all public cloud providers such as Amazon with its AWS and Google with its GAE to disable support multicast on their networks.

The good news is that Cacheonix takes in account the lack of support for multicast by public cloud providers and some LAN environments. To address this issue we developed a multicast-over-TCP/IP protocol. What’s cool about it that it allows to designate some hosts as “known addresses”, so whenever a new host joins a Cacheonix cluster or members of the cluster need to send a message to the group, the protocol will use those known-address hosts as broadcasters for the cluster. To ensure resiliency of the infrastructure it makes sense to designate more then one known-address host. This way if a broadcaster fails, other broadcasters can continue to support normal cluster operation. You can learn about configuring multicast-over-TCP/IP here.

See also:

  • Multicast Standard
    • (No) Comments: Post a response