Over in CNET, Matt Asay has posted an article The open-source job shortage, talking about large
enterprises' need for developers with deep MySQL
experience.
While he is correct about the need for talent with that skillset,
there are plenty of effective solutions.
A number of months ago, Harper Reed asked me where he could hire MySQL
talent, and I told him to take his existing staff, and run them
thru MySQL training. That seems to have worked for him.
That's now my stock answer when people ask where they can hire
MySQL talent.
When you need to go up to the next level, get and read the book
High Performance MySQL, Second Edition. The book
is …
Just thought I’d update you. We got quite a few good errata from readers, and I took a couple weekends and went through the book with a fine-toothed comb, catching typos and subtle errors that crept in at some point (TPC benchmarks were labeled as TCP benchmarks – did you catch that one?). I marked up my book and mailed it to O’Reilly, who went well above and beyond what they normally do for errata.
Before I get to post my OSCON reflection I see I didn’t post this (which I reference).
At OSCON opening keynotes Tim O’Reilly Interviews Monty Widenius & Brian Aker. This provided some interesting answers in a Q & A session. Here is some of the discussion.
TO: So 6 months in. How is it with Sun?
BA: Really rewarding environment. My first question was? You are
going to send me free H/W. No H/W has been delivered yet, or
access to the masses, still hoping. Sun is a very engineering
driven company.
MW. Thanks God we didn’t go public. Starting to do closed sourced
components, going public this would have continued.
TO: Sun saved MySQL from public market/ insulated from
market.
MW: 6 months in, Sun still trying to figure out what they bought.
Sun has made a commitment to open source throughout the
organization. …
I'm still working away at this book. What an experience. Constant
cloud over my head, making me feel obligated to use any spare
time I have I should be writing. Oh, and then there is Drizzle
which requires some time, not to mention DBD::drizzle.
Most of the work is reading, making sure what I write is correct.
I mean, most of what I write off the top of my head is correct,
because I know the material, but I want to make sure. There's
always that inner voice inside that says "Is this crap?" or "Wait
till so and so reads this, they will be shaking their heads and
saying blah blah blah". I suppose that's my insecurities
talking.
I like what I've written so far. I think is *is* good.
The basic content about MySQL gets a bit tedious, but I've
started working on other sections such as stored procedures and
now UDFs. I came up with a great UDF idea that I will use for an
example in the book as well as a great new …
Inspired by http://blogs.sun.com/thava/entry/dump_mysql_frm_file_header I jumped into http://forge.mysql.com/wiki/MySQL_Internals_File_Formats and tried to write a decoder for the .frm files. Sadly the internals document is missing all the interesting parts.
So it was time to get the hands dirty and get into the code ... it got really dirty. But I found a little gem in there.
If you are interested take a look at
open_binary_frm() or create_frm() in
sql/table.cc or mysql_create_frm() in
sql/unireg.cc. It has all the glory. You may have to
wipe off the dust a bit has this code is (I bet) as old as MySQL
is.
.frm-files are from a time when Monty wrote
Unireg …
I haven’t been using vim for very long, but I’ve gotten over the initial learning curve of getting used to the different editing modes. With some help from the guys in #vim on irc.freenode.net, I managed to get this gem:
map <C-d> :call SwitchDB()<CR>
:function SwitchDB()
: let g:current_db = input("Database > ")
:endfunction
map <C-m> :call Doquery()<CR>
:function Doquery()
: if !exists("g:current_db")
: call SwitchDB()
: endif
: let query_string = input(g:current_db . " > " )
: if query_string != ""
: exe "!mysql " . g:current_db . " -e \"" . escape(query_string,
'"') . "\""
: endif
:endfunction
Control-m to execute a query. Control-d to switch databases. It’ll prompt you the first time.
Before I get to post my OSCON reflection I see I didn’t post this (which I reference). At OSCON opening keynotes Tim O’Reilly Interviews Monty Widenius & Brian Aker . This provided some interesting answers in a Q & A session.
I thought a bit more on the adaptive send algorithm and kind of
like
the following approach:
Keep track of how many sends we are at maximum allowed to
wait
until we send in any ways. This is the state of the adaptive
send
algorithm which is adapted through the following use of
statistics
(we call this state variable max_waits):
For each send we calculate how long time has passed since
the
send that was sent max_waits sends ago. We also do the same
for
max_waits + 1. At certain intervals (e.g. every 10 milliseconds)
we
calculate the mean wait that a send would have to do, if this
lies
within half the desired maximum wait then we accept the
current
state, if also the mean value using max_waits + 1 is
acceptable
then we increase the state by one. If the state isn't
acceptable
we decrease it by one.
In the actual decision …
I spent some time today with the IT team of a large enterprise. There has been talk of an open-source job boom, but what I heard today suggested a relative dearth of critical open-source talent.
In this company's case, the IT team needs developers with deep MySQL experience. It'...
I am traveling to Europe next week to brief major prospects in Germany (Daimler, MAN) as well as to attend to administrative matters at Pythian Europe in Prague and would love to meet any readers of this blog during this trip!
I’m especially interested in meeting:
- DBAs, Applications Administrators and Systems Administrators,
- Potential customers (IT Directors, DBA Managers, Supply Managers for IT), and
- Potential partners (IT product of service companies that could partner with Pythian to delight our mutual customers)
Here is my itinerary:
- Sunday, August: Frankfurt,
- Monday, August 4: Stuttgart,
- Tuesday, August 5: Munich, and
- Wednesday, August 6 through Saturday, August 9: Prague, Czech Republic.
Please reach out to me using vallee@pythian.com if you would like to meet!