Presentation is loading. Please wait.

Presentation is loading. Please wait.

Scalable Web Site Antipatterns Justin Leitgeb Stack Builders Inc.

Similar presentations


Presentation on theme: "Scalable Web Site Antipatterns Justin Leitgeb Stack Builders Inc."— Presentation transcript:

1 Scalable Web Site Antipatterns Justin Leitgeb Stack Builders Inc.

2 Overview Based on architectures that have caused significant down- time and pain Like examples in Nygard's book, but more emphasis on essential rather than accidental properties of system

3 Anti-pattern 1: Monotonically-increasing data set with rapid growth Having a system that relies on querying all historical data Requires joins from mega-tables (hundreds of millions of rows) Often from automatically aggregated data

4 Detection Slow query log SHOW FULL PROCESSLIST SHOW ENGINE INNODB STATUS vmstat

5

6 Anti-solutions Partitioning Pre-caching (cron jobs) Switching to MyISAM NoSQL?

7 NoSQL Out-of-the box solutions with NoSQL (e.g., Mongo) help with data modeling Use CAP instead of ACID May lead to better ability to distribute algorithms But: o Haven't had as much effort yet expended on engines as MySQL (INNODB) o Often use the same algorithms (e.g., Btree indexes) o Can require more dev time (e.g., Cassandra and good implementation of distributed algorithms)

8 Stop the bleeding Cut off long queries Turn off site sections Fail whale

9 Band-aids Obvious - adding app servers, memcached, bigger DB server Adding app servers puts more pressure on DB server HTTP Caching (varnish) MySQL tuning (look for things like FILESORT) Read slaves

10 Solutions Hard-limit data volume - look for cases where data decreases in value with time o Add features related to scale Distributed algorithms and data stores Data warehousing

11 Anti-pattern 2: Allowing "risky" writes to block HTTP responses Symptoms: o Slow requests o Servers hitting MaxClients and 500 error

12 Possible Causes Possible causes: database backed analytics tracking Session management Any SQL DML (UPDATE, DELETE)

13 Risk increases with: The number of requests invoking the write operation Traffic Concurrent background operations The algorithmic complexity of the write Slow AWS I/O on EBS

14 Solutions Asynchronize! o Write to a queue Write to memcached or other non-ACID store o Later bring to data warehouse for advanced analytics

15 More info 1.Nygard, Michael T. Release It!: Design and Deploy Production-ready Software. Raleigh, NC: Pragmatic, 2007. 2.Fowler, Martin. Patterns of Enterprise Application Architecture. Boston: Addison-Wesley, 2003. 3.Kimball, Ralph. The Data Warehouse Toolkit: Practical Techniques for Building Dimensional Data Warehouses: John Wiley & Sons 2010. 4.Schwartz, Baron. High Performance MySQL: O'Reilly, 2008


Download ppt "Scalable Web Site Antipatterns Justin Leitgeb Stack Builders Inc."

Similar presentations


Ads by Google