The Thanksgiving break was a welcome change of pace... and on the idle driving up and down the Californian coastline, I had a few moments to work on the MySQL External Stored Procedures project. I think I pretty much have Perl functioning fully and a couple of minor problems were resolved.Yesterday, I completed the first draft of the all-revised-from-scratch WL#3771, now titled as the Plugable
This question seems to crop up again and again... In the words of one comment to my blog: "I've downloaded your External Language Stored Procedures package and am interested in trying out the JAVA part. Would appreciate if you could explain how use the downloaded stuff."Ok, on my download page, I have provided 2 different downloads which are automatically created from our source repository. A
  I actually received this book about a month ago but from
  necessity, I had to put it to one side and deal with more
  important issues. It is not a big book, only 235 pages, but it
  has an easy to read conversational style, unlike similarly titled
  technical books on the internals of other software.
  
  If you're looking for a book about database theory, this book is
  not for you. It conveys to the reader a good overview as how
  MySQL functions without delving into the theories as to how the
  algorithms work or the rationale behind their design. The book
  does a good job of at least giving a drive-by look at most of the
  significant components of MySQL. libmysys, MySQL's platform
  library which allows MySQL to work on a very wide range of
  operating systems is mentioned only under the subsection titles
  'Core API' and 'Utility API' and only lists about 30 of the
  functions available: libmysys provides the important glue between
  MySQL and the operating …
  The way InnoDB handles locking of the Buffer Pool has been
  changed with 5.0.30. Sites that have a large (16GB+)
  innodb_buffer_pool_size and high concurrency (4+ CPUs) will
  experience lock contention of the single global Buffer Pool lock
  in older versions of MySQL. In Cacti that behavior can look like
  this:
  
  5.0.26, high InnoDB load, memory saturated environment (database
  smaller than RAM), very high concurrency.
  
  CPU usage >100% not plotted properly, thus the strange graph.
  Watch the high system time consumption.
  
  After upgrading from 5.0.26 to 5.0.36, the lock contention goes
  away. The gain materializes itself as a greatly reduced system
  time usage.
  
  5.0.36, high InnoDB load, memory saturated, high
  concurrency.
  
  User time comparable, system time a lot smaller.
  For a migration, I needed a latin1_german1_cs collation, that is,
  I needed German umlauts to sort as their base characters.
  
  Here is what to do: Find your charsets directory with "SHOW
  VARIABLES LIKE 'char%dir%'".
  
  Inside that directory will be a file Index.xml. Find a free id
  and add your new collation using an unused id. Add a description
  and a name.
  
  Inside the same directory is a file latin1.xml. Inside that file,
  copy the block of the collation matching your new collation most
  closely, and adapt it as needed. In my case, I changed
  latin1_german1_ci to _cs, and modified the character values to
  match.
  
  Patch attached after the break.
  
  How to use:
  
  After applying the patch, the server must be restarted. "SHOW
  COLLATION" will now show the new latin1_german1_cs collation.
  "ALTER TABLE t CHANGE COLUMN oldcol newcol varchar(80) CHARSET
  latin1 COLLATE …