Google offers a little Toolbar that provides additional information about
the displayed website, including the PageRank value that
indicates how "important" the website is in Google's eyes (and
that's said to be used to calculate the relevance in Google
searches).
Here are some values that I looked up:
www.mysql.com: 9/10
www.planetmysql.org: 8/10
www.google.com: 8/10
www.microsoft.com: 9/10
www.yahoo.com:
9/10
www.oracle.com: 9/10
…
Seems I have over time, thought of many ideas, jotted some notes on some, and even done some work, but everybody knows that “home projects” can take a long time.
Here are a few that have resurfaced over the past month, and I doubt I’ll ever get to them, or perhaps some other enterprising person has already done a similar thing. Of course most are for my own personal/professional gratification, but input from others of “great idea, when do we see it” could sway my interests.
INFORMATION_SCHEMA for MySQL Version 4
Why?
Well, quering the INFORMATION_SCHEMA is very cool, and long overdue for information gathering including statistics, schema definitions, schema version comparision tools etc. Of course there are concerns regarding the performance of using the INFORMATION_SCHEMA, and any design should significantly …
[Read more]
What is this? How can a slave have multiple masters? Well the
architecture is not what the name implies. A slave can have only
one master. But here we are going to create a loop between slaves
and masters, also known as Circular replication.
Lets take 3 machines. (Since i have only a single machine - my
laptop - i created 3 instances of mysql running on 3 different
ports and with 3 different data directories to work out this
architecture.) Suppose, we have installed mysql on all the 3
machines/nodes - say NodeA, NodeB, NodeC. What needs to be done
is that NodeA is slave of NodeC, NodeC is slave of NodeB and
NodeB is slave of NodeA. So each mysql instance is a master and
also a slave. I will go into implementation details of this in a
minute. First of all, let me list down the benefits and issues
with this setup.
Benefits:
-
- You can build a high availability and high …
In my previous blog entry, I wrote about how I'm
currently checking out the Pentaho open source Business Intelligence
platform. Well, I've only done a little bit of all the checking
out I planned to do, but here I'd like to present some of the
things that I found out so far.
In this blog entry, I will focus on some features of the latest
addition to the Pentaho: K.E.T.T.L.E, which forms the principal ETL
component of the platform.
In case you're interested in Pentaho in general: I just heard that on 21 june, MySQL will be conducting a Web-seminar on BI with Pentaho and MySQL, so you might want to …
[Read more]
The following is based on a presentation given at the Enterprise
Open Source Conference in New York City on June 6, 2006. You can
download the slides for the
presentation.
Good afternoon. My name is Si Chen, and thank you for coming to my presentation about the adoption of open source business applications.
It's a long of fun to be here alongside the developers and
industry veterans who are shaping open source software today
because, well, my background is a little different. I used to be
a hedge fund manager and worked right up the street at the Met
Life building on top of Grand Central, right here in New York
City.
I'm here today because about six years ago, I helped start an
online retail company named Gracious Style. …
If you've been reading enough database related forums, mailing lists or blogs you probably heard complains about MySQL being unable to handle more than 1.000.000 (or select any other number) rows by some of the users. On other hand it is well known with customers like Google, Yahoo, LiveJournal,Technocarati MySQL has installations with many billions of rows and delivers great performance. What could be the reason ?
The reason is normally table design and understanding inner works of MySQL. If you design your data wisely considering what MySQL can do and what it can't you will get great perfomance if not, you might become upset and become one of thouse bloggers. Note - any database management system is different in some respect and what works well for Oracle,MS SQL, PostgreSQL may not work well for MySQL and other way around. Even storage engines have very important differences which can affect performance dramatically.
The three …
[Read more]I'm reading through an excellent JMP Securities research note called "Turning the Software Model Upside Down: The Proliferation of Open Source." [Subscription required.] It's a good overview of the open source business phenomenon - the how's and why's open source is increasingly dominating software - but I particularly like its analysis of proprietary vendor's likely responses to open source:
-
Proliferation of enterprise license agreements ("ELAs"?). Large enterprise software vendors such as Oracle Corporation, Microsoft and IBM may aggressively pursue ELAs with customers. Our due diligence suggests Oracle has employed this practice over the past few years. ELAs reduce the cost advantages of open source software since they are often structured as "?all you can eat" type of deal. Effectively the …
There are other ways to do this, but I thought I'd demonstrate
how you can use information_schema to build commands to send back
to MySQL;
shell> mysql -N -e "select CONCAT('REPAIR TABLE ',
TABLE_SCHEMA, '.', TABLE_NAME, ';') FROM
information_schema.tables WHERE ENGINE='MyISAM' AND
TABLE_SCHEMA!='mysql' AND TABLE_SCHEMA!='information_schema';" |
mysql
All I've done is formatted the result to be valid SQL. If you
needed to massage your resuts a little bit, you could use a
scripting language in between as a filter before sending back to
MySQL. You could also use xargs to throw the lines back to MySQL
one at a time (although I'm still trying to fix a use for
this):
mysql -N -e "select CONCAT('REPAIR TABLE ', TABLE_SCHEMA, '.',
TABLE_NAME) FROM information_schema.tables WHERE ENGINE='MyISAM'
AND TABLE_SCHEMA!='mysql' AND
TABLE_SCHEMA!='information_schema';" | tee /tmp/repair_log.txt |
xargs -d \\n …
ERROR: The requested URL could not be retrieved (yeah, site didn’t work when i clicked on it from RSS).
Matt uses this bit of ruby code to demonstrate that here you can’t ever not close the file handle:
File.open('something.txt') do |fd|
# Manipulate the file through 'fd'
end
# File handle is now closed
Which seems pretty cool. However, a good C++ programmer can also acheive the same (or better) things!
For example, in NDB (well, in the portability library we use inside NDB) we have a class called Guard. The constructor for Guard pthread_mutex_locks a mutex. The destructor unlocks it. So, for when you’ve got some simple mutual exclusion you need doing, you can have bits of code like this:
{
Guard g(m_config_mutex);
…
[Read more]