As I explained in this blog, it’s always a difficult decision for me to keep postponing my own project in order to work on the patent policy front. But once again, like so many times before, I have decided to do so for some more time. Given what happened at the July 12 hearing, there are some important things to do right away. I’ll talk a little more about my personal future on some other occasion, but suffice it to say that I’m still actively involved in the European patent policy debate!
This spring I have added some new modules to our system. The old
ones are all based on Microsoft SQL Server, but for the new ones
we decided to go with MySQL as a part of a strategy of moving to
MySQL with the whole system. We decided to use InnoBase as a
storage engine and Hibernate for accessing the database from our
Java application. No strange decisions, I believe.
The development phase is now over, with no major problems, and
the system is up and running. During this autumn we will see how
it works, but I'm nit very worried, it seems stable.
Unfortunately the customers strategy is today unclear, so we're
stuck in a situation with two databases. Personally, I feel that
using MS SQL Server in a Java environment is a questionable
approach, since Microsoft is positioning the product as a part of
the .net platform. And the 2000 version, which we are currently
running, is getting old...
The wonder of film scanners. I have found a whole lot of old pictures on scratched up black and white film and dusty slides and with the scanner they are coming back. I'm considering doing a "picture every other day/week/..." thing. Hmmn..
Here's a picture from New York in the summer of 19925. Since this is my geeky weblog, then let me put it in those terms: Before I did Perl.Several years before I used OS/2. Four yearsA year before my first Linux box. Years before I used MySQL.
Oh, and before 2001 - obviously.
(See also large size, or the Flickr Entry if you want to mark it a favorite).
update: maybe it was 1995 and not 1992...
Wrapped up a few final touches this evening on the memcache
engine:
http://tangent.org/index.pl?lnode_id=506
What works:
SELECT, UPDATE, DELETE, INSERT
INSERT into foo SELECT ...
What doesn't work?
Probably ORDER BY operations.
REPLACE (I think)
IN ()
NULL
multiple memcache servers (this would be cake though to
add)
table namespace, right now it treats the entire server as one big
namespace
There is probably a lot more I haven't thought up that is now
working. Right now the version I put up only allows you to have a
primary key and one attribute. Doing multiple attributes means
coming up with a way to store MySQL row format, aka UNIREG, in
something which would be easy for anyone to take apart. Mark
suggested XML, but XML would be damn slow to parse.
If …
I've been writing a lot of articles about locks, deadlocks, and transactions recently, and it occurs to me I've neglected to mention the single most important thing to know. If you only learn one thing about transactions in database systems, you should learn this, and learn it thoroughly -- burn it into your brain permanently, if possible.
Red Herring magazine (yes, it still exists) has several articles in the August 21st issue commemorating the 15 year anniversary of Linux. Linus Torvalds first posted information about his open source operating system on usenet just 15 years ago, the same year that the world-wide web started. Perhaps it is no coincidence that Linux and the LAMP stack (Linux, Apache, MySQL, PHP / Perl / Python) have become the dominant platform for Web applications.
Linux has continued to be the fastest growing server operating system in recent years. According to Gartrer, it grew at 35% in 2005, to about $7 billion, outstripping the growth rate of Windows by a wide margin. While Linux has not established itself on the desktop in any signficant volume, there are signs that even that could change as …
[Read more]MySQL AB announced today that its internal benchmark team has won an international contest sponsored by the renowned IT industry magazine c´t for the fastest e-commerce database application. The magazine's editors held the contest to evaluate database performance in real-world business use by creating a standard online inventory system.
Peter Zaitsev over at the excellent MySQL Performance Blog recently wrote an article on duplicated and redundant indexes – any indexes which cover exactly the same columns as another index, or cover a leftmost prefix of another index. While there are subtleties, such as FULLTEXT indexes not being the same as non-FULLTEXT, for the most part this is sufficient criteria to raise possible duplicates to a DBA’s attention. I opened my big mouth in the comments and said I could write a quick Perl script to discover possible offenders in just a few lines of code.
Well, it’s Sunday night so I will put this down to being the weekend. The background to being caught out is a request I made to my local Users Group mailing list for some information on people’s environments because I wanted to some empirical data analysis without having any more knowledge of the systems.
In summary (without the surrounding fan-fare, I was seeking):
SELECT VERSION(); SHOW STATUS; SHOW VARIABLES; // Optional
I was however perplexed why my first data point analysis (Read/Write ratio) using the Status values Com_insert, Com_update, Com_delete and Com_select was not always giving me expected results. In particular, a number of server results showed 0 for values while I knew the results came from working MySQL environments.
So, sanity check with good friend Morgan and I get the response to answer the dilemma SHOW STATUS defaults to session …
[Read more]
It's three months ago since MySQL 5.1.11 was released and many
things have changed since then. Just watch the Change Log for
5.1.12 - I believe it's one of the longest ever:
http://dev.mysql.com/doc/refman/5.1/en/news-5-1-12.html
But I've found another nice and interesting thing: watch this
bug report. This says that it's now allowed to do
many more things in Prepared Statements inside Stored
Procedures:
SHOW BINLOG EVENTS
SHOW (MASTER | SLAVE) STATUS
SHOW (MASTER | BINARY) LOGS
SHOW (PROCEDURE | FUNCTION) CODE (parsable only in debug
builds)
SHOW CREATE (PROCEDURE | FUNCTION | EVENT | TABLE | VIEW)
SHOW (AUTHORS | CONTRIBUTORS | WARNINGS | ERRORS)
CHANGE MASTER
RESET (MASTER | SLAVE | QUERY CACHE) …