..kind of cool.
Here is a good use case for compressed MyISAM:
We have a rather large database that doesn't get updated very
frequently.
We have several slave servers that have this database, but
because the database is big, they have a bit of a hard time
querying it.
Disk I/O is a big issue for us and compressing the data, offloads
some of that onto the CPU for decompression. It also allows the
system cache to keep more of the tables in memory.
This database only gets updated every few weeks and it's pretty
much a manual process.
To update the slave servers, we simply copy the MyISAM tables
over to them (yes, you can do that) and because they are
compressed, they are easier to send over the network.
Unlike Archive tables, compressed MyISAM can have indexes
(Archive tables now allows 1 index) so you can use them for fast
querying.
Compressed MyISAM …
On an entirely unrelated note to the MySQL protocol discussions happening yesterday, the MySQL protocol is now the default protocol in Drizzle as of Monday’s tarball (3/15). Drizzle supports a limited version of the MySQL protocol, only supporting the subset of commands Drizzle cares about (no server-side prepared statements, replication, or deprecated commands due to SQL query equivalents). Not all MySQL clients have been fully tested with it, but our entire test suite is using it now with the libdrizzle MySQL implementation. The latest release of libdrizzle also includes defaulting to the MySQL protocol and port for Drizzle …
[Read more]Just a quick bit of news to let you all know that additions to the standard Kontrollbase and Kontrollkit userguides are being halted while we migrate the documentation to a new wiki system run by the very nice Trac software. You will be able to access the Kontrollbase and Kontrollkit documentation at http://wiki.kontrollsoft.com when it [...]
I have been talking about this for a while, now at last I have
found the time to get started! Below is a picture from my 2008
MySQL User Conference presentation. It illustrates how engine
level replication works, and also shows how this can be ramped up
to provide a multi-master HA setup.
What I now have running is the first phase: asynchronous
replication, in a master/slave configuration. The way it works is
simple. For every slave in the configuration the master PBXT
engine starts a thread which reads the transaction log, and
transfers modifications to a thread which applies the changes to
PBXT tables on the slave.
Where to get it
I have pushed the changes that do this trick to PBXT 2.0 on
Launchpad. The branch to try out is …
I use it in Oracle and notice there are 10 days missed, for example:
ORCL> select to_date('4/10/1582','dd/mm/yyyy') SHOW_DATE from dual
SHOW_DATE -------------- 04/10/1582 ORCL> select to_date('4/10/1582','dd/mm/yyyy') + 1 SHOW_DATE from dual
SHOW_DATE -------------- 15/10/1582 Say What? the date after 4/10/1582 is 15/10/1582.
But in MySQL i try it but i didn't see this case, example:
mysql
Website health checks are a crucial service to an operations team. In addition to in-house monitoring and service state reporting it’s also important, even critical, to have an impartial third party to run checks to test your customer facing services. There are a lot of companies in this arean that would be glad to have [...]
Mark Callaghan asks Can a protocol be GPL?, after finding a
disturbing comment in a source file: Any re-implementations of
this protocol must also be under GPL, unless one has got an
license from MySQL AB stating otherwise.
I recall talking with one of the company lawyers about this
matter, and he assured me that the GPL can't be used for a
protocol, and that's why this notice was dropped from MySQL.com
site a few years ago, even before the Sun acquisition.
This is thus an embarrassing piece of ancient history (which will
hopefully be removed soon) that has been in our files for
long time. For how long?
If we get the source trees from the public bazaar …
- Common MySQL Queries -- a useful reference.
- MySociety's Next 12 Months -- two new projects, FixMyTransport and "Project Fosbury". The latter is a more general tool to help people organise their own campaigns for change.
- riak -- scalable key-value store with JSON interface. (via joshua on Delicious)
- Notes from NoSQL Live Boston -- full of juicy nuggets of info from the NoSQL conference.
…
[Read more]
You can store things for later! drizzle> select
libtcc("#include <string.h>\n#include <stdlib.h>\nint
foo(char* s) { char *a= malloc(1000); return
snprintf(s, 100, \"%p\", a); }") as RESULT;
+-----------+ | RESULT | +-----------+ | 0x199c610 | +-----------+ 1 row in set (0 sec)
drizzle> select libtcc("#include
<string.h>\n#include <stdlib.h>\nint foo(char* s) {
char *a= 0x199c610; strcpy(a, \"Hello World!\");
strcpy(s,\"done\"); return strlen(s); }") as result;
+--------+ | result | +--------+ | done | +--------+ 1 row in set (0.01 sec)
drizzle> select libtcc("#include
<string.h>\n#include <stdlib.h>\nint foo(char* s) {
char *a= 0x199c610; strcpy(s, a); return
strlen(s); }") as result;
+--------------+ | result | +--------------+ | Hello World! | +--------------+ 1 …[Read more]
So, just in case that wasn’t evil enough for you… perhaps you have something you want to know the MD5 checksum of. So, you could just do this:
drizzle> select md5('Hello World!'); +----------------------------------+ | md5('Hello World!') | +----------------------------------+ | ed076287532e86365e841e92bfc50d8c | +----------------------------------+ 1 row in set (0 sec)
But that is soooo boring.
Since we have the SSL libs already loaded into Drizzle, and using my very evil libtcc plugin… we could just implement it in C. We can even use malloc!
drizzle> SELECT LIBTCC("#include …