Sunday, May 31, 2015

more notes from the Thursday night talk

Chander Dhall's Thursday night presentation feeds notes I have here and here, and what is more...

  • Scalability, performance, responsiveness, availability, and downtime impact are all things to consider per Chander. This long list may be cleaned up a little perhaps to Consistency, Availability, and Partition Tolerance in Brewer's CAP Theorem in which CAP is an acronym for these three items. In a traditional project cost, quantity, and time are often the three variables and while two of them may be set in stone it's not realistic to expect success with all three locked. One of the three varies dependent on the others. In Brewer's CAP Theorem it's the same with the C, the A, and the P. Consistency suggests that nothing gets dropped while partition tolerance means that parts of the system will stay up even when one piece fails as defined in a whitepaper by Seth Gilbert and Nancy Lynch (following upon Eric Brewer's ideas) and that only total system failure should keep the system from being up. (Look for single points of failure and try to eliminate them.)
  • In a sticky session approach to load balancing there are many snapshots of the database and a particular snapshot will be kept in association with a specific user session for data consistency across the session, but the initial session distribution is randomized across the snapshots. This varies from round-robin DNS in which further upstream there are many different app servers and the DNS routing in is comparably varied. Part of Roy Fielding's REST spec is a requirement that no matter what server a hypertext transfer protocol request goes to, the next HTTP request should be able to go to ANY server. This does not cast a favorable light on round-robin DNS, but both of these ideas (sticky sessions too) are bad ideas per the consensus that emerged in Thursday night's talk.
  • fandango.com was praised for its search. It breaks searchable things into four categories that users care about and there isn't any random noise beyond the categorizations.
  • One scales out horizontally and up (adding more RAM and a bigger hard drive for instance) vertically. PolyglotPersistence (as exhibited at the second link I give in this blog posting at the very top) is an example of horizontal scaling. Polyglot as a term implies knowing many languages and I guess Chander's polyglot approach involves many data implementation means. I guess the syntax for interacting with the three merits three different languages.

No comments:

Post a Comment