Oct
31
2011
--

Percona Training: Dublin, San Diego, NYC, and WDC

If you have been waiting for Percona’s highly rated MySQL courses to be taught near you, your wait is over. We will be holding our Developer, DBA, InnoDB, and Operations training in the following cities:

  • Dublin, Ireland – December 5 – 8, 2011
  • San Diego, CA – December 12 – 15, 2011
  • New York, NY – January 9 – 12, 2012
  • Washington, DC – January 16 – 19, 2012
Full details on the courses can be found on the Percona website.
We are providing a special discount code to our MySQL Performance Blog readers. When you purchase your ticket, enter discount code PBLOG to receive 10% off. Act now while early registration is open to save even more.
Oct
26
2011
--

symfony 1.4.15 released

symfony 1.4.15 has just been released.

Here are the changes from the CHANGELOG:

  • [33151] fixed usage of mb_strlen in tasks (closes #9940)
  • [33149] added missing admin.delete_object event (closes #9943)
  • [33137] fixed multiple database support in Propel plugin (for the generator and sfPropelData, closes #8345)
  • [33125] fixed the possibility to include files included in an exclude rule in the deploy task (closes #9912)
  • [33122] fixed include|get_component when sfPartialView class is customized (closes #9932)
  • [33121] fixed protocol relative URL in the asset helper (closes #9936)
  • [33053] fixed typo (closes #9927, based on a patch from pmallet)

The main change in this release is how Propel tasks work; this is actually the
first version where the propel tasks work as advertized. By default, they do
their work on the default propel connection. For projects that use another
default connection name, or for projects using multiple connections, you must
pass the correct connection you want to work with.

If you’ve checked out a copy of the tag from Subversion you can switch to the
latest version:

$ svn switch http://svn.symfony-project.com/tags/RELEASE_1_4_15

If you are using the PEAR package you can update using the pear command:

$ pear upgrade symfony/symfony-1.4.15

And as always, don’t forget to clear your cache after upgrading.


Be trained by Symfony experts
2011-12-12 Paris
2011-12-14 Paris
2011-12-15 Köln

Written by in: Zend Developer |
Oct
26
2011
--

Clustrix benchmarks under tpcc-mysql workload

I’ve been working with Clustrix team for long time on the evaluation of Clustrix product, and this is the report on performance characteristics of Clustrix under tpcc-mysql workload.

I tested tpcc 5000W (~500GB of data in InnoDB) on Clustrix systems with 3, 6, 9-nodes and also, to have base for comparison, ran the same workload on HP ProLiant DL380 G6 powered by Fusion-io card, and on SuperMicro server powered by 7 Intel SSD 320 cards (this server is equal to hardware that Clustrix uses for its nodes).

The full report is available on our page with whitepapers, and in this post I would like to highlight the most interesting points.

The chart with comparison of all systems ( results in throughput per 10 sec, more is better)

So my conclusions from this benchmark:

  • Clustrix shows very good scalability in the high concurrent workload by adding additional nodes.
    In fact the throughput improves more than by 2 times (3 times) by doubling (tripling) amount of nodes. This is possible Clustrix automatically distributes data around new nodes, and data/memory ratio decreases, which allows to achieve better throughput per node.
  • Clustrix is able to handle such complex workload as tpcc, and automatically distributes load between nodes despite multi-statements transactions and foreign key relations.
  • For a workload with a small number of threads, Clustrix does not perform as well as the system with Fusion-io cards.
  • We also should take into account that Clustrix automatically provides high availability, maintaining redundant information on each node. Other systems in comparison are not fault- or crash-tolerant.

So looking on the results, Clustrix might be not your first choice for single-thread or low concurrency workloads from the performance point of view, but consider other factors such as high availability and transparent auto-rebalancing out-of-the-box. For high concurrent workloads, Clustrix provides great performance, and if you need better throughput, just add more nodes.

The other factor which would be interesting to compare, but I did not do that in this research, is the total cost of system. I need to ask Clustrix how cost of 3,6,9 nodes system is compared to other systems in comparison.

Standard dislaimer: this post is part of paid evaluation we perform for Clustrix, but is totally independent and fully reflects our opinion.


Oct
25
2011
--

Looking for InnoDB/XtraDB hacker

We are happy to see that Percona Server/XtraDB and XtraBackup are raising popularity and to keep excitement we want to have more features and more performance fixes! If you are experienced software engineer and feel strong enough to hack InnoDB/XtraDB code we invite you to join our development team to work on the following (but not limited to) problems:

If any of that sounds interesting, please contact us or drop me email directly.

Oct
25
2011
--

Free Percona Live London Reception at Revolution Bar

Even if you didn’t make it to Percona Live London, you can get the chance to hang out with us.
We’re giving a reception at the Revolution Bar America Square just a few meters walk from the Tower Hill Underground between 17:30 and 19:30 today (Tuesday 25 October 2011).

All friends of Percona are welcome. See you there!

Thanks to Clustrix for sponsoring the drinks.

Oct
25
2011
--

All symfony 1.x versions available on Github

symfony1 is well and alive and many developers are now using it for projects
hosted on Git. But as the official symfony 1 repository is hosted on
Subversion, it’s not always easy to get things versioned easily.

As of today, this becomes much more easier. If you are using Git and symfony1,
you can now use the official symfony1
Git clone.

This repository has branches for all symfony versions: 1.0, 1.1, 1.2, 1.3, and
1.4. And if you are looking for a specific symfony1 version, get any of the
current 73 referenced tags.


Be trained by Symfony experts
2011-12-12 Paris
2011-12-14 Paris
2011-12-15 Köln

Written by in: Zend Developer |
Oct
24
2011
--

Symfony Day 2011 in Cologne (Slides)

Last week I attended the Symfony Day 2011 in cologne. The event was great and really well organized. I went there for the conference day at friday. From what I heared the thursday workshops were good. The conference place was pretty crowdy and packed. Over 250 Symfony people were attending.

The day was packed with sessions. Igor Wiedler was first with a nice introduction to the Silex framework. I already used Silex in a small project but nevertheless Igor was pretty inspiring and I’m more convinced that I will use the Framework for some use-cases in the future.

Next up was Marc Weistroff with a talk about developer habits and how to learn from the Symfony2 sourecode. The presentation was nice and there were some useful tidbits but I think it would have been more useful if there would have been more concrete examples.

The last session before the lunch break was held by Stefan Koopmanschap and Christian Schäfer. Their talk about “Catching Opportunities with Open Source” was pretty well prepared (maybe the best prepared at the Symfony Day). The presentation style was fluid, humorous and it was totally motivating. Even if it was not directly Symfony-related there was so much of what you can learn from the two speakers own experience with open-source that it was the right descission to place such a talk at the Symfony-Day.

After the lunch break the sessions got more technical. The frist one was about the Sonata Admin Bundle. This was the session I was looking forward to. I know Thomas Rabaix did a wonderful job with the Admin-Bundle and I havn’t used it except in a small demo which didn’t scratched the surface. So I was eager to hear more about it. Sorry to say the talk doesn’t held up with my expectations. There was to much in detail informations, up to no overview on whats possible or some examples.

Next up was Hugo Hamon with its talk about how to create command-line applications/scripts with Symfony2 and the Console Symfony Component. The talk was really informative, nicely prepared and well presented.

The last session came from Richartd Miller who blogged a lot about Symfony2 and Dependency Injection in the last months. His talk about DI was a pretty good introduction to the topic. Interesstingly Richard was the only native english speaker of the speakers but the one I had most difficulties to understand :)

The highlight of the day was the Keynote held by Fabien Potencier. Showing his understanding of what Symfony2 is and whats not. His view on MVC, Symfony components was enlightend. He showed the new profiling capabilities of Symfony 2.1 too.

Next year the Symfony Day will become Symfony Live and will be located in Berlin. I hope I will find more time to attend the workshops and the hack-day.

flattr this!

Oct
24
2011
--

A week of symfony #251 (17->23 October 2011)

This week, Symfony2 added a stopwatch to profile code. The first use of this stopwatch is the new timeline panel in the web profiler. All these new features were introduced during the last Symfony Day 2011 conference.

Development mailing list

symfony 1 development highlights

sfPropelPlugin:

  • r33137:
    [1.4]
    fixed multiple database support in Propel plugin

Symfony2 development highlights

Master branch:

  • 97d6591:
    [WebProfilerBundle] tweaked the default layout to make more room for interesting content
  • 347053c:
    moved most of the logic from ResponseListener to the Response::prepare() method (this allows projects that only use HttpFoundation and not HttpKernel to be able to enforce the HTTP specification rules)
  • 312b20f:
    [FrameworkBundle] added more info to debug command output
  • fbc422b:
    [BrowserKit] added the standard output when an error occurs during the request execution
  • 106ebdb:
    [HttpKernel] added a Stopwatch
  • 842ac36:
    added Stopwatch support in debug mode, added a timeline representing the stopwatch events in the web profiler
  • c5ca40c:
    [Routing] added support for _scheme requirement in UrlMatcher
  • 46a69f1, ad7fcf5:
    define a WarmableInterface and only warm the cache if it implements warmable to allow replacing the core router
  • 3134ef1:
    [HttpKernel] removed usage of assertCount which has been introduced in PHPUnit 3.6
  • 2e1344e:
    [Routing] added the possibility to define default values and requirements for placeholders in prefix

2.0.x branch:

  • e81c710, 1a43505:
    [FrameworkBundle] increased the priority of the profiler request listener
  • HttpKer:
    check if cache_warmer service is available before doing the actual cache warmup

Repository summary: 3,234 watchers (#1 in PHP, #24 overall) and 819 forks (#1 in PHP, #13 overall).

New plugins

  • sfExport: (no description)
  • sfDoctrineTable: generates feature packed base tables to each model. Base table contains PHPDocs of available pre-generated WHERE, COUNT and JOIN considering table relations and its depth.
  • sfTools: provides some tools and debugging functions. * sfDebugTools.class.php (dump(), dump2(), getElapsedTime()).
  • sfDoctrineExtra: includes the following behaviors: Blameable, EventLoggable, GoogleI18n, Localizable, Sortable, Taggable, Temporal.

Updated plugins

  • sfRedis:

    • upgraded Predis to 0.6.6
    • deprecated commands alias in Predis
    • added option for reversing ZSET pager
  • pmPropelGenerator:

    • fixed show_when stuff on linkTo* methods
  • apostropheExtraSlots:

    • fixed bug with IE and the map JS
  • apostrophe:

    • fixed a bug with the .a-normal / .a-editing class name that is toggled on areas and slots when the edit view is toggled
    • singleton slots were missing the .a-slot toggle because of the nature of the markup and the way the slot was being targeted
    • verbose logging for static file sync while we test a few things
    • fixed menuToggle issue
    • AJAX media edit form now supports CKEditor
    • a little clean up in layout for assembling the body class
    • added handy getDatabases() and databaseExists() methods in aMysql
    • aString::limitWords now supports an ellipsis option that lets you override what is appended as an ellipsis
    • added aHtml::lazyUrls, which turns likely hostnames into proper http:// URLs so that textToHtml() can pick up on them
  • apostropheBlog:

    • disabled the save on blur behavior for the blog admin interface in old apostrophe 1.4

They talked about us


Be trained by Symfony experts
2011-11-21 Paris
2011-11-21 Köln
2011-11-24 Köln

Written by in: Zend Developer |
Oct
21
2011
--

Find where your data is replicated, win a Percona Live ticket

Percona Live London starts on Monday, so this is the last in the series of free-Percona-Live tickets we’ll give away. But first — have you ever wondered what servers are in your MySQL replication hierarchy?

We have, too. As consultants, a lot of times we need to get a quick overview of the whole replication hierarchy and specific things about it, such as replication filters, versions, whether replication is running, how far behind it is, and so on. These things are very important for making sure that we don’t break something in the system, get blamed for breaking replication when it was already broken, and so on.

So we built pt-slave-find (it was actually born as mk-slave-find, ages ago before I even worked at Percona). It automatically detects and connects to every server in the replication hierarchy, and prints out a summary of each one’s most important details.

Here’s an example. Notice how one of the servers has a replication filter on it, the servers don’t all have the same version installed, and some are in the AWS cloud. All of these things are important to know — if we run a checksum on the non-cloud servers, for example, we could make the cloud servers fall far behind in replication.

$ perl pt-slave-find localhost
localhost
Version         5.1.57-rel12.8-log
Server ID       6275
Uptime          10+01:18:10 (started 2011-10-08T19:22:04)
Replication     Is a slave, has 5 slaves connected, is not read_only
Filters
Binary logging  MIXED
Slave status    0 seconds behind, running, no errors
Slave mode      IDEMPOTENT
Auto-increment  increment 4, offset 2
InnoDB version  1.0.16-12.8
+- 10.124.62.76
   Version         5.1.57-rel12.8-log
   Server ID       6276
   Uptime          12+03:35:17 (started 2011-10-06T17:04:57)
   Replication     Is a slave, has 2 slaves connected, is read_only
   Filters
   Binary logging  MIXED
   Slave status    0 seconds behind, running, no errors
   Slave mode      IDEMPOTENT
   Auto-increment  increment 4, offset 2
   InnoDB version  1.0.16-12.8
   +- 10.124.62.78
      Version         5.1.57-rel12.8-log
      Server ID       6278
      Uptime          12+03:53:59 (started 2011-10-06T16:46:15)
      Replication     Is a slave, has 0 slaves connected, is read_only
      Filters
      Binary logging  MIXED
      Slave status    0 seconds behind, running, no errors
      Slave mode      IDEMPOTENT
      Auto-increment  increment 4, offset 2
      InnoDB version  1.0.16-12.8
+- 10.124.62.77
   Version         5.1.57-rel12.8-log
   Server ID       6277
   Uptime          12+04:00:24 (started 2011-10-06T16:39:50)
   Replication     Is a slave, has 0 slaves connected, is read_only
   Filters
   Binary logging  MIXED
   Slave status    0 seconds behind, running, no errors
   Slave mode      IDEMPOTENT
   Auto-increment  increment 4, offset 2
   InnoDB version  1.0.16-12.8
+- 10.124.62.86
   Version         5.1.57-rel12.8-log
   Server ID       6286
   Uptime          12+02:52:15 (started 2011-10-06T17:47:59)
   Replication     Is a slave, has 4 slaves connected, is not read_only
   Filters
   Binary logging  MIXED
   Slave status    0 seconds behind, running, no errors
   Slave mode      STRICT
   Auto-increment  increment 1, offset 1
   InnoDB version  1.0.16-12.8
   +- [redacted].compute-1.amazonaws.com
      Version         5.1.43-60.hardy.7-log
      Server ID       3141592
      Uptime          11:29:58 (started 2011-10-18T09:10:16)
      Replication     Is a slave, has 0 slaves connected, is not read_only
      Filters         replicate_wild_ignore_table=foo%.mount%
      Binary logging  ROW
      Slave status    0 seconds behind, running, no errors
      Slave mode      STRICT
      Auto-increment  increment 1, offset 1
      InnoDB version  1.0.6-unknown
   +- [redacted].compute-1.amazonaws.com
      Version         5.1.43-60.hardy.7-log
      Server ID       19924124
      Uptime          12+23:32:10 (started 2011-10-05T21:08:04)
      Replication     Is a slave, has 1 slaves connected, is not read_only
      Filters
      Binary logging  STATEMENT
      Slave status    0 seconds behind, running, no errors
      Slave mode      STRICT
      Auto-increment  increment 1, offset 1
      InnoDB version  1.0.6-unknown
   +- [redacted].compute-1.amazonaws.com
      Version         5.1.43-60.hardy.7-log
      Server ID       207
      Uptime          12+23:40:41 (started 2011-10-05T20:59:34)
      Replication     Is a slave, has 1 slaves connected, is not read_only
      Filters
      Binary logging  STATEMENT
      Slave status    0 seconds behind, running, no errors
      Slave mode      STRICT
      Auto-increment  increment 1, offset 1
      InnoDB version  1.0.6-unknown
   +- [redacted].compute-1.amazonaws.com
      Version         5.1.43-60.hardy.7-log
      Server ID       330612
      Uptime          12+23:44:28 (started 2011-10-05T20:55:47)
      Replication     Is a slave, has 0 slaves connected, is not read_only
      Filters
      Binary logging  STATEMENT
      Slave status    0 seconds behind, running, no errors
      Slave mode      STRICT
      Auto-increment  increment 1, offset 1
      InnoDB version  1.0.6-unknown
+- [redacted].compute-1.amazonaws.com
   Version         5.1.43-60.hardy.7-log
   Server ID       215924
   Uptime          12+08:15:08 (started 2011-10-06T12:25:08)
   Replication     Is a slave, has 6 slaves connected, is read_only
   Filters
   Binary logging  MIXED
   Slave status    0 seconds behind, running, no errors
   Slave mode      IDEMPOTENT
   Auto-increment  increment 4, offset 3
   InnoDB version  1.0.6-unknown
+- 10.153.116.5
   Version         5.1.57-rel12.8-log
   Server ID       1165
   Uptime          20+09:44:46 (started 2011-09-28T10:55:30)
   Replication     Is a slave, has 0 slaves connected, is read_only
   Filters
   Binary logging  MIXED
   Slave status    0 seconds behind, running, no errors
   Slave mode      STRICT
   Auto-increment  increment 4, offset 3
   InnoDB version  1.0.16-12.8

So that’s how you can quickly find out what’s in your replication hierarchy, how it’s configured, and a few basic bits of status information.

Now how do you win a free ticket to Percona Live London? Watch our @percona Twitter stream to find out!

Oct
19
2011
--

A week of symfony #250 (10->16 October 2011)

This week, all the Symfony2 components were included in packagist.org, a public repository for Composer, the package manager that soon will be used on Symfony2. Meanwhile, on the master branch of Symfony2 repository all the HttpKernel event listeners were updated to implement EventSubscriberInterface and the official repository surpassed the 800 forks milestone.

Development mailing list

Symfony2 development highlights

Master branch:

  • 8f15794:
    moved LocaleListener and RouterListener to the HttpKernel component
  • 4539e5c:
    moved configuration of the default HTTP and HTTPS ports from RouterListener to RequestContext
  • beda03b, 7a89d34:
    [HttpKernel] updated all HttpKernel event listeners to implement EventSubscriberInterface
  • 6e4269f, 3aa7582, a2cf023:
    [Form, TwigBridge, FrameworkBundle] added the ability to specify the translation domain
  • 73312ab:
    [Validator] the Type constraint now accepts the Boolean type instead of boolean
  • cc76da1:
    [HttpKernel] fixed file profile storage when trying to read an empty token
  • 5b69dae:
    [HttpKernel] fixed profiler file storage for children
  • 3ca1ccb:
    [DoctrineBridge] removed the Xml and Yaml driver as they are now part of Doctrine
  • 976f8b1:
    [HttpKernel] moved the Timer data collector to HttpKernel
  • 08285ed:
    [SwiftmailerBundle] fixed email display in the web profiler when the message is not in UTF-8

2.0.x branch:

  • 2270a4d:
    [Bridge, Doctrine] added a catch for when a developer uses the EntityType with multiple=false but on a hasMany relationship
  • 00cbd39, d8dfca2:
    [BrowserKit] fixed cookie expiry discard when attribute contains capitals
  • 9d8046e:
    [Doctrine] UniqueValidator now works with associations

Repository summary: 3,182 watchers (#1 in PHP, #24 overall) and 803 forks (#1 in PHP, #13 overall).

New plugins

Updated plugins

  • sfPEARcaptcha:

    • fixed typo
  • sfGuardSecure:

    • tweaked allow_extra_fields
  • dcReloadedFormExtra:

    • tweaks and fixes to chosen.js widgets
    • added the alWidgetFormTimepicker widget (wrapper for the jQueryUITimepicker) and the corresponding validator alValidatorTimepicker
    • updated README file to add timepicker explanations
  • apostropheBlog:

    • fixed a user who was a member of the editor group but not able to edit any particular posts could edit all posts due to an empty whereIn() call
  • apostrophe:

    • made sure there’s a full app environment (including invocation of the frontendConfiguration class configure method) in aSyncStaticFiles task
    • refactored a-admin generator filter styles
    • fixed validated type of file uploads persists properly for Office files
    • fixed mysql version of aTools::lock did not return a value properly

They talked about us


Be trained by Symfony experts
2011-11-21 Paris
2011-11-21 Köln
2011-11-24 Köln

Written by in: Zend Developer |

Powered by WordPress | Theme: Aeros 2.0 by TheBuckmaker.com