The new Twenty Ten theme is now live on WordPress.com and the default for all new blogs created on the service. As an aside, WP.com (11 million sites) was switched over to 3.0 over the weekend. I love it when we’re able to do that early because we find a ton of bugs in the integration and merge, and then we have 11 million beta testers banging on the software before we do the shrink-wrap release.
I was installing the latest MySQL 5.5.4 on a new machine and I came across the following issues during installation, steps I generally perform on other versions without any incidents.
$ sudo su - $ cd /opt $ wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.4-m3-linux2.6-x86_64.tar.gz/from/http://mysql.mirrors.hoobly.com/ $ tar xvfz mysql-5.5.4-m3-linux2.6-x86_64.tar.gz $ cd mysql-5.5.4-m3-linux2.6-x86_64 $ scripts/mysql_install_db Neither host 'barney' nor 'localhost' could be looked up with /usr/bin/resolveip Please configure the 'hostname' command to return a correct hostname. If you want to solve this at a later stage, restart this script with the --force option
Perform some checks
$ /usr/bin/resolveip -su: /usr/bin/resolveip: No such file or directory $ hostname barney $ head -2 /etc/hosts 127.0.0.1 localhost 127.0.1.1 barney
I was surprised to find that my Ubuntu 10.04 Lucid Lynx box had a …
[Read more]Last week, my colleague Massimo and I discussed how to handle big result sets coming from MySQL in Python. The problem is that MySQL doesn't support server-side cursors, so you need to select everything and then read it. You can do it either buffered or not. MySQL Connector/Python defaults to non-buffered, meaning that you need to fetch all rows after issuing a SELECT statement. You can also turn on the buffering, mimicking what MySQL for Python (MySQLdb) does.
For big result sets, it's better to limit your search. You can do this using an integer primary key or some temporal field for example. Or you can use the LIMIT keyword. The latter solution is what is used in …
[Read more]A lot of systems are relatively easy to make HA (highly available). You just slap them into a well-known HA framework such as Linux-HA and you’re done. But databases are different, especially replicated databases, especially replicated MySQL.
The reason has to do with some properties that hold for many systems, but not for most databases. Most systems that you want to make HA are relatively lightweight and interchangeable, with little to zero statefulness, easy to start, easy to stop, don’t care a lot about storage (or at least don’t write a lot of data; that’s usually delegated to the database), and there’s little or no harm done if you ruthlessly behead them. The classic example is a web server or even most application servers. Most of the time these things are all about CPU power and network bandwidth. If I were to compare them to a car, I’d say they are like matchbox cars: there are many of them, and they are cheap …
[Read more]Some days ago I was working in a vocabulary game and dictionary. The dictionary contains 1,10,000 words and meanings. I developed a vocabulary game where I had to randomly choose 10 words out of 1,10,000 dataset. Here I’m describing the possible solutions for this problem and which solution I used.
Data table
Table name is dictionary and it has id, word and meaning fields. id contains auto incremented id and it is unbroken sequence 1,2,3…..n.
| id | word | meaning |
| 1 | aback | Having the wind against the forward side of the sails |
| 2 | abandon | Forsake, leave behind |
| … | ….. | …. … |
I have heard that there have been talks at MySQL UC on running MySQL (InnoDB) on top of XFS for better write concurrency than ext3.
Last weekend I had a chance to discuss on Twitter the xfs stack overflow problem (that became apparent this month, on x86_64 systems with 8k stack) and how it would affect (if any) MySQL servers. If I understand correctly, the problem is that stack overflow might occur when a dirty page needs to be paged-out to xfs.
The conclusion was that for stability of MySQL running on xfs:
- xfs should not be used on top of LVM or any other MD (i.e. software RAID, etc.)
- xfs volumes should only contain ibdata files (that are accessed using O_DIRECT) so that the files on xfs would never exist as dirty pages within the OS
References:
[Read more]I must say this is way faster than tapping. It’s surprisingly accurate even after only a few minutes of using it
A lot of systems are relatively easy to make HA (highly available). You just slap them into a well-known HA framework such as Linux-HA and you’re done. But databases are different, especially replicated databases, especially replicated MySQL. The reason has to do with some properties that hold for many systems, but not for most databases. Most systems that you want to make HA are relatively lightweight and interchangeable, with little to zero statefulness, easy to start, easy to stop, don’t care a lot about storage (or at least don’t write a lot of data; that’s usually delegated to the database), and there’s little or no harm done if you ruthlessly behead them.
Here I listed some programming and web related books those I found important for knowledge/skills/career whatever you said. Some of the books I read completely and some books partially. But all of these books I found very helpful to increase knowledge.
PHP
| Beginning PHP 5 and MySQL If you’re beginner and want to learn from the start then you should read this book. You’ll find lot of examples of php, mysql in this book. | |
| PHP Cookbook If you like problem/solution based study then this is one … |
How do we stream data from MySQL? Traditionally, developers have
thought that they can simply use their API's cursor-equivalent
object (e.g. resultset) and move through the results.
Unfortunately, this does not do streaming in most cases. Normally
most client libraries (which call mysql_store_result) will read
the entire result into memory, and you're just going through an
already-in-memory data set. This will fail if it doesn't fit in
memory.
Enter mysql_use_result - if your library can use
this instead of mysql_store_result, you can then skip through the
records without needing to keep them all in ram at once.
However, there is some bad news - while going through a result
set in mysql_use_result, you can't do any OTHER queries on the
connection. An attempt to do so generally violates MySQL's
protocol and fails. So if you need to do other …