The current US financial situation has claimed a victim in the Web 2.0 world — Uber. I’m not sure if this is the first significant name, but it will not be the last site running MySQL where investors will be quick to cut losses and move on.

Indexes are a great way to improve performed in a MySQL database, when used appropriately.
When used in-appropriately the impact can be a degradation of performance.
The following example from Movable Type shows how when reviewing the slow query log I found numerous occurrences of Inserts take 3 or more seconds, with no reported lock contention time for this insert.
# Query_time: 3 Lock_time: 0 Rows_sent: 0 Rows_examined: 0 SET insert_id=6281; INSERT INTO mt_comment (comment_author, comment_blog_id, comment_commenter_id, comment_created_by, comment_created_on, comment_email, comment_entry_id, comment_ip, comment_junk_log, comment_junk_score, comment_junk_status, comment_last_moved_on, comment_modified_by, comment_modified_on, comment_parent_id, comment_text, comment_url, comment_visible) VALUES (...)
The impact here, is that SELECT statements to the mt_comment table are also blocked because this table is in MyISAM. It was reviewing slow running SELECT statements that the cause of the slow inserts was easily determined.
mysql> explain SELECT comment_id
-> FROM mt_comment
-> WHERE (comment_visible = '1') AND (comment_blog_id = '3') AND (comment_entry_id = '276')
-> ORDER BY comment_created_on DESC;
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: mt_comment
type: ref
possible_keys: mt_comment_visible,mt_comment_entry_id,mt_comment_blog_id,mt_comment_blog_stat,mt_comment_visible_date,mt_comment_entry_visible,mt_comment_blog_visible,mt_comment_blog_ip_date,mt_comment_blog_url
key: mt_comment_entry_visible
key_len: 6
ref: const,const
rows: 99
Extra: Using where
1 row in set (0.00 sec)
CREATE TABLE `mt_comment` (
`comment_id` int(11) NOT NULL auto_increment,
`comment_author` varchar(100) default NULL,
`comment_blog_id` int(11) NOT NULL default '0',
`comment_commenter_id` int(11) default NULL,
`comment_created_by` int(11) default NULL,
`comment_created_on` datetime default NULL,
`comment_email` varchar(75) default NULL,
`comment_entry_id` int(11) NOT NULL default '0',
`comment_ip` varchar(16) default NULL,
`comment_junk_log` mediumtext,
`comment_junk_score` float default NULL,
`comment_junk_status` smallint(6) default '0',
`comment_last_moved_on` datetime NOT NULL default '2000-01-01 00:00:00',
`comment_modified_by` int(11) default NULL,
`comment_modified_on` datetime default NULL,
`comment_parent_id` int(11) default NULL,
`comment_text` mediumtext,
`comment_url` varchar(255) default NULL,
`comment_visible` tinyint(4) default NULL,
PRIMARY KEY (`comment_id`),
KEY `mt_comment_commenter_id` (`comment_commenter_id`),
KEY `mt_comment_visible` (`comment_visible`),
KEY `mt_comment_junk_score` (`comment_junk_score`),
KEY `mt_comment_ip` (`comment_ip`),
KEY `mt_comment_parent_id` (`comment_parent_id`),
KEY `mt_comment_entry_id` (`comment_entry_id`),
KEY `mt_comment_email` (`comment_email`),
KEY `mt_comment_last_moved_on` (`comment_last_moved_on`),
KEY `mt_comment_created_on` (`comment_created_on`),
KEY `mt_comment_junk_status` (`comment_junk_status`),
KEY `mt_comment_blog_id` (`comment_blog_id`),
KEY `mt_comment_blog_stat` (`comment_blog_id`,`comment_junk_status`,`comment_created_on`),
KEY `mt_comment_visible_date` (`comment_visible`,`comment_created_on`),
KEY `mt_comment_entry_visible` (`comment_entry_id`,`comment_visible`,`comment_created_on`),
KEY `mt_comment_blog_visible` (`comment_blog_id`,`comment_visible`,`comment_created_on`,`comment_id`),
KEY `mt_comment_blog_ip_date` (`comment_blog_id`,`comment_ip`,`comment_created_on`),
KEY `mt_comment_junk_date` (`comment_junk_status`,`comment_created_on`),
KEY `mt_comment_blog_url` (`comment_blog_id`,`comment_visible`,`comment_url`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
As you can see, the table has 18 indexes. This means that for every row inserted, 18 separate index inserts are required.
When adding an Index to a table, first determine the usage patterns that will use the index, consolidating indexes when possible and removing obvious duplicates (in the above example, the single column comment_blog_id is a classic duplicate index).
Adding an index will generally help SELECT performance, depending on cardinality, but will always impact INSERT,UPDATE and DELETE performance.
Another down side of too many indexes is the MySQL optimizer has much more work to do to eliminate beneficial indexes for every Query Execution Plan (QEP) that is undertaken.
Indeed I have seen worse, in one case a table with ~120 columns, move then 20 single column indexes AND a 3 part primary key summing 40 bytes in InnoDB. The impact was terrible for performance, with the Index size being 3x times the data size.
Ronald Bradford, Principal of 42SQL provides Consulting and Advisory Services in Data Architecture, Performance and Scalability for MySQL Solutions. An IT industry professional for two decades with extensive database experience in MySQL, Oracle and Ingres his expertise covers data architecture, software development, migration, performance analysis and production system implementations. His knowledge from 10 years of specialized consulting across many industry sectors, technologies and countries has provided unique insight into being able to provide solutions to problems. For more information Contact Ronald.
Why you do not use GRANT ALL ON *.*?
I was with a client today, and after rebooting a MySQL 5.0.22 instance cleanly with /etc/init.d/mysqld service, I observed the following error, because you always check the log file after starting MySQL.
080923 16:16:24 InnoDB: Started; log sequence number 0 406173600 080923 16:16:24 [Note] /usr/libexec/mysqld: ready for connections. Version: ‘5.0.22-log’ socket: ‘/var/lib/mysql/mysql.sock’ port: 3306 Source distribution 080923 16:16:24 [ERROR] /usr/libexec/mysqld: Table ‘./schema_name/table_name’ is marked as crashed and should be repaired 080923 16:16:24 [Warning] Checking table: ‘./schema_name/table_name’
Now, I’d just added to the /etc/my.cnf a number of settings including:
myisam_recovery=FORCE,BACKUP
which explains the last line of the log file. When attempting to connect to the server via the mysql client I got the error:
“To many connections”
So now, I’m in a world of hurt, I can’t connect to the database as the ‘root’ user to observe what’s going on. I know that table it’s decided to repair is 1.4G in size, and the server is madly reading from disk. Shutting down the apache server that was connecting to the database is not expected to solve the problem, and does not, because connections must wait to timeout.
MySQL reserves a single super privileged connection, i.e. ‘root’ to the mysql server specifically for this reason, unless all the connections have this privilege. The problem, as often experienced with clients, is the permissions of the application user is simply unwarranted.
mysql> select host,user,password from mysql.user; +-----------+-------------+------------------+ | host | user | password | +-----------+-------------+------------------+ | localhost | root | 76bec9cc7dd32bc0 | | xxxxxx | root | | | xxxxxx | | | | localhost | | | | % | xxxxxxxxxxx | 0716d6776318d605 | | localhost | xxxxxxxxxxx | 0716d6776318d605 | | localhost | xxxxxxx | 6885269c4a550a03 | +-----------+-------------+------------------+ 7 rows in set (0.00 sec) mysql> show grants for xxxxxxx@localhost; +---------------------------------------------------------------------------------------+ | Grants for xxxxxxx@localhost | +---------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO xxxxxxx'@'localhost' IDENTIFIED BY PASSWORD '6885269c4a550a03' | | GRANT ALL PRIVILEGES ON `xxxxxxx`.* TO 'xxxxxxx'@'localhost' WITH GRANT OPTION | +---------------------------------------------------------------------------------------+ 2 rows in set (0.00 sec)
So the problem is ALL PRIVILEGES is granted to an application user. Never do this!
The solution is to remove all unused users, anonymous users, and create the application user with just the privileges needed.
DROP USER xxxxxxxxxxx@localhost; DROP USER xxxxxxxxxxx@'%'; DELETE FROM mysql.user WHERE user=''; FLUSH PRIVILEGES; DROP USER xxxxxxx@localhost; CREATE USER xxxxxxx@localhost IDENTIFIED BY 'xxxxxxx'; GRANT SELECT,INSERT,UPDATE,DELETE ON xxxxxxx.* TOxxxxxxx@localhost;
relational
solid
theory
implementation
databases
professional
foundation
I’ve been doing some research and evaluation of more cloud computing. Specifically my focus has been on data store, and considering how to augment an existing operation using a popular database such as MySQL.
I’ve been looking first at Google App Engine and now I have my SimpleDB Beta today will be looking here next.
Some observations I’ve struggled with are:
But the biggest concern and hurdle I’m understanding from my traditional principles is loss of control. Loss of control for monitoring and instrumentation, performance, availability and backup and recovery.
Recent issues in performance and unavailability have highlighted that App Engine is not suitable for mission critical web sites, not as your primary focus. I see huge benefits in augmenting access to information, perhaps more historical for example, a well define API within your application could easily support options to consider cloud storage as a secondary storage and primary retrieval of less important data.
My focus when revisiting here will be looking at means of object translate between tables and the Data Store and maybe an API for data transfer etc.
I suspect that when I get to evaluating EC2/S3 more I will have much more support by being able to leverage existing tools and techniques.
I’ve had to accept the “practice what you preach” pill recently due to a disaster at my hosting provider. See Learning from a Disaster.
While it was my own personal site on a dedicated server in question and not a business generating review I found that my MySQL Backup Strategy was incomplete ( It is also based on code 4 years old). I found that I had not tested my Disaster Recovery Plan adequately. I have used my backup and recovery approach in the past for various controlled situations and testing successfully.
So what mistakes did I make. There were two.
1. I was using a cold backup approach. That is specifically copying the entire MySQL Database in a controlled manner at the file system level. These were also copied to an alternate shared hosting server for storage. This works fine when you backup server supports a means of restoring data in this format, however if your backup shared hosting facility does not give you access to the MySQL data area, then this does not work. Not wanting to pay for two dedicated hosts this backup solution is impractical for my present hosting. Time to consider alternatives, such as being prepared with an EC2 image.
2. Recently I moved to using two MySQL instances, both 5.0 GA and 5.1 RC. The problem is I didn’t adjust my backup scripts appropriately to reflect two instances. Of course when my server was unavailable for 43 hours I was completely screwed in at least I could only throw an Site Unavailable page rather then my website. Combined with my hosting provider totally screwing DNS and admin access to manage DNS for 3-4 days more then almost 2 days of total server unavailability I also had to change support for my DNS. Would have been easier if I had a DNS DR plan.
The lesson is, no matter how trivial the information or website, if you actually want the content, make sure you test your recovery strategy ahead of a disaster.
I was contacted this week by a previous client regarding a failure of processing data. This was a Contact, Financial and Media Management system I developed for a non-for-profit organization a LAMJ stack, and I’ve had to do nothing since deployment in the past 3 years, no bug fixes, no feature enhancements. The only thing lacking is additional management reporting, and data is extracted for this option now.
It runs under commodity Hardware, Linux and MySQL and it’s only unscheduled downtime was an power failure before UPS power was installed. However this all changed last week. Processing of regular scheduled encrypted data simply failed unexpectedly.
A summary of the environment.
Selecting the first 10 rows saved in the table (By AUTO_INCREMENT Key and confirmed by dates), 8 of 10 are now corrupt. Select the last 10 rows inserted, zero are corrupt. Across 20,000 records 75% are now corrupt.
A lot of analysis has been performed to identify and track the data that was recorded, a certain amount of data forensics, and it was confirmed information was successfully processed last month for example. As this performs financial transactions, there is a lot more auditing available and being reviewed however it is simply a mystery that I can’t solve.
mysql> select version(); +------------------+ | version() | +------------------+ | 4.1.10a-standard | +------------------+ 1 row in set (0.00 sec)
For those that have my existing blog bookmarked, or use any RSS/Atom feeds please update your information now.
My new blog can be found at http://ronaldbradford.com/blog/
RSS 2 is http://ronaldbradford.com/blog/feed/rss2, Atom is http://ronaldbradford.com/blog/feed/atom
Ok, so before you read on please change now. While all old links will redirect I encourage you to take a few moments in your browser and RSS reader.
So what’s new. Well as Baron stated in I moved this blog to pairLite with zero downtime, and it was easy I moved my old blog site blog.arabx.com.au and my temporary staging site ronaldbradford.com and transitioning my passworded beta site all with no downtime. Even with all my testing over several weeks, and several test users, my production migration had one hitch with some internal url re-directs not working correctly, but my overall site main links were not affected. You would have had to been quick at 1:30am on Saturday to catch it.
Other features is a consolidation of information from various sites now all under my brand ronaldbradford.com and allowing me now to expand on that. I’ve also split my professional blog from my personal views, photos and comments as well as new SEO/SEM optimizations. More on these experiences later. My theme was actually inspired by some business cards I had made in Australia while home last week, quality 300GSM color cards that were designed and printed in a just a few hours and are very good quality (which was very impressive).


I’m now free to work on so many other projects including many MySQL draft posts now Version 1.0 of my new site is out. As with all release early, release often sites, expect 1.1 soon!
In the recent interview Missed Twitter Questions from Jonathan Schwartz Interview at Web 2.0 Expo Sun CEO Jonathan Schwartz is quoted as saying “Everything Sun delivers will be freely available, via a free and open license (either GPL, LGPL or Mozilla/CDDL), to the community.”
Presently not everything is under one of these licenses. Java getting fully Open Source highlights that Java is getting there, but still contains closed source components. Open Solaris, NetBeans, Glassfish, Virtual Box and Open Office are. Even the mainline Solaris 10 is. Star Office is one that is not.
MySQL is also not there and presently has at least three different licenses. You have GPL for the MySQL Community Server. You have a subscription model for MySQL Enterprise which includes additional bug fixes not available in the Community Server. The subscription model also includes the MySQL Enterprise Monitor, software that will fail to operate if your subscription lapses. Additional upcoming MySQL Proxy features will also be subscription or have been termed “closed source” only. You also have the different model used by MySQL Workbench for licenses.
I know many that work on these products at MySQL do not agree with the various license policies. Indeed recent comments from Rich Green of Sun have also indicated we are not going to change anything at MySQL.
I was initially interested if Sun would move MySQL to the CDDL, however this question was recently raised and Marten Mickos stated there were no plans to move away from the GPL v2.
I can only hope that as Sun continues to promote itself as the largest open source company, these differences subside and disappear, and don’t continue to evolve and change.
I’m migrating my existing WordPress run blog site at blog.arabx.com.au to a my new site ronaldbradford.com (which is not yet publically available)
As part of this process I’ll be doing a number of upgrades/changes including:
Upgrading
The upgrade is straightforward, backup database, download latest wordpress software. I run full revision to older versions via directories + symlinks so my installation is more complicated, but fully recoverable. Install, and run upgrade script. That all works, but my site breaks. Suspecting is my heavily customized them, by disabling that my site is up. One to add to the TODO list.
Migrate to new domain
Dump + Reload data into new schema. Copy Wordpress install. I had to make two data changes to correctly use the new domain.
update wp_options set option_value='http://ronaldbradford.com/blog' where option_name='siteurl';
update wp_options set option_value='http://ronaldbradford.com/blog' where option_name='home';
Upgrade MySQL 5.1 version
That was also relatively straightforward. I was surprised I was running such an old 5.1.11, but I remember originally using 5.1.6 in production use before that.
Migrate database to 5.1 from 5.0
This is where my problems have begun. Wordpress does not appear to like host+port stuff. I can confirm access via MySQL client. At 9:30pm Sunday night, this may have to remain in the unresolved bin for a few days.
I was prompted following a few key words by Marten Mickos at the Sun Dinner on Wednesday evening, and subsequent one on one discussion with Marten, to post my thoughts of some significant news this week announced at the MySQL Conference. The decision to provide as it’s been termed is “Enterprise only features”. It is unfortunate this was not discussed in Marten’s opening keynote, having been exposed the evening before in the Partner’s meeting and hitting the blog sphere before the conference officially started.
MySQL, past, present and future as an Open Source company requires a functional business model to succeed. This includes the funding of resources and the technology progression. It is also necessary in this business climate to build a successful business quickly. How do you do this? Well that’s probably the difference between a successful CEO and an unsuccessful one, and what Marten Mickos has produced is clearly very successful.
I may not necessarily agree with the decisions made, more specifically not understanding at this time the rationale of which features are free and which are likely to be commercial, but I respect the decision made by Marten Mickos. These new feature considerations are in a future release of MySQL, they are also I’m sure not yet set in stone, however MySQL can not be all things to all people, no software can. It reminds me of the Homer Simpson car, designed to do everything Homer wanted in a car, but it bankrupted the previously successful company due the views of one individual to solve all their own needs, but not the needs of the majority. Who is affected by this decision, who will benefit, again it’s too early to tell.
Monty indicates this is a MySQL decision, not a Sun decision. This indicates the transition of MySQL to being under the Sun banner of the largest open source company is well, still in transition. Today it was again confirmed to me, that the MySQL database will always be GPL and MySQL will not never revoke the functionality that powers the world’s largest websites as free software for the database server.
As an advocate for the MySQL community, I’d like to consider myself one of the pulses, a thought in the MySQL conscious and even a vocal lobbyist. I am however not interested in being a disruptor in the MySQL ecosystem. A Communications Lesson on Slashdot I believe correctly states “Sun to Begin Close Sourcing MySQL.” The headline is wrong.
A number of people have posted their comments, let’s stop bickering about it, and let’s see something positive happen for the benefit of the community. For example, as I’ve mentioned previously regarding the lack of differentiation for the Community version, again mentioned by Mark Callaghan in A better (community) HEAP engine where a worthwhile patch can’t be of benefit to the community in a binary release for the lay person.
As new COO of PrimeBase Technologies and in charge of the Business Solutions division, I am responsible for contributing to the success of the company, to play a significant role in the functional business model, to ensure funding for resources and technology progression. In other terms, how can revenue generation be achieved to fund prominently salaries of staff, including my own. How am I going to do this? This will be the difference between my huge success or not.
In review of some list posts today, I came across the Falcon Preview 6.0.5 downloads available from the MySQL Forge (even that is unclear, but the directory indicates this on the forge). The Forge Wiki Documentation indicates the 6.0.5 release features (without a download link), however the official MySQL downloads for 6.0, and the directory structure for all MySQL releases only describes 6.0.4.
Nothing in the MySQL News and Events of this new release. The documentation for 6.0.5 is also unclear as it lists this version as Not Yet Released.
This comes on the heels of “Pending General Availability/near-final release candidate” (See here and here), and the Press Releases for Sun Celebrates Third-Party MySQL Storage Engines only to be negated by Sun Microsystems Announces MySQL 5.1 which broke the plugins as they were not compatible.
I don’t wish to create confusion, but it’s unclear what is happening here, not withstanding the new preview only has 5 builds and excludes Mac OS/X which means I can’t natively test.
The 2008 Google Summer of Code MySQL Projects are now available. MySQL has 14 listed projects, one of the ~190 different Open Source products listed. Unfortunately there is no summary to see the total number of projects being sponsored across all products.
Media Blob Streaming actually has the luxury of two approved projects, so we will have plenty of mentoring work at PrimeBase Technologies.
Raj Kissu Rajandran will be working on BLOB Streaming Support for phpMyAdmin and KishoreKumar Bairi on Streaming Enabled MySQL Driver for PHP. Welcome to our team for your respective projects.
Jay’s opening lines regarding the final MySQL Conference keynote speaker was: “I work with a lot of data. I think peta-bytes, maybe exa-bytes”. This was relating to Jacek Becla from the Stanford Linear Accelerator Center, giving his presentation on “The Science and Fiction of Petascale Analytics”.
The goal of the Large Synoptics Survey Telescope (LSST) is the storage of 50+ PB of images and 20+ PB data.
Let’s just clarify the size. 20 PB of data = 20 years of HD Movies = 2000 years of 128kb MP3
The next database frontier is obviously building huge databases. What part will MySQL or other relational databases play? Some interesting facts were.
The Operational plan for LSST Project Timeline is 10 years, only starting in 2014. The timeline:
The primary goals are: Scale, parallelize, fault tolerant.

The slides from my 2008 MySQL Conference Presentation can be downloaded from here.
A small but committed group met at 8:30pm to hear more about our the plans from PrimeBase Technologies here at the 2008 MySQL Conference. Our discussion started in true MySQL form.
Monty Widenius presents to the group plastic cups and a bottle of Absolut Vodka.
After a shot, Paul starts with “While I can still talk”.
Monty, slams another bottle of Vodka on the table.
We all laugh.
Paul outlined some of the roadmap plans from existing the Alpha release to Beta releases.
We talked about our plans for Synchronous Replication and there was active discussion on various use cases.
There was also discussion and input on Solid State Drive (SDD) Technology which we will be testing with PBXT in the coming months.
What would be great if people could create a single line (one tip) from each talk and we could aggregate these for an executive summary for tech people.
This was prompted from only a few minutes looking in on Baron Shwartz’s EXPLAIN presentation. What I didn’t know was.
EXPLAIN EXTENDED SELECT …; SHOW WARNINGS; gives the rewritten SQL query
If only I had time to whip out an application on my Google AppEngine and get twitter feeds with say a mysqlconf keyword. Perhaps we need a all night BoF hackfest to do it.
A: Maria, an ACID, MVCC engine that plans to be the default non-transactional and default transactional engine for MySQL.
Presently development with a team of 6 people and plans of adding 2-3 developers the work on Maria should see the 1.5 release this month.
It was great to here Monty say “We have a policy of zero MySQL Bugs, like the old MySQL way.”
Maria Version History
1.0 - “Crash Safe” — part of a existing 5.1 branch
1.5 - “Concurrent insert/select” to be merged as part of formal MySQL 6.0 release
2.0 - Transactional and ACID
3.0 - High Concurrency & Online Backup
4.0 - Data Warehousing
The schedule has all of the features to be available for the next MySQL Conference Q2 2009
Some points of note:
The 20 second summary from the Scaling MySQL - Up or Out? from our panel of experts at 2008 MySQL Conference and Expo.
Also in the MySQL Press Releases today but dated for tomorrow is Sun Microsystems Announces MySQL 5.1.
I find the wording clearly a new language from my previous understanding — “pending general availability of MySQL? 5.1″.
We now see the trademark notice, obviously a Sun influence.
We now have a “pending” GA version. MySQL is obviously very keen to release MySQL 5.1 for GA. This was expected at last years’ MySQL conference. Many in the past year have expected this prior to this year’s conference (we are now being informed late Q2 2008). There was an anticipation there would be two RC versions, this is now the third. So what exactly does “pending” mean? Will 5.1.24 be renamed Production if it passes community acceptance (I say community because it’s not an Enterprise release). This would be a change from previous naming policy. What’s most likely is hopefully they release 5.1.25 as production. Comes back then to why the words “pending general availability”, and not “next release candidate” which is what it is.
Previously MySQL also made new with the initial RC status of 5.1, moving away from the previously policy.
At Day 1 of the 2008 MySQL Conference and Expo today, our high numbers of attendees (reported at 2,000) have resulted in Standing Room only in a lot of talks. This has got to be excellent PR.
I got to sit in on the Memcached and MySQL session by Brian Aker and at the end I stuck my head in to Best Practices for Database Administrators by and Explain demystified by Baron Schwartz both 2008 MySQL Award winners.
All full to overfilling presentations.
In today’s Official MySQL Press Release, PrimeBase XT (PBXT) has been named along with three other storage engine partners in “Sun Celebrates Third-Party MySQL Storage Engines“.
This a great achievement for us to be recognized in the certified storage engine partner program, in comparison to the other companies that are much larger on the balance sheet. This continues the news this week, last week you may have read PrimeBase Technologies a MySQL Platinum Level Partner.
A noted absence from the list is Nitro, an expected absence was Solid.
Following Marten Mickos, the second opening keynote at the 2008 MySQL Conference and Expo was by Jonathan Schwartz CEO and President of Sun Microsystems. Blog
His opening joke was about dinner with Marten, to which Marten said “You not going to get a keynote, unless you buy the company.”
So what was striking for me in his presentation “What is Sun’s Agenda?”
I had a chance to meet Jonathan and Rich Green on Sunday night, and it was great to see Jonathan learning about, and getting behind our product PBXT - The Community Engine our open source engine.

MySQL
user
sun
databases
Conferences
professional
Technologies
Marten has opened the 2008 MySQL Conference & Expo. This time he started in his opening comments “I have more to say to more people, and given less time to say it”.
His answer to why Sun bought MySQL included slides showing “Alignment in Culture and Vision” and “What’s in it for you - Performance & Scale, Support, Marketplace”.
This year the MySQL Conference has over 2,000 people and 55 exhibitors.
What was funny, was the photo showing the burning of the IPO Prospectus. Marten mentioned now with many Sun lawyers he has to be more careful what to day. I actually have an interesting extension to this at Watching what you say
Some points of note for me:
MySQL
user
General
databases
Conferences
professional
mysqluc08
Announced this morning is this year’s MySQL award winners.
2008 MySQL Application of the Year
2008 MySQL Partner of the Year
2008 MySQL Community Member of the Year
As per the Platinum Partners List we have made a key achievement here at PrimeBase Technologies. I think this is a great list to make for you. There are only 18 Platinum partners, and we are the third Storage Engine provider and the first open source storage engine company.
Our News Release was where I got to make my first published quote for the company. “As a key milestone in our relationship with both the MySQL Community and MySQL, this partnership strengthens our commitment and involvement in working with the MySQL database server starting with PBXT and following with additional product developments.” said Ronald Bradford, COO of PrimeBase Technologies.
Kevin Murphy just posted Tip of the Day ? max_connections and I thought it might be nice to know what people actually set this to so I’ve created a Survey “What’s your max_connections” (totally anonymous).
For the record, while a consultant the record for a production system was 9,500. Yes you read right, and I might add the client was running a 32-bit OS as well, just to boot.
Apparently they had also tested they could get 9,500 connections, problem is they didn’t do anything with the connections, so didn’t see any per thread memory usage, and I did not get confirmation of how the actually system memory usage was used during the test.
Ronald Bradford,
Chief Operating Officer (COO),
PrimeBase Technologies
The official press release of my commencement at PrimeBase Technologies can be now found at
Ronald Bradford strengthens management team and new open source initiative.
I’m very excited to be the COO, that’s Chief Operating Officer, rather impressive if you say it out loud a few times. My close friends and MySQL colleagues in the know in New York were also most impressed I’ve made CxO status during celebrations in recent previous weeks. My title was under wraps until I’d started.
What does COO mean at PrimeBase Technologies? I’m being charged with a number of things. I will responsible for the new Business Solutions division which includes helping to define the product road map for PrimeBase XT (PBXT) and Media Blob Streaming storage engines for MySQL. I’ll be looking at product enhancements, quality control and testing and verification of these and new products. I will also have a special focus on promoting PrimeBase Technologies to the MySQL community and commercial marketplace, hoping to leverage of the good start at the MySQL Community Awards 2007 where Paul McCullagh was named “Community Code Contributor of the Year”.
The continued success of our products including PBXT and Media Blob Streaming relies greatly on the community with your input of what is needed to help us best serve your needs always welcome.
We will be Exhibiting at the 2008 MySQL Conference & Expo, Paul’s has presentations at the MySQL Conference on An Introduction to BLOB Streaming for MySQL Projectand Inside the PBXT Storage Engine and I have a presentation The top 20 design tips every data architect should know..
We are also planning a BoF session on Tuesday night.
I forgot to mention in Support the MySQL Community Photo Day that my company PrimeBase Technologies will be providing 3 prizes for the best photos uploaded.
| First Prize | $150 Amazon Gift Voucher |
| Second Prize | $100 Amazon Gift Voucher |
| Third Prize | $50 Amazon Gift Voucher |
So, take your photo with other community supporters — they’ll also be wearing their open source t-shirts. You can upload photos to www.flickr.com/groups/mysqlcommunityphotoday.
It’s been six weeks since the completion of the acquisition of MySQL by Sun Microsystems. In this time, on the MySQL News and Press Releases there has only been one (1) Press Release here.
In the six weeks between the announcement and completion of the acquisition MySQL made ten (10) Press Releases, and the six weeks preceding this including the Christmas break there was (six) Press Releases.
On the Sun Press Releases in this period there has been twenty three (23), but just the same one MySQL specific.
The MySQL Developer Zone has picked up three articles in the past week, but nothing prior to that for a month.
So, Where’s the News of what’s happening with MySQL?
It seems our only options are the official company blog of Kaj Arno and his travels , Robin Schumacher and Giuseppe Maxia as other sources of information.
Well at least your MySQL database world.
As Paul eluded to, PrimeBase Technologies has a project to provide synchronous replication for MySQL in a High Availability environment. It is more then an idea, there is a plan.
Is it possible?
What are the use cases?
How can you use it?
Would you use it?
Some input to date. We need these questions and more, and we seeking more input for discussion.
Unfortunately the opportunity to hear any input during a presentation is left to the last day of the conference, so we have created a BoF session on Tuesday night for a round table discussion if necessary. We encourage people to bring specific cases and situations for feedback, the reasons why MySQL Replication, MySQL Cluster, DRBD/HeatBeat or any other solution does not satisfy your needs, and what would.
If you can’t wait you may need to seek out Booth #518, and make a time to seek out the Technology Expert.
Just today, Peter Zaitsev of MySQL Performance Blog also writes in State of MySQL Market and will Replication live ?, “Customers are constantly asking me if there is something which would help them to scale MySQL and get some HA out of the box even on the medium level. Seriously - MySQL Cluster, Continuent, Master-Master Replication, DRBD or SAN based HA architectures all have their limits which makes neither of them used for very wide class of applications.” to confirm our pursuit.
MySQL
storage
Engines
user
databases
Conferences
professional
There has been some discussion recently regarding the death of MySQL Read Replication starting with Brian Aker and then Farhan, Arjen and Paul have all chimed in. Whatever you want to call it, the next generation of replication approach is clearly on the agenda of the industry leaders and pack followers. We should take a programmatic look however and ask ourselves a few questions. Such as:
There are more reasons, something to write about at a later time. These would include.
To handle Read Scalability. Why select something from the database (or various level of caches in the database call when it can be managed by the Application). Memcache is the obvious buzz word here. With tighter database integration (such as the patches and commands FaceBook has) this could be a winner.
Backups is a tough one, without practical storage engine agnostic consistent solutions I don’t feel the backup conundrum will be resolved anytime soon.
To handle a successful failover you need a guarantee that the data is consistent. A Synchronous Replication solution will solve this. MySQL Cluster is a synchronous solution, however it is impractical for basically every application that is already running with MySQL Replication.
What other options exist? Food for thought.
A little on Memcache for those still in the dark ages. Many large sites such as FaceBook,Fotolog, Wikipedia and Slashdot are strong proponents of Memcached. Created originally for Live Journal Memcached has become the defacto standard in this level of application data caching.
The description from the source.
memcached is a high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.
Updated On good advice from Sheeri I made a few comments clearer.
We have proposed that the integral “MySQL Community Photo Day” be on Thursday April 17 2008, the final day of the MySQL Users Conference.
Wear a t-shirt from an open source community project on Thursday, whether a PrimeBase PBXT one or your favorite open source project (of course I prefer the first option). Get your photo taken with the masses of community supporters. If your not attending this year, this doesn’t mean you can’t also contribute a photo yourself from what location you are from. Save a saving fund for next year but get us a photo.
It doesn’t have to just be Thursday, we will accept photos at any time before then. Upload a photo and win a prize. (Baron you definitely get chocolate)
We have created a Flickr group called “MySQL Community Photo Day” at http://www.flickr.com/groups/mysqlcommunityphotoday
This is a chance for you to support the community. We have a small band of supporters before my post already including Colin C, Paul M, Lenz G, Baron S, Sheeri K.
There is a Linked In group I created some time ago but forgot to advertise that is for MySQL Speakers and Presenters.
If you a speaker or presenter of MySQL content, confirm your registration here.
You will need to have a reference to a website confirming you have been a speaker at a MySQL Event such as a User Conference, MySQL Camp or Local MySQL Users Group.
Hopefully overtime we can build a consolidated index at MySQL Forge Presently some pages exist including MySQL Conference & Expo and User Group Presentations but I’m accepting input for a model to have a central page, and link to or upload of presentation. Any input welcome.
This week I’d expected to hear good friend Giuseppe (CCO) Maxia speak about MySQL SandBox at the Hamburg MySQL April Meetup.
This is product I’ve thought about using, wanted to use, but just never got to the point to using. I download the current version 1.18, I had MySQL tar’s already of 5.0, 5.1 and 6.0 and was all ready until the late topic change.
However due to the language barrier in the second talk, I got a one-on-one lesson. Now I know how it works, and understands the strengths I can use it as part of my standard vanilla testing. There are some improvements I could see, something perhaps I can contribute if they allow a Perl part-timer too. The joy of open source is I can add, modify, change and submit my work, if not wanted for example, there is simply no loss to me.
Thanks Giuseppe for your work on this product.
./install.pl --help
Unknown option: help
The MySQL Sandbox, version 1.18 05-Apr-2008
(C) 2006,2007,2008 Giuseppe Maxia, MySQL AB
syntax: ./install.pl [options]
-h --home_directory = name The home directory. (default: $HOME (/Users/rbradfor))
-d --sandbox_directory = name Where to install the sandbox, under home-directory
-P --sandbox_port = number The port number to use for the sandbox server.
(Default: 3310)
--datadir_from = name Where to get datadir files from. Available options are
archive will be taken from the archived data
provided with the package. They include
default username and passwords
( DEPRECATED )
script the script mysql_install_db is called, with
default users, no passwords.
dir:name will be copied from an existing mysql directory
(Default: script)
-i --install_version = name Which version to install (3.23, 4.0, 4.1, 5.0 or 5.1) default: 5.0
-b --basedir = name Base directory for MySQL (default: /usr/local/mysql)
-m --my_file = name which sample my-{small|large|huge}.cnf file should be used
for additional configuration
You may enter either the label (small|large|huge) or a full
file name. (default: none)
-f --conf_file = name Configuration file containing options like the ones
you can give on the command line (without dashes)
-U --operating_system_user = name Operating system user (for mysql installation)
default: $USER (rbradfor)
-u --db_user = name user for global access to mysql (Default: sandbox)
-p --db_password = name password for global access to mysql (Default: sandbox)
-c --my_clause = name option to be inserted in a my.cnf file
it may be used several times
--prompt_prefix = name prefix to use in CLI prompt (default: mysql)
--force Use this option if you want to overwrite existing directories
and files during the installation. (Default: disabled)
--no_ver_after_name Do not add version number after sandbox directory name (default: disabled)
-v --verbose Use this option to see installation progress (default: disabled)
--load_grants Loads the predefined grants from a SQL file.
Useful when installing from script.
(default: disabled)
--no_load_grants Does not loads the predefined grants from a SQL file.
(default: disabled)
-t --interactive Use this option to be guided through the installation process (default: disabled)
--no_confirm suppress the confirmation request from user
Example:
./install.pl --my_file=large --sandbox_directory=my_sandbox
Tonight’s Hamburg MySQL Meetup was a packed room of 60-70 people at Sun in Hamburg. The most I’ve seen @ a MySQL Meetup across three cities, countries, continents and years (my first Oct 5, 2004).
As expected most was in German. Pity, I would have liked to hear about Open Office and MySQL. Giuseppe, CCO (That’s Chief Cartoon Officer - I liked that one) gave in English a general review of MySQL. He highlighted the reasons “Why did Sun by MySQL?” including most popular, most dynamic and people with the Freedom to work anywhere.
Three points I would like to re-iterate for the community.
Giuseppe did however not talk about the MySQL SandBox as scheduled. I was even prepared having wanted to use his software previously. I’d downloaded and was all ready. I did manage to get a one-on-one lesson which I found most useful, and a few points of enhancements to consider.
I didn’t know there were so many MySQL people in the area, the following attending tonight. Lenz, Giuseppe, Kai V, Kay, Jan, Ulf W and Georg whom I’d not met before. Most I’ll see next week at the MySQL Users Conference.