SlideShare a Scribd company logo
1 of 51
Download to read offline
Doing
                               Horrible Things
                                  to DNS
                                (in the name of science)




   @sh1mmer                                          SF Perf Meetup
Thursday, September 23, 2010
The basics of DNS



Thursday, September 23, 2010
Thursday, September 23, 2010
Thursday, September 23, 2010
Thursday, September 23, 2010
Thursday, September 23, 2010
Thursday, September 23, 2010
San Francisco - Mission Branch
Thursday, September 23, 2010
Thursday, September 23, 2010
Thursday, September 23, 2010
San Francisco - Main Library
Thursday, September 23, 2010
Thursday, September 23, 2010
Thursday, September 23, 2010
New York City - 5th & 42nd Branch
Thursday, September 23, 2010
Thursday, September 23, 2010
Thursday, September 23, 2010
New York City - 5th & 42nd Branch
Thursday, September 23, 2010
Thursday, September 23, 2010
San Francisco - Main Library
Thursday, September 23, 2010
San Francisco - Main Library
Thursday, September 23, 2010
Thursday, September 23, 2010
San Francisco - Mission Branch
Thursday, September 23, 2010
San Francisco - Mission Branch
Thursday, September 23, 2010
Thursday, September 23, 2010
Thursday, September 23, 2010
Thursday, September 23, 2010
Thursday, September 23, 2010
DNS for performance



Thursday, September 23, 2010
Page Load Time vs. Bandwidth
Thursday, September 23, 2010
Page Load Time vs. Round Trip Time
Thursday, September 23, 2010
Trend Curves for Bandwidth vs. RTT
Thursday, September 23, 2010
Serial HTTP loading
Thursday, September 23, 2010
Parallel HTTP loading
Thursday, September 23, 2010
Why not just use a bunch of domains?




Thursday, September 23, 2010
DNS Querying
Thursday, September 23, 2010
Ideal? 1 domain many threads




Thursday, September 23, 2010
Option 1: SPDY




Thursday, September 23, 2010
Good: Multi-thread TCP connections
                        Bad: Only works on Chrome




Thursday, September 23, 2010
Option 2: Do horrible things to DNS




Thursday, September 23, 2010
Good: Works now
                               Bad: Might have to violate RFCs




Thursday, September 23, 2010
Option 2a - Mucking about with C names




Thursday, September 23, 2010
CNAMES are hosts which
                               are aliases of other hosts




Thursday, September 23, 2010
ajax1.hackerhouse.org.        1800   IN   CNAME   ajax2.hackerhouse.
 ajax2.hackerhouse.org.        1800   IN   CNAME   ajax3.hackerhouse.
 ajax3.hackerhouse.org.        1800   IN   CNAME   ajax4.hackerhouse.
 ajax4.hackerhouse.org.        1800   IN   CNAME   ajax5.hackerhouse.
 ajax5.hackerhouse.org.        1800   IN   CNAME   ajax.hackerhouse.
 ajax.hackerhouse.org.         1800   IN   A       127.0.0.1




Thursday, September 23, 2010
We now have 6 hostnames




Thursday, September 23, 2010
Good: 6 hostnames
                                 Bad: Inflexible




Thursday, September 23, 2010
Option 2b - Doing weird things with RRs




Thursday, September 23, 2010
RR is the section of a DNS response which
              contains the HOST records




Thursday, September 23, 2010
;; QUESTION SECTION:
 ;ajax.hackerhouse.org.           IN A

 ;; ANSWER SECTION:
 ajax.hackerhouse.org.         60 IN A   184.106.231.91




Thursday, September 23, 2010
;; QUESTION SECTION:
 ;ajax.hackerhouse.org.             IN A
 ;ajax1.hackerhouse.org.            IN A
 ;ajax2.hackerhouse.org.            IN A

 ;; ANSWER SECTION:
 ajax.hackerhouse.org.         60    IN    A   184.106.231.91
 ajax1.hackerhouse.org.        60    IN    A   184.106.231.90
 ajax2.hackerhouse.org.        60    IN    A   184.106.231.89




Thursday, September 23, 2010
;; QUESTION SECTION:
 ;ajax.hackerhouse.org.         IN A

 ;; ANSWER SECTION:
 ajax.hackerhouse.org.         60   IN   A   184.106.231.91

 ;; ADDITIONAL SECTION:
 ajax1.hackerhouse.org.        60   IN   A   184.106.231.90
 ajax2.hackerhouse.org.        60   IN   A   184.106.231.89




Thursday, September 23, 2010
Good: Flexible
                               Bad: Caching /Violating RFCs




Thursday, September 23, 2010

More Related Content

Viewers also liked

Kullanılabilirlik Testi - Usability Testing
Kullanılabilirlik Testi - Usability TestingKullanılabilirlik Testi - Usability Testing
Kullanılabilirlik Testi - Usability TestingBilge Adam Kurumsal
 
Ganesh nayak finals 09
Ganesh nayak finals 09Ganesh nayak finals 09
Ganesh nayak finals 09sidshanker
 
Integration of Child Protection in DRR
Integration of Child Protection in DRRIntegration of Child Protection in DRR
Integration of Child Protection in DRRAshish Damle
 
JUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with DockerJUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with DockerCloudBees
 
Pricing_Seminar_5_11_05
Pricing_Seminar_5_11_05Pricing_Seminar_5_11_05
Pricing_Seminar_5_11_05Avantika Daing
 
Pedoman menciptakan keluarga berdasarkan agama
Pedoman menciptakan keluarga berdasarkan agamaPedoman menciptakan keluarga berdasarkan agama
Pedoman menciptakan keluarga berdasarkan agamapjj_kemenkes
 
Hubungan korea selatan dan amerika serikat
Hubungan korea selatan dan amerika serikatHubungan korea selatan dan amerika serikat
Hubungan korea selatan dan amerika serikatdemeiati_n_kusumaningrum
 
KB 3 Pandangan Agama-agama terhadap Tindakan Praktik Kebidanan Keluarga Beren...
KB 3 Pandangan Agama-agama terhadap Tindakan Praktik Kebidanan Keluarga Beren...KB 3 Pandangan Agama-agama terhadap Tindakan Praktik Kebidanan Keluarga Beren...
KB 3 Pandangan Agama-agama terhadap Tindakan Praktik Kebidanan Keluarga Beren...pjj_kemenkes
 
Endüstri Mühendisliği
Endüstri MühendisliğiEndüstri Mühendisliği
Endüstri Mühendisliğiuludagmmf
 
Pengembangan potensi diri_2
Pengembangan potensi diri_2Pengembangan potensi diri_2
Pengembangan potensi diri_2adhi Nugroho
 
Penggunaan ejaan bahasa indonesia
Penggunaan ejaan bahasa indonesiaPenggunaan ejaan bahasa indonesia
Penggunaan ejaan bahasa indonesiaOki Endrata Wijaya
 
Pengembangan transportasi multimoda pada negara berkembang
Pengembangan transportasi multimoda pada negara berkembangPengembangan transportasi multimoda pada negara berkembang
Pengembangan transportasi multimoda pada negara berkembangOki Endrata Wijaya
 
LAPORAN SISTEM TATA UDARA (AC THOSIBA 12 PK) PADA GERBONG KERETA API
LAPORAN SISTEM TATA UDARA (AC THOSIBA 12 PK) PADA GERBONG KERETA APILAPORAN SISTEM TATA UDARA (AC THOSIBA 12 PK) PADA GERBONG KERETA API
LAPORAN SISTEM TATA UDARA (AC THOSIBA 12 PK) PADA GERBONG KERETA APIDeva Saputra
 
Power point alat indera manusia bagian bagian mata untuk media pembelajaran i...
Power point alat indera manusia bagian bagian mata untuk media pembelajaran i...Power point alat indera manusia bagian bagian mata untuk media pembelajaran i...
Power point alat indera manusia bagian bagian mata untuk media pembelajaran i...iip syaripudin
 

Viewers also liked (19)

Kullanılabilirlik Testi - Usability Testing
Kullanılabilirlik Testi - Usability TestingKullanılabilirlik Testi - Usability Testing
Kullanılabilirlik Testi - Usability Testing
 
Ganesh nayak finals 09
Ganesh nayak finals 09Ganesh nayak finals 09
Ganesh nayak finals 09
 
Integration of Child Protection in DRR
Integration of Child Protection in DRRIntegration of Child Protection in DRR
Integration of Child Protection in DRR
 
JUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with DockerJUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with Docker
 
Pricing_Seminar_5_11_05
Pricing_Seminar_5_11_05Pricing_Seminar_5_11_05
Pricing_Seminar_5_11_05
 
Pedoman menciptakan keluarga berdasarkan agama
Pedoman menciptakan keluarga berdasarkan agamaPedoman menciptakan keluarga berdasarkan agama
Pedoman menciptakan keluarga berdasarkan agama
 
Hubungan korea selatan dan amerika serikat
Hubungan korea selatan dan amerika serikatHubungan korea selatan dan amerika serikat
Hubungan korea selatan dan amerika serikat
 
KB 3 Pandangan Agama-agama terhadap Tindakan Praktik Kebidanan Keluarga Beren...
KB 3 Pandangan Agama-agama terhadap Tindakan Praktik Kebidanan Keluarga Beren...KB 3 Pandangan Agama-agama terhadap Tindakan Praktik Kebidanan Keluarga Beren...
KB 3 Pandangan Agama-agama terhadap Tindakan Praktik Kebidanan Keluarga Beren...
 
Bab 12
Bab 12Bab 12
Bab 12
 
Endüstri Mühendisliği
Endüstri MühendisliğiEndüstri Mühendisliği
Endüstri Mühendisliği
 
Adab al isti'dzan
Adab al isti'dzanAdab al isti'dzan
Adab al isti'dzan
 
Mekatronika
MekatronikaMekatronika
Mekatronika
 
Bab 8
Bab 8Bab 8
Bab 8
 
Pengembangan potensi diri_2
Pengembangan potensi diri_2Pengembangan potensi diri_2
Pengembangan potensi diri_2
 
Penggunaan ejaan bahasa indonesia
Penggunaan ejaan bahasa indonesiaPenggunaan ejaan bahasa indonesia
Penggunaan ejaan bahasa indonesia
 
Pengembangan transportasi multimoda pada negara berkembang
Pengembangan transportasi multimoda pada negara berkembangPengembangan transportasi multimoda pada negara berkembang
Pengembangan transportasi multimoda pada negara berkembang
 
LAPORAN SISTEM TATA UDARA (AC THOSIBA 12 PK) PADA GERBONG KERETA API
LAPORAN SISTEM TATA UDARA (AC THOSIBA 12 PK) PADA GERBONG KERETA APILAPORAN SISTEM TATA UDARA (AC THOSIBA 12 PK) PADA GERBONG KERETA API
LAPORAN SISTEM TATA UDARA (AC THOSIBA 12 PK) PADA GERBONG KERETA API
 
makalah pertanian
makalah pertanianmakalah pertanian
makalah pertanian
 
Power point alat indera manusia bagian bagian mata untuk media pembelajaran i...
Power point alat indera manusia bagian bagian mata untuk media pembelajaran i...Power point alat indera manusia bagian bagian mata untuk media pembelajaran i...
Power point alat indera manusia bagian bagian mata untuk media pembelajaran i...
 

Similar to Sf perf

Clojure in the Field
Clojure in the FieldClojure in the Field
Clojure in the FieldAaron Bedra
 
Rubinius - What Have You Done For Me Lately?
Rubinius - What Have You Done For Me Lately?Rubinius - What Have You Done For Me Lately?
Rubinius - What Have You Done For Me Lately?evanphx
 
Rubinius - What Have You Done For Me Lately
Rubinius - What Have You Done For Me LatelyRubinius - What Have You Done For Me Lately
Rubinius - What Have You Done For Me Latelyevanphx
 
Opening up the Social Web - Standards that are bridging the Islands
Opening up the Social Web - Standards that are bridging the Islands Opening up the Social Web - Standards that are bridging the Islands
Opening up the Social Web - Standards that are bridging the Islands Bastian Hofmann
 
Seaside - Why should you care? (Dynamic Stockholm 2010)
Seaside - Why should you care? (Dynamic Stockholm 2010)Seaside - Why should you care? (Dynamic Stockholm 2010)
Seaside - Why should you care? (Dynamic Stockholm 2010)jfitzell
 

Similar to Sf perf (6)

Clojure in the Field
Clojure in the FieldClojure in the Field
Clojure in the Field
 
Ajax solr
Ajax solrAjax solr
Ajax solr
 
Rubinius - What Have You Done For Me Lately?
Rubinius - What Have You Done For Me Lately?Rubinius - What Have You Done For Me Lately?
Rubinius - What Have You Done For Me Lately?
 
Rubinius - What Have You Done For Me Lately
Rubinius - What Have You Done For Me LatelyRubinius - What Have You Done For Me Lately
Rubinius - What Have You Done For Me Lately
 
Opening up the Social Web - Standards that are bridging the Islands
Opening up the Social Web - Standards that are bridging the Islands Opening up the Social Web - Standards that are bridging the Islands
Opening up the Social Web - Standards that are bridging the Islands
 
Seaside - Why should you care? (Dynamic Stockholm 2010)
Seaside - Why should you care? (Dynamic Stockholm 2010)Seaside - Why should you care? (Dynamic Stockholm 2010)
Seaside - Why should you care? (Dynamic Stockholm 2010)
 

More from Tom Croucher

Using Node.js to Build Great Streaming Services - HTML5 Dev Conf
Using Node.js to  Build Great  Streaming Services - HTML5 Dev ConfUsing Node.js to  Build Great  Streaming Services - HTML5 Dev Conf
Using Node.js to Build Great Streaming Services - HTML5 Dev ConfTom Croucher
 
Streams are Awesome - (Node.js) TimesOpen Sep 2012
Streams are Awesome - (Node.js) TimesOpen Sep 2012 Streams are Awesome - (Node.js) TimesOpen Sep 2012
Streams are Awesome - (Node.js) TimesOpen Sep 2012 Tom Croucher
 
Using Node.js to improve the performance of Mobile apps and Mobile web
Using Node.js to improve  the performance of  Mobile apps and Mobile webUsing Node.js to improve  the performance of  Mobile apps and Mobile web
Using Node.js to improve the performance of Mobile apps and Mobile webTom Croucher
 
Writing robust Node.js applications
Writing robust Node.js applicationsWriting robust Node.js applications
Writing robust Node.js applicationsTom Croucher
 
Creating the Internet of Things with JavaScript - Fluent Conf
Creating the Internet of Things with JavaScript - Fluent ConfCreating the Internet of Things with JavaScript - Fluent Conf
Creating the Internet of Things with JavaScript - Fluent ConfTom Croucher
 
Using Node.js to make HTML5 work for everyone
Using Node.js to make HTML5 work for everyone Using Node.js to make HTML5 work for everyone
Using Node.js to make HTML5 work for everyone Tom Croucher
 
A million connections and beyond - Node.js at scale
A million connections and beyond - Node.js at scaleA million connections and beyond - Node.js at scale
A million connections and beyond - Node.js at scaleTom Croucher
 
OSCON 2011 - Node.js Tutorial
OSCON 2011 - Node.js TutorialOSCON 2011 - Node.js Tutorial
OSCON 2011 - Node.js TutorialTom Croucher
 
Lessons from a coding veteran - Web Directions @Media
Lessons from a coding veteran - Web Directions @MediaLessons from a coding veteran - Web Directions @Media
Lessons from a coding veteran - Web Directions @MediaTom Croucher
 
Multi-tiered Node Architectures - JSConf 2011
Multi-tiered Node Architectures - JSConf 2011Multi-tiered Node Architectures - JSConf 2011
Multi-tiered Node Architectures - JSConf 2011Tom Croucher
 
A language for the Internet: Why JavaScript and Node.js is right for Internet...
A language for the Internet: Why JavaScript and Node.js is right for Internet...A language for the Internet: Why JavaScript and Node.js is right for Internet...
A language for the Internet: Why JavaScript and Node.js is right for Internet...Tom Croucher
 
A language for the Internet: Why JavaScript and Node.js is right for Internet...
A language for the Internet: Why JavaScript and Node.js is right for Internet...A language for the Internet: Why JavaScript and Node.js is right for Internet...
A language for the Internet: Why JavaScript and Node.js is right for Internet...Tom Croucher
 
How to stop writing spaghetti code
How to stop writing spaghetti codeHow to stop writing spaghetti code
How to stop writing spaghetti codeTom Croucher
 
Doing Horrible Things with DNS - Web Directions South
Doing Horrible Things with DNS - Web Directions SouthDoing Horrible Things with DNS - Web Directions South
Doing Horrible Things with DNS - Web Directions SouthTom Croucher
 
Doing Horrible Things to DNS in the Name of Science - SF Performance Meetup
Doing Horrible Things to DNS in the Name of Science - SF Performance MeetupDoing Horrible Things to DNS in the Name of Science - SF Performance Meetup
Doing Horrible Things to DNS in the Name of Science - SF Performance MeetupTom Croucher
 
JavaScript is the new black - Why Node.js is going to rock your world - Web 2...
JavaScript is the new black - Why Node.js is going to rock your world - Web 2...JavaScript is the new black - Why Node.js is going to rock your world - Web 2...
JavaScript is the new black - Why Node.js is going to rock your world - Web 2...Tom Croucher
 
How to stop writing spaghetti code - JSConf.eu 2010
How to stop writing spaghetti code - JSConf.eu 2010How to stop writing spaghetti code - JSConf.eu 2010
How to stop writing spaghetti code - JSConf.eu 2010Tom Croucher
 
Node.js and How JavaScript is Changing Server Programming
Node.js and How JavaScript is Changing Server Programming  Node.js and How JavaScript is Changing Server Programming
Node.js and How JavaScript is Changing Server Programming Tom Croucher
 
Server Side JavaScript - You ain't seen nothing yet
Server Side JavaScript - You ain't seen nothing yetServer Side JavaScript - You ain't seen nothing yet
Server Side JavaScript - You ain't seen nothing yetTom Croucher
 
JavaScript Everywhere! Creating a 100% JavaScript web stack
JavaScript Everywhere! Creating a 100% JavaScript web stackJavaScript Everywhere! Creating a 100% JavaScript web stack
JavaScript Everywhere! Creating a 100% JavaScript web stackTom Croucher
 

More from Tom Croucher (20)

Using Node.js to Build Great Streaming Services - HTML5 Dev Conf
Using Node.js to  Build Great  Streaming Services - HTML5 Dev ConfUsing Node.js to  Build Great  Streaming Services - HTML5 Dev Conf
Using Node.js to Build Great Streaming Services - HTML5 Dev Conf
 
Streams are Awesome - (Node.js) TimesOpen Sep 2012
Streams are Awesome - (Node.js) TimesOpen Sep 2012 Streams are Awesome - (Node.js) TimesOpen Sep 2012
Streams are Awesome - (Node.js) TimesOpen Sep 2012
 
Using Node.js to improve the performance of Mobile apps and Mobile web
Using Node.js to improve  the performance of  Mobile apps and Mobile webUsing Node.js to improve  the performance of  Mobile apps and Mobile web
Using Node.js to improve the performance of Mobile apps and Mobile web
 
Writing robust Node.js applications
Writing robust Node.js applicationsWriting robust Node.js applications
Writing robust Node.js applications
 
Creating the Internet of Things with JavaScript - Fluent Conf
Creating the Internet of Things with JavaScript - Fluent ConfCreating the Internet of Things with JavaScript - Fluent Conf
Creating the Internet of Things with JavaScript - Fluent Conf
 
Using Node.js to make HTML5 work for everyone
Using Node.js to make HTML5 work for everyone Using Node.js to make HTML5 work for everyone
Using Node.js to make HTML5 work for everyone
 
A million connections and beyond - Node.js at scale
A million connections and beyond - Node.js at scaleA million connections and beyond - Node.js at scale
A million connections and beyond - Node.js at scale
 
OSCON 2011 - Node.js Tutorial
OSCON 2011 - Node.js TutorialOSCON 2011 - Node.js Tutorial
OSCON 2011 - Node.js Tutorial
 
Lessons from a coding veteran - Web Directions @Media
Lessons from a coding veteran - Web Directions @MediaLessons from a coding veteran - Web Directions @Media
Lessons from a coding veteran - Web Directions @Media
 
Multi-tiered Node Architectures - JSConf 2011
Multi-tiered Node Architectures - JSConf 2011Multi-tiered Node Architectures - JSConf 2011
Multi-tiered Node Architectures - JSConf 2011
 
A language for the Internet: Why JavaScript and Node.js is right for Internet...
A language for the Internet: Why JavaScript and Node.js is right for Internet...A language for the Internet: Why JavaScript and Node.js is right for Internet...
A language for the Internet: Why JavaScript and Node.js is right for Internet...
 
A language for the Internet: Why JavaScript and Node.js is right for Internet...
A language for the Internet: Why JavaScript and Node.js is right for Internet...A language for the Internet: Why JavaScript and Node.js is right for Internet...
A language for the Internet: Why JavaScript and Node.js is right for Internet...
 
How to stop writing spaghetti code
How to stop writing spaghetti codeHow to stop writing spaghetti code
How to stop writing spaghetti code
 
Doing Horrible Things with DNS - Web Directions South
Doing Horrible Things with DNS - Web Directions SouthDoing Horrible Things with DNS - Web Directions South
Doing Horrible Things with DNS - Web Directions South
 
Doing Horrible Things to DNS in the Name of Science - SF Performance Meetup
Doing Horrible Things to DNS in the Name of Science - SF Performance MeetupDoing Horrible Things to DNS in the Name of Science - SF Performance Meetup
Doing Horrible Things to DNS in the Name of Science - SF Performance Meetup
 
JavaScript is the new black - Why Node.js is going to rock your world - Web 2...
JavaScript is the new black - Why Node.js is going to rock your world - Web 2...JavaScript is the new black - Why Node.js is going to rock your world - Web 2...
JavaScript is the new black - Why Node.js is going to rock your world - Web 2...
 
How to stop writing spaghetti code - JSConf.eu 2010
How to stop writing spaghetti code - JSConf.eu 2010How to stop writing spaghetti code - JSConf.eu 2010
How to stop writing spaghetti code - JSConf.eu 2010
 
Node.js and How JavaScript is Changing Server Programming
Node.js and How JavaScript is Changing Server Programming  Node.js and How JavaScript is Changing Server Programming
Node.js and How JavaScript is Changing Server Programming
 
Server Side JavaScript - You ain't seen nothing yet
Server Side JavaScript - You ain't seen nothing yetServer Side JavaScript - You ain't seen nothing yet
Server Side JavaScript - You ain't seen nothing yet
 
JavaScript Everywhere! Creating a 100% JavaScript web stack
JavaScript Everywhere! Creating a 100% JavaScript web stackJavaScript Everywhere! Creating a 100% JavaScript web stack
JavaScript Everywhere! Creating a 100% JavaScript web stack
 

Sf perf