A presentation on how changes in Daylight Saving Time were handled at Yahoo!. Originally given at BayLISA in May 2007. Slides are available here:
netmeister.org/misc/dst_yahoo.pdf
2. DST ’07 @ Yahoo! Slide 2
whoami
$ ME=$(id -un)
$ grep ${ME} /etc/passwd | cut -d: -f5
Jan Schaumann
$
Jan Schaumann BayLISA, May 17, 2007
3. DST ’07 @ Yahoo! Slide 3
whoami
$ ME=$(id -un)
$ grep ${ME} /etc/passwd | cut -d: -f5
Jan Schaumann
$ groups ${ME}
netbsd sa yahoo
$
Jan Schaumann BayLISA, May 17, 2007
4. DST ’07 @ Yahoo! Slide 4
whoami
$ ME=$(id -un)
$ grep ${ME} /etc/passwd | cut -d: -f5
Jan Schaumann
$ groups ${ME}
netbsd sa yahoo
$
Jan Schaumann BayLISA, May 17, 2007
5. DST ’07 @ Yahoo! Slide 5
whoami
$ ME=$(id -un)
$ grep ${ME} /etc/passwd | cut -d: -f5
Jan Schaumann
$ groups ${ME}
netbsd sa yahoo
$
Jan Schaumann BayLISA, May 17, 2007
6. DST ’07 @ Yahoo! Slide 6
whoami
$ ME=$(id -un)
$ grep ${ME} /etc/passwd | cut -d: -f5
Jan Schaumann
$ groups ${ME}
netbsd sa yahoo
$
Jan Schaumann BayLISA, May 17, 2007
7. DST ’07 @ Yahoo! Slide 7
whoami
$ ME=$(id -un)
$ grep ${ME} /etc/passwd | cut -d: -f5
Jan Schaumann
$ groups ${ME}
netbsd sa yahoo
$
Jan Schaumann BayLISA, May 17, 2007
8. DST ’07 @ Yahoo! Slide 8
whoami
$ ME=$(id -un)
$ awk -F: -v ME=${ME} ’$0 ~ ME { print $5 }’ /etc/passwd
Jan Schaumann
$ groups ${ME}
netbsd sa yahoo
$
Jan Schaumann BayLISA, May 17, 2007
9. DST ’07 @ Yahoo! Slide 9
whoami
$ ME=$(id -un)
$ grep ${ME} /etc/passwd | cut -d: -f5
Jan Schaumann
$ groups ${ME}
netbsd sa yahoo
$
Jan Schaumann BayLISA, May 17, 2007
10. DST ’07 @ Yahoo! Slide 10
whoami
$ ME=$(id -un)
$ grep ${ME} /etc/passwd | cut -d: -f5
Jan Schaumann
$ groups ${ME}
netbsd sa yahoo
$
Jan Schaumann BayLISA, May 17, 2007
11. DST ’07 @ Yahoo! Slide 11
DST ’07 @ Yahoo!
– Saving the living daylight out of you!
or How the YSA team stopped worrying
and learned to love UTC!
Jan Schaumann BayLISA, May 17, 2007
12. DST ’07 @ Yahoo! Slide 12
In the beginning...
...the universe was created.
Jan Schaumann BayLISA, May 17, 2007
13. DST ’07 @ Yahoo! Slide 13
In the beginning...
...the universe was created.
“This has made a lot of people very angry and been widely regarded as a bad move.”
Jan Schaumann BayLISA, May 17, 2007
14. DST ’07 @ Yahoo! Slide 14
Daylight Saving Time for Dummies
Jan Schaumann BayLISA, May 17, 2007
15. DST ’07 @ Yahoo! Slide 15
Daylight Saving Time for Dummies
Jan Schaumann BayLISA, May 17, 2007
16. DST ’07 @ Yahoo! Slide 16
Daylight Saving Time for Dummies
Jan Schaumann BayLISA, May 17, 2007
17. DST ’07 @ Yahoo! Slide 17
Daylight Saving Time for Dummies
Jan Schaumann BayLISA, May 17, 2007
18. DST ’07 @ Yahoo! Slide 18
Daylight Saving Time for Dummies
Jan Schaumann BayLISA, May 17, 2007
19. DST ’07 @ Yahoo! Slide 19
Daylight Saving Time for Dummies
Jan Schaumann BayLISA, May 17, 2007
20. DST ’07 @ Yahoo! Slide 20
Daylight Saving Time for Dummies
Jan Schaumann BayLISA, May 17, 2007
21. DST ’07 @ Yahoo! Slide 21
Fast forward to 2005...
Jan Schaumann BayLISA, May 17, 2007
22. DST ’07 @ Yahoo! Slide 22
Fast forward to 2005...
Jan Schaumann BayLISA, May 17, 2007
23. DST ’07 @ Yahoo! Slide 23
Fast forward to 2005...
Jan Schaumann BayLISA, May 17, 2007
24. DST ’07 @ Yahoo! Slide 24
March 11th, 2007
In 2007,
Daylight Saving Time will start on March 11th.
Jan Schaumann BayLISA, May 17, 2007
25. DST ’07 @ Yahoo! Slide 25
March 11th
Jan Schaumann BayLISA, May 17, 2007
26. DST ’07 @ Yahoo! Slide 26
March 11th
Jan Schaumann BayLISA, May 17, 2007
27. DST ’07 @ Yahoo! Slide 27
August 8th, 2005
Jan Schaumann BayLISA, May 17, 2007
28. DST ’07 @ Yahoo! Slide 28
One day later...
Yahoo! decides to take immediate action!
Jan Schaumann BayLISA, May 17, 2007
29. DST ’07 @ Yahoo! Slide 29
August, 29th, 2005
Jan Schaumann BayLISA, May 17, 2007
30. DST ’07 @ Yahoo! Slide 30
December, 22nd, 2005
Jan Schaumann BayLISA, May 17, 2007
31. DST ’07 @ Yahoo! Slide 31
August 8th, 2005
Jan Schaumann BayLISA, May 17, 2007
32. DST ’07 @ Yahoo! Slide 32
One day later...
Yahoo! decides to take immediate action!
Jan Schaumann BayLISA, May 17, 2007
33. DST ’07 @ Yahoo! Slide 33
Alas...
Jan Schaumann BayLISA, May 17, 2007
34. DST ’07 @ Yahoo! Slide 34
“Persistence of Memory”
Jan Schaumann BayLISA, May 17, 2007
35. DST ’07 @ Yahoo! Slide 35
Fast forward to January 2007...
“Hey, we need to know which hosts
can’t deal with the new DST.”
Jan Schaumann BayLISA, May 17, 2007
36. DST ’07 @ Yahoo! Slide 36
Script 0
See remote0.sh (and remote0.5.sh).
Jan Schaumann BayLISA, May 17, 2007
37. DST ’07 @ Yahoo! Slide 37
January 2007
need to know hosts that can’t deal with new DST
Jan Schaumann BayLISA, May 17, 2007
38. DST ’07 @ Yahoo! Slide 38
January 2007
need to know hosts that can’t deal with new DST
need to run a short command on each host
Jan Schaumann BayLISA, May 17, 2007
39. DST ’07 @ Yahoo! Slide 39
January 2007
need to know hosts that can’t deal with new DST
need to run a short command on each host
So: write a script that runs a single command on hosts given as input.
Jan Schaumann BayLISA, May 17, 2007
40. DST ’07 @ Yahoo! Slide 40
January 2007
need to know hosts that can’t deal with new DST
need to run a short command on each host
So: write a script that runs a single command on hosts given as input.
$ cat >checkhosts.sh <<EOS
#!/bin/sh
while read host; do
ssh $host "single-command"
done < $1
EOS
$
Jan Schaumann BayLISA, May 17, 2007
41. DST ’07 @ Yahoo! Slide 41
“single command”
TIMTOWTDI:
TZ=PST8PDT date -j 200703110200
Jan Schaumann BayLISA, May 17, 2007
42. DST ’07 @ Yahoo! Slide 42
“single command”
TIMTOWTDI (or is there?):
TZ=PST8PDT date -j 200703110200
– conflicting flags and return values on different platforms
Jan Schaumann BayLISA, May 17, 2007
43. DST ’07 @ Yahoo! Slide 43
“single command”
TIMTOWTDI (or is there?):
TZ=PST8PDT date -j 200703110200
– conflicting flags and return values on different platforms
zdump -v PST8PDT | grep "2007 UTC = Sun Mar 11"
Jan Schaumann BayLISA, May 17, 2007
44. DST ’07 @ Yahoo! Slide 44
“single command”
TIMTOWTDI (or is there?):
TZ=PST8PDT date -j 200703110200
– conflicting flags and return values on different platforms
zdump -v PST8PDT | grep "2007 UTC = Sun Mar 11"
– triggers a bug in FreeBSD/amd64 and zdump spins out of control
Jan Schaumann BayLISA, May 17, 2007
45. DST ’07 @ Yahoo! Slide 45
“single command”
TIMTOWTDI (or is there?):
TZ=PST8PDT date -j 200703110200
– conflicting flags and return values on different platforms
zdump -v PST8PDT | grep "2007 UTC = Sun Mar 11"
– triggers a bug in FreeBSD/amd64 and zdump spins out of control
env TZ=PST8PDT perl -e ’@t=localtime 1173682800; exit 1 - pop @t’
Jan Schaumann BayLISA, May 17, 2007
46. DST ’07 @ Yahoo! Slide 46
“single command”
TIMTOWTDI (or is there?):
TZ=PST8PDT date -j 200703110200
– conflicting flags and return values on different platforms
zdump -v PST8PDT | grep "2007 UTC = Sun Mar 11"
– triggers a bug in FreeBSD/amd64 and zdump spins out of control
env TZ=PST8PDT perl -e ’@t=localtime 1173682800; exit 1 - pop @t’
– Hooray!
Jan Schaumann BayLISA, May 17, 2007
47. DST ’07 @ Yahoo! Slide 47
“single command”
TIMTOWTDI (or is there?):
TZ=PST8PDT date -j 200703110200
– conflicting flags and return values on different platforms
zdump -v PST8PDT | grep "2007 UTC = Sun Mar 11"
– triggers a bug in FreeBSD/amd64 and zdump spins out of control
env TZ=PST8PDT perl -e ’@t=localtime 1173682800; exit 1 - pop @t’
– Hooray!
Yes, we happen to have perl installed on every machine.
Jan Schaumann BayLISA, May 17, 2007
48. DST ’07 @ Yahoo! Slide 48
Script I
See remote1.sh.
Jan Schaumann BayLISA, May 17, 2007
49. DST ’07 @ Yahoo! Slide 49
So far, so good!
We now have a list of hostnames, sorted by:
operating system
need to patch
Jan Schaumann BayLISA, May 17, 2007
50. DST ’07 @ Yahoo! Slide 50
So far, so good!
We now have a list of hostnames, sorted by:
operating system
need to patch
Surely, our work here is done.
Jan Schaumann BayLISA, May 17, 2007
51. DST ’07 @ Yahoo! Slide 51
So far, so good!
We now have a list of hostnames, sorted by:
operating system
need to patch
Surely, our work here is done.
Well, not entirely...
Jan Schaumann BayLISA, May 17, 2007
52. DST ’07 @ Yahoo! Slide 52
Forward to middle of February 2007...
Jan Schaumann BayLISA, May 17, 2007
53. DST ’07 @ Yahoo! Slide 53
Forward to middle of February 2007...
detailed communication with properties about impact
gather information from vendors
select patching
full-time focus on data collection
Jan Schaumann BayLISA, May 17, 2007
54. DST ’07 @ Yahoo! Slide 54
Data Collection
need to know hosts that can’t deal with new DST
need to run a short command on each host
env TZ=PST8PDT perl -e ’@t=localtime 1173682800; exit 1 - pop @t’
Jan Schaumann BayLISA, May 17, 2007
55. DST ’07 @ Yahoo! Slide 55
Data Collection
need to know hosts that can’t deal with new DST
need to run a short command on each host
env TZ=PST8PDT perl -e ’@t=localtime 1173682800; exit 1 - pop @t’
need to know what packages are installed
Jan Schaumann BayLISA, May 17, 2007
56. DST ’07 @ Yahoo! Slide 56
Data Collection
need to know hosts that can’t deal with new DST
need to run a short command on each host
env TZ=PST8PDT perl -e ’@t=localtime 1173682800; exit 1 - pop @t’
need to know what packages are installed
need to know timestamp of a certain file
Jan Schaumann BayLISA, May 17, 2007
57. DST ’07 @ Yahoo! Slide 57
Data Collection
need to know hosts that can’t deal with new DST
need to run a short command on each host
env TZ=PST8PDT perl -e ’@t=localtime 1173682800; exit 1 - pop @t’
need to know what packages are installed
need to know timestamp of a certain file
need to know if client is running oracle
Jan Schaumann BayLISA, May 17, 2007
58. DST ’07 @ Yahoo! Slide 58
Data Collection
need to know hosts that can’t deal with new DST
need to run a short command on each host
env TZ=PST8PDT perl -e ’@t=localtime 1173682800; exit 1 - pop @t’
need to know what packages are installed
need to know timestamp of a certain file
need to know if client is running oracle
So: revamp tool to not run hard-coded command, but any given script.
Jan Schaumann BayLISA, May 17, 2007
59. DST ’07 @ Yahoo! Slide 59
Script II
See remote2.sh and remote3.sh.
Jan Schaumann BayLISA, May 17, 2007
60. DST ’07 @ Yahoo! Slide 60
Data Collection: Input
input from central database
Jan Schaumann BayLISA, May 17, 2007
61. DST ’07 @ Yahoo! Slide 61
Data Collection: Input
input from central database
input from DNS zone files
Jan Schaumann BayLISA, May 17, 2007
62. DST ’07 @ Yahoo! Slide 62
Data Collection: Input
input from central database
input from DNS zone files
prepare exclusion lists
exclude windows hosts
exclude routers, switches etc.
exclude NetApp filers
exclude hosts in corp
exclude DNS rotations, decomissioned hosts, placeholder DNS entries etc.
...
Jan Schaumann BayLISA, May 17, 2007
63. DST ’07 @ Yahoo! Slide 63
Data Collection: Output
a lot of information is collected → output per host fairly large
sort output by patch-needed
sort output by OS
sort output by property
Jan Schaumann BayLISA, May 17, 2007
64. DST ’07 @ Yahoo! Slide 64
Patch actions
FreeBSD
Linux
Solaris
Jan Schaumann BayLISA, May 17, 2007
65. DST ’07 @ Yahoo! Slide 65
Patch actions
FreeBSD
all versions prior to a certain 4.11 based image require patch
Linux
Solaris
Jan Schaumann BayLISA, May 17, 2007
66. DST ’07 @ Yahoo! Slide 66
Patch actions
FreeBSD
all versions prior to a certain 4.11 based image require patch
some versions higher than that (including some 6.x based images) may
require a patch
Linux
Solaris
Jan Schaumann BayLISA, May 17, 2007
67. DST ’07 @ Yahoo! Slide 67
Patch actions
FreeBSD
all versions prior to a certain 4.11 based image require patch
some versions higher than that (including some 6.x based images) may
require a patch
upgrade to latest 6.x based version recommended
Linux
Solaris
Jan Schaumann BayLISA, May 17, 2007
68. DST ’07 @ Yahoo! Slide 68
Patch actions
FreeBSD
all versions prior to a certain 4.11 based image require patch
some versions higher than that (including some 6.x based images) may
require a patch
upgrade to latest 6.x based version recommended
patch installation innocuous → no reboot required
Linux
Solaris
Jan Schaumann BayLISA, May 17, 2007
69. DST ’07 @ Yahoo! Slide 69
Patch actions
FreeBSD
all versions prior to a certain 4.11 based image require patch
some versions higher than that (including some 6.x based images) may
require a patch
upgrade to latest 6.x based version recommended
patch installation innocuous → no reboot required
Linux
no change necessary for versions >= RHEL3u7, RHEL4u3
Solaris
Jan Schaumann BayLISA, May 17, 2007
70. DST ’07 @ Yahoo! Slide 70
Patch actions
FreeBSD
all versions prior to a certain 4.11 based image require patch
some versions higher than that (including some 6.x based images) may
require a patch
upgrade to latest 6.x based version recommended
patch installation innocuous → no reboot required
Linux
no change necessary for versions >= RHEL3u7, RHEL4u3
installation of rpm tzdata for other versions RHEL3 and RHEL 4
Solaris
Jan Schaumann BayLISA, May 17, 2007
71. DST ’07 @ Yahoo! Slide 71
Patch actions
FreeBSD
all versions prior to a certain 4.11 based image require patch
some versions higher than that (including some 6.x based images) may
require a patch
upgrade to latest 6.x based version recommended
patch installation innocuous → no reboot required
Linux
no change necessary for versions >= RHEL3u7, RHEL4u3
installation of rpm tzdata for other versions RHEL3 and RHEL 4
upgrade to latest RHEL release for all other rpm based Linux versions
recommend
Solaris
Jan Schaumann BayLISA, May 17, 2007
72. DST ’07 @ Yahoo! Slide 72
Patch actions
FreeBSD
all versions prior to a certain 4.11 based image require patch
some versions higher than that (including some 6.x based images) may
require a patch
upgrade to latest 6.x based version recommended
patch installation innocuous → no reboot required
Linux
no change necessary for versions >= RHEL3u7, RHEL4u3
installation of rpm tzdata for other versions RHEL3 and RHEL 4
upgrade to latest RHEL release for all other rpm based Linux versions
recommend
forced (ugh!) installation of tzdata rpm possible
Solaris
Jan Schaumann BayLISA, May 17, 2007
73. DST ’07 @ Yahoo! Slide 73
Patch actions
FreeBSD
all versions prior to a certain 4.11 based image require patch
some versions higher than that (including some 6.x based images) may
require a patch
upgrade to latest 6.x based version recommended
patch installation innocuous → no reboot required
Linux
no change necessary for versions >= RHEL3u7, RHEL4u3
installation of rpm tzdata for other versions RHEL3 and RHEL 4
upgrade to latest RHEL release for all other rpm based Linux versions
recommend
forced (ugh!) installation of tzdata rpm possible
Solaris
Oy vey!
Jan Schaumann BayLISA, May 17, 2007
74. DST ’07 @ Yahoo! Slide 74
TZDATA everywhere!
ICU (Internationalization Components for Unicode)
JVM
MySQL
Oracle
Perl DateTime
Jan Schaumann BayLISA, May 17, 2007
75. DST ’07 @ Yahoo! Slide 75
TZDATA everywhere!
ICU (Internationalization Components for Unicode)
need to update ICU to >= 3.6
need to recompile apps linked against libicu∗
JVM
MySQL
Oracle
Perl DateTime
Jan Schaumann BayLISA, May 17, 2007
76. DST ’07 @ Yahoo! Slide 76
TZDATA everywhere!
ICU (Internationalization Components for Unicode)
need to update ICU to >= 3.6
need to recompile apps linked against libicu∗
JVM
need to update to recent version
March 8th (!): new bug in JDK’s found (for EST, MST, and HST zones); no
vendor patch but workaround solution
MySQL
Oracle
Perl DateTime
Jan Schaumann BayLISA, May 17, 2007
77. DST ’07 @ Yahoo! Slide 77
TZDATA everywhere!
ICU (Internationalization Components for Unicode)
need to update ICU to >= 3.6
need to recompile apps linked against libicu∗
JVM
need to update to recent version
March 8th (!): new bug in JDK’s found (for EST, MST, and HST zones); no
vendor patch but workaround solution
MySQL
restart only for MySQL 4.0
upgrade “mysql tzdata” package for MySQL 4.1
Jan Schaumann BayLISA, May 17, 2007
78. DST ’07 @ Yahoo! Slide 78
TZDATA everywhere!
Oracle
patch following instructions provided by vendor
March 3rd: new patch → repatch!
Perl DateTime
Jan Schaumann BayLISA, May 17, 2007
79. DST ’07 @ Yahoo! Slide 79
TZDATA everywhere!
Oracle
patch following instructions provided by vendor
March 3rd: new patch → repatch!
Perl DateTime
update to >= 0.38
total of < 100 hosts using this package
Jan Schaumann BayLISA, May 17, 2007
80. DST ’07 @ Yahoo! Slide 80
Post-patch actions
if possible, reboot
verify that host displays correct date
adjust /etc/localtime if not a symlink
patch virtual hosts / jails on given host
ensure all services are restarted (mysql, apache, etc.)
per-application tests
Jan Schaumann BayLISA, May 17, 2007
81. DST ’07 @ Yahoo! Slide 81
Data Collection
need to know hosts that can’t deal with new DST
need to run a short command on each host
env TZ=PST8PDT perl -e ’@t=localtime 1173682800; exit 1 - pop @t’
need to know what packages are installed
need to know timestamp of a certain file
need to know if client is running oracle
check /etc/localtime
Jan Schaumann BayLISA, May 17, 2007
82. DST ’07 @ Yahoo! Slide 82
Data Collection
need to know hosts that can’t deal with new DST
need to run a short command on each host
env TZ=PST8PDT perl -e ’@t=localtime 1173682800; exit 1 - pop @t’
need to know what packages are installed
need to know timestamp of a certain file
need to know if client is running oracle
check /etc/localtime
check for virtual hosts / jails
Jan Schaumann BayLISA, May 17, 2007
83. DST ’07 @ Yahoo! Slide 83
Data Collection
need to know hosts that can’t deal with new DST
need to run a short command on each host
env TZ=PST8PDT perl -e ’@t=localtime 1173682800; exit 1 - pop @t’
need to know what packages are installed
need to know timestamp of a certain file
need to know if client is running oracle
check /etc/localtime
check for virtual hosts / jails
gather output of ps auwwx
Jan Schaumann BayLISA, May 17, 2007
84. DST ’07 @ Yahoo! Slide 84
Data Collection
need to know hosts that can’t deal with new DST
need to run a short command on each host
env TZ=PST8PDT perl -e ’@t=localtime 1173682800; exit 1 - pop @t’
need to know what packages are installed
need to know timestamp of a certain file
need to know if client is running oracle
check /etc/localtime
check for virtual hosts / jails
gather output of ps auwwx
oh, and also gather firmware information, why not
Jan Schaumann BayLISA, May 17, 2007
85. DST ’07 @ Yahoo! Slide 85
Script N
See remote.final.sh.
Jan Schaumann BayLISA, May 17, 2007
86. DST ’07 @ Yahoo! Slide 86
How to run the script remotely?
while read host; do
scp remote.sh $host:/tmp/
ssh $host "/tmp/remote.sh"
done < $1
Jan Schaumann BayLISA, May 17, 2007
87. DST ’07 @ Yahoo! Slide 87
How to run the script remotely?
while read host; do
scp remote.sh $host:/tmp/
ssh $host "/tmp/remote.sh"
done < $1
But: scp(1) followed by ssh(1) is expensive
Jan Schaumann BayLISA, May 17, 2007
88. DST ’07 @ Yahoo! Slide 88
How to run the script remotely?
while read host; do
cat remote.sh | ssh $host
"cat >/tmp/remote.sh; /tmp/remote.sh"
done < $1
Jan Schaumann BayLISA, May 17, 2007
89. DST ’07 @ Yahoo! Slide 89
How to run the script remotely?
while read host; do
cat remote.sh | ssh $host
"cat >/tmp/remote.sh; /tmp/remote.sh"
done < $1
But: /bin/sh vs. Solaris anybody?
Jan Schaumann BayLISA, May 17, 2007
90. DST ’07 @ Yahoo! Slide 90
How to run the script remotely?
while read host; do
cat remote.sh | ssh $host
"cat >/tmp/remote.sh;
/usr/local/bin/bash /tmp/remote.sh"
done < $1
Jan Schaumann BayLISA, May 17, 2007
91. DST ’07 @ Yahoo! Slide 91
How to run the script remotely?
while read host; do
cat remote.sh | ssh $host
"cat >/tmp/remote.sh;
/usr/local/bin/bash /tmp/remote.sh"
done < $1
But: contrary to common assumption, /usr/local/bin/bash does not exist on all
hosts
Jan Schaumann BayLISA, May 17, 2007
92. DST ’07 @ Yahoo! Slide 92
How to run the script remotely?
while read host; do
cat remote.sh | ssh $host
"cat >/tmp/remote.sh &&
bash /tmp/remote.sh"
done < $1
Jan Schaumann BayLISA, May 17, 2007
93. DST ’07 @ Yahoo! Slide 93
How to run the script remotely?
while read host; do
cat remote.sh | ssh $host
"cat >/tmp/remote.sh &&
bash /tmp/remote.sh"
done < $1
appears to work, even if it relies on $PATH
Jan Schaumann BayLISA, May 17, 2007
94. DST ’07 @ Yahoo! Slide 94
Performing data collection
originally done on a single host, sequentially
Jan Schaumann BayLISA, May 17, 2007
95. DST ’07 @ Yahoo! Slide 95
Performing data collection
originally done on a single host, sequentially
(full scan took almost a week)
Jan Schaumann BayLISA, May 17, 2007
96. DST ’07 @ Yahoo! Slide 96
Performing data collection
originally done on a single host, sequentially
(full scan took almost a week)
then done in parallel on single host
Jan Schaumann BayLISA, May 17, 2007
97. DST ’07 @ Yahoo! Slide 97
Performing data collection
originally done on a single host, sequentially
(full scan took almost a week)
then done in parallel on single host
(try to get work done on a machine with a load >100)
Jan Schaumann BayLISA, May 17, 2007
98. DST ’07 @ Yahoo! Slide 98
Performing data collection
originally done on a single host, sequentially
(full scan took almost a week)
then done in parallel on single host
(try to get work done on a machine with a load >100)
then done in parallel on multiple hosts
Jan Schaumann BayLISA, May 17, 2007
99. DST ’07 @ Yahoo! Slide 99
Performing data collection
originally done on a single host, sequentially
(full scan took almost a week)
then done in parallel on single host
(try to get work done on a machine with a load >100)
then done in parallel on multiple hosts
(managed to fill up all local diskspace when uploading results)
Jan Schaumann BayLISA, May 17, 2007
100. DST ’07 @ Yahoo! Slide 100
Performing data collection
originally done on a single host, sequentially
(full scan took almost a week)
then done in parallel on single host
(try to get work done on a machine with a load >100)
then done in parallel on multiple hosts
(managed to fill up all local diskspace when uploading results)
finally done massively parallel and unattended on many dedicated hosts with
plenty of diskspace
Jan Schaumann BayLISA, May 17, 2007
101. DST ’07 @ Yahoo! Slide 101
Performing data collection
originally done on a single host, sequentially
(full scan took almost a week)
then done in parallel on single host
(try to get work done on a machine with a load >100)
then done in parallel on multiple hosts
(managed to fill up all local diskspace when uploading results)
finally done massively parallel and unattended on many dedicated hosts with
plenty of diskspace
(full scan took about 50 minutes)
Jan Schaumann BayLISA, May 17, 2007
102. DST ’07 @ Yahoo! Slide 102
“Parallelization” in shell - *cough*
split input into N files
farm out to N hosts (slaves)
on each slave
split input into M files
run M jobs in parallel
run all jobs in screen(1) session, then detach
on master, wait until N slaves report done
perform post-processing on master, dump data into http dir and send mail
Jan Schaumann BayLISA, May 17, 2007
103. DST ’07 @ Yahoo! Slide 103
Actual patching
mostly done by property
“leftovers” done by YSA team
FreeBSD patches trivial (thanks to internal kick-ass package manager)
RHEL patching less trivial
Solaris patching least trivial
Jan Schaumann BayLISA, May 17, 2007
104. DST ’07 @ Yahoo! Slide 104
March 11th cometh!
SAs everywhere frantically exchange batteries in fire alarms.
Jan Schaumann BayLISA, May 17, 2007
105. DST ’07 @ Yahoo! Slide 105
March 11th goes!
Jan Schaumann BayLISA, May 17, 2007
106. DST ’07 @ Yahoo! Slide 106
March 12th comes!
SAs return to their daily routine.
Jan Schaumann BayLISA, May 17, 2007
107. DST ’07 @ Yahoo! Slide 107
DST ’07 - Bottom line
a non-event
Jan Schaumann BayLISA, May 17, 2007
108. DST ’07 @ Yahoo! Slide 108
DST ’07 - Bottom line
a non-event (excellent!)
Jan Schaumann BayLISA, May 17, 2007
109. DST ’07 @ Yahoo! Slide 109
DST ’07 - Bottom line
a non-event (excellent!)
we now have a bunch of useful tools to do massive scans
Jan Schaumann BayLISA, May 17, 2007
110. DST ’07 @ Yahoo! Slide 110
DST ’07 - Bottom line
a non-event (excellent!)
we now have a bunch of useful tools to do massive scans
(though they should be rewritten in perl, python, C, anything!)
Jan Schaumann BayLISA, May 17, 2007
111. DST ’07 @ Yahoo! Slide 111
DST ’07 - Bottom line
a non-event (excellent!)
we now have a bunch of useful tools to do massive scans
(though they should be rewritten in perl, python, C, anything!)
not all of our machines are entirely idle
Jan Schaumann BayLISA, May 17, 2007
112. DST ’07 @ Yahoo! Slide 112
DST ’07 - Bottom line
a non-event (excellent!)
we now have a bunch of useful tools to do massive scans
(though they should be rewritten in perl, python, C, anything!)
not all of our machines are entirely idle:
up 72 days, 23:01, 0 users, load averages: 1021.89, 974.45, 881.28
Jan Schaumann BayLISA, May 17, 2007
113. DST ’07 @ Yahoo! Slide 113
DST ’07 - Bottom line
a non-event (excellent!)
we now have a bunch of useful tools to do massive scans
(though they should be rewritten in perl, python, C, anything!)
not all of our machines are entirely idle:
up 72 days, 23:01, 0 users, load averages: 1021.89, 974.45, 881.28
up 235 days, 11:39, 0 users, load averages: 305.07, 344.82, 338.55
Jan Schaumann BayLISA, May 17, 2007
114. DST ’07 @ Yahoo! Slide 114
DST ’07 - Bottom line
a non-event (excellent!)
we now have a bunch of useful tools to do massive scans
(though they should be rewritten in perl, python, C, anything!)
not all of our machines are entirely idle:
up 72 days, 23:01, 0 users, load averages: 1021.89, 974.45, 881.28
up 235 days, 11:39, 0 users, load averages: 305.07, 344.82, 338.55
up 1885 days, 12 mins, 0 users, load averages: 33.36, 31.59, 29.82
Jan Schaumann BayLISA, May 17, 2007
115. DST ’07 @ Yahoo! Slide 115
DST ’07 - Bottom line
a non-event (excellent!)
we now have a bunch of useful tools to do massive scans
(though they should be rewritten in perl, python, C, anything!)
not all of our machines are entirely idle:
up 72 days, 23:01, 0 users, load averages: 1021.89, 974.45, 881.28
up 235 days, 11:39, 0 users, load averages: 305.07, 344.82, 338.55
up 1885 days, 12 mins, 0 users, load averages: 33.36, 31.59, 29.82
we continue to do periodical scans and gather the same data
Jan Schaumann BayLISA, May 17, 2007
116. DST ’07 @ Yahoo! Slide 116
DST ’07 - Bottom line
a non-event (excellent!)
we now have a bunch of useful tools to do massive scans
(though they should be rewritten in perl, python, C, anything!)
not all of our machines are entirely idle:
up 72 days, 23:01, 0 users, load averages: 1021.89, 974.45, 881.28
up 235 days, 11:39, 0 users, load averages: 305.07, 344.82, 338.55
up 1885 days, 12 mins, 0 users, load averages: 33.36, 31.59, 29.82
we continue to do periodical scans and gather the same data
we still will be on alert on October 28th (old switchback date)
Jan Schaumann BayLISA, May 17, 2007
117. DST ’07 @ Yahoo! Slide 117
DST ’07 - Bottom line
Jan Schaumann BayLISA, May 17, 2007
118. DST ’07 @ Yahoo! Slide 118
DST ’07 - Bottom line
a non-event (excellent!)
we now have a bunch of useful tools to do massive scans
(though they should be rewritten in perl, python, C, anything!)
not all of our machines are entirely idle:
up 1885 days, 12 mins, 0 users, load averages: 33.36, 31.59, 29.82
up 72 days, 23:01, 0 users, load averages: 1021.89, 974.45, 881.28
up 235 days, 11:39, 0 users, load averages: 305.07, 344.82, 338.55
we continue to do periodical scans and gather the same data
we still will be on alert on October 28th (old switchback date) and November 4th
(new switchback date)
Jan Schaumann BayLISA, May 17, 2007
119. DST ’07 @ Yahoo! Slide 119
DST ’07 - Bottom line
Jan Schaumann BayLISA, May 17, 2007
120. DST ’07 @ Yahoo! Slide 120
DST ’07 - Bottom line
a non-event (excellent!)
we now have a bunch of useful tools to do massive scans
(though they should be rewritten in perl, python, C, anything!)
not all of our machines are entirely idle:
up 1885 days, 12 mins, 0 users, load averages: 33.36, 31.59, 29.82
up 72 days, 23:01, 0 users, load averages: 1021.89, 974.45, 881.28
up 235 days, 11:39, 0 users, load averages: 305.07, 344.82, 338.55
we continue to do periodical scans and gather the same data
we still will be on alert on October 28th (old switchback date) and November 4th
(new switchback date)
we’ll be rather busy in the Fall of 2037...
Jan Schaumann BayLISA, May 17, 2007
121. DST ’07 @ Yahoo! Slide 121
Y2K38
time t stored as a signed 32bit int
latest time possible: 03:14:07 UTC on Tuesday, January 19, 2038
Suggested solution: using a signed 64bit value.
Jan Schaumann BayLISA, May 17, 2007
122. DST ’07 @ Yahoo! Slide 122
Y2K38
time t stored as a signed 32bit int
latest time possible: 03:14:07 UTC on Tuesday, January 19, 2038
Suggested solution: using a signed 64bit value.
New wraparound date on Sunday, December 4, 292,277,026,596 (ie in about 290
billion years).
Jan Schaumann BayLISA, May 17, 2007
123. DST ’07 @ Yahoo! Slide 123
Y2K38
time t stored as a signed 32bit int
latest time possible: 03:14:07 UTC on Tuesday, January 19, 2038
Suggested solution: using a signed 64bit value.
New wraparound date on Sunday, December 4, 292,277,026,596 (ie in about 290
billion years).
“This is not widely regarded as a pressing issue.”
Jan Schaumann BayLISA, May 17, 2007
124. DST ’07 @ Yahoo! Slide 124
To summarize:
∆t′ = γ(∆t − v∆x )
c2
v∆x′
∆t = γ(∆t′ + 2 )
c
∆t′ = γ∆t
Time is relative...
Jan Schaumann BayLISA, May 17, 2007
125. DST ’07 @ Yahoo! Slide 125
To summarize:
∆t′ = γ(∆t − v∆x )
c2
v∆x′
∆t = γ(∆t′ + 2 )
c
∆t′ = γ∆t
Time is relative (and an illusion)...
Jan Schaumann BayLISA, May 17, 2007
126. DST ’07 @ Yahoo! Slide 126
To summarize:
...and Daylight Saving Time doubly so.
Jan Schaumann BayLISA, May 17, 2007