Yesterday (4/19) I attended the AWS Summit in NYC (http://aws.amazon.com/aws-summit-2012/nyc).
I'm a big fan and also a heavy user of AWS especially S3, EC2,
and naturally, RDS. In every point in time I have several dozens
of AWS machines running for me out there in the East region, and
in some cases when we do some special benchmarks and tests,
number of EC2 and RDS machines can easily reach 3-digit. As I
said, I'm a fan...
A few quotes I was able to catch and document on my laptop, on my
laps...:
"When you develop an app for facebook, you must be prepared (and
be afraid) that to your party, not noone will show up, but
everybody will show up!" So true! Simple and true. We all want to
succeed, to have success with our app. We have to think about
scaling from day 1.
"Database was bottleneck for building of sophisticated apps. This
is …
There are ways to scale databases, unfortunately some are
limited, some introduce complexities, some are do not fit the
cloud...
By scaling solution I mean a solutions that help me scale my
existing environment, my existing RDBMS. Some magic or technology
that will take my existing Oracle or MySQL for example, to the
next level, without porting to a new DB engine/vendor and without
completely recoding my app.
Let's try to organize things a bit in this very summarized table,
just to get the hunch of it. I can't imagine to cover it all in 1
table or even 100 pages, but that should be a start of a
meaningful discussion to continue in next posts:
| Solution | Scales reads? | Scales writes? | Scales data? | Scales sessions? | … |
In my heart, I'm a DBA, always was and always will be. People say
I'm a database guy by the way I think, keep my car, and file my
music and also bank statements... However I did great deal of
development, design, architecture on the apps side. I (hope to)
have some perspective.
Applications come and go. The second programming language I've
ever learned and worked on was COBOL, some still say most of
the world's lines of code are written in this language, maybe so,
but anyway I since then have known and written in dozens of
programming languages, from Assembly to Force.com, from Pascal to
Delphi, from functional C to Object
Oriented SmallTalk, C++, Java and , from compiled C/CGI
to interpreted Perl, ASP and Ruby back to compiled node.js... My
first applications ran on Main-Frame with green screen, later I
created beautiful graphic client-server applications, later I had
to create hideous white web applications …
Plug-in to Vegas The program focuses on key topics such as high availability, virtualization, security, business intelligence, Exadata, Cloud Computing and internals. Recently added, we switched around the schedule to include the Thursday Deep Dive, Avoiding Downtime through the Maximum … Continue reading →
A panel on “Future Perfect: The Road Ahead for MySQL“, by Brian Aker (HP), Paul Mikesell (Clustrix), Sundar Raghavan (Amazon), Slavik Markovich (McAffee), and Ori Hernstadt (Akiban).
If there’s one common theme to this panel and this whole conference, it’s: “We’re hiring!” It is amazing how much talent there is at the conference this year, and yet, it isn’t enough. Pythian is hiring as well of course: http://bit.ly/pythianjobs.
There was an interesting distinction between the mindset of Oracle and of MySQL made by Brian Aker: database as a service, which is something MySQL seems to be getting to. It comes with its own problems, especially around trust levels, which will lead to more thinking around data security (rather than just database security).
MySQL vs. NoSQL. Different Tools for Different Jobs …
[Read more]Here it is finally: The MySQL conference 2012 starts with the Keynote Sessions.
The first keynote speech was by Peter Zaitsev, founder of Percona and a very smart guy, and by Baron Schwartz (Percona), another very smart guy, the brain behind a number of toolkits for MySQL. They’re talking about the MySQL Evolution – what I alluded to in my first post regarding this conference – the ways in which MySQL has grown, evolved, scaled and continues to make new inroads into new applications and industries.
From Peter: “What is most important hasn’t changed – MySQL is still a great piece of technology and it is evolving very rapidly.” (Love that quote!) Also “MySQL is also buzzword compatible: NoSQL, BigData.”
From Baron: He talked about his own personal journey from closed-source, proprietory to open-source, and the …
[Read more]Have you ever wanted to get a list of indexes and their columns for all tables in a MySQL database without having to iterate over SHOW INDEXES FROM ‘[table]’? Here are a couple ways…
The following query using the INFORMATION_SCHEMA STATISTICS table will work prior to MySQL GA 5.6 and Percona Server 5.5.
SELECT table_name AS `Table`,
index_name AS `Index`,
GROUP_CONCAT(column_name ORDER BY seq_in_index) AS `Columns`
FROM information_schema.statistics
WHERE table_schema = 'sakila'
GROUP BY 1,2;
This query uses the INNODB_SYS_TABLES, …
[Read more]
The MySQL Enterprise Backup (MEB) Team is pleased to
announce the release of MEB 3.7.1, a maintenance release version
that includes bug fixes and enhancements to some of the existing
features.
The most important feature introduced in this release is
Automatic Incremental Backup. The new argument syntax for
the --incremental-base option is introduced which makes it
simpler to perform automatic incremental backups. When the
options --incremental & --incremental-base=history:last_backup
are combined, the mysqlbackup command uses the metadata in
the mysql.backup_history table to determine the LSN to use as the
lower limit of the incremental backup. You no longer need to keep
track of the actual LSN (as in the option --start-lsn=LSN) or
even the location of the previous backup (as in the option
--incremental-base=dir:directory_path)
…
Getting two sets of information from one table in a select statement often leads people to write subselects, but it really doesn't matter that this is the same table twice, we can just give it a new alias and treat it as if it were a different table. This is one of those techniques where, once you've seen it, it's really obvious, but until that point it can be very confusing. I explained this to someone else recently, so I thought I'd capture it here in case it's helpful to anyone else.
Consider that tried-and-tested example: employees and managers.
Here's the staff table from the database (today's
imaginary data isn't particularly imaginative, sorry):
mysql> select * from staff; +----+------------+-----------+------------+ | id | first_name | last_name | manager_id | +----+------------+-----------+------------+ | 1 | Hattie | Hopkins | 4 | | 2 | Henry | Hopkins | 4 | | 3 | Harry | …[Read more]
Getting two sets of information from one table in a select statement often leads people to write subselects, but it really doesn’t matter that this is the same table twice, we can just give it a new alias and treat it as if it were a different table. This is one of those techniques where, once you’ve seen it, it’s really obvious, but until that point it can be very confusing. I explained this to someone else recently, so I thought I’d capture it here in case it’s helpful to anyone else.
Consider that tried-and-tested example: employees and managers.
Here’s the staff table from the database (today’s
imaginary data isn’t particularly imaginative, sorry):
mysql> select * from staff; +----+------------+-----------+------------+ | id | first_name | last_name | manager_id | +----+------------+-----------+------------+ | 1 | Hattie | Hopkins | 4 | | 2 | Henry | Hopkins | 4 | | 3 | …[Read more]