All posts by Tapio Vaattanen

Five steps to tune Netezza query performance

Netezza is designed with simplicity in mind. You can get it up and running in hours rather than weeks. When you follow the basic rules, 99 percent of your applications and queries can perform well. There are six things you should keep in mind while designing your databases and setting up maintenance tasks:

  • Distribution
  • Data types
  • Statistics
  • Zone maps
  • Data organization
  • Groom

When you have taken care of the these things, you shouldn’t have any major issues with performance. However, if you do have issues, how do you find them? Follow these five steps, which can help you to find and possibly fix the performance issues on your appliance.

1. Use IBM Netezza Performance Portal and the query history database

The IBM Netezza Performance Portal is an excellent tool for making sure you have everything in place, and if you don’t it will help you to identify any issues. It provides an excellent front end to the query history database and it is able to connect the appliance performance history with your query history.

Netezza Performance Portal and its installation guide are available for download from IBM Fix Central. The installation is fairly simple. Please refer to the “IBM Netezza Performance Portal User’s Guide” (which is included in the download) for installing and configuring both Netezza Performance Portal and the query history database.

2. Check the server load and resources

One of the greatest things about Netezza Performance Portal is its ability to monitor one or more Netezza systems and their resource usage. From the nice graphical user interface (GUI) you can easily identify performance peaks. Then, if you see any changes in trend, you can drill down and take a closer look by using your mouse pointer to click where the change begins and ends. You can repeat this as many times as you want. After zooming in on the period of time you are interested in, you can click the “Jump to History” button to see which queries were running during that time slot. But first you will need to choose the host you are interested in, as this will populate the “Submit Time” and “Finish Time” fields in the query history view.

3. Identify the problematic queries

Identifying problematic queries is, of course, easier said than done. Basically, there are three different types of long-lasting queries that usually require a closer look:

  • Queries that take a long time to finish because they need to access a lot of data.
  • Queries that take long time to finish because the query is not optimal.
  • Queries that take a long time to finish because the database design is not optimal.

When you first look at your queries, they probably just look like long-lasting queries. However, if you know your data and your queries, you might be able to place at least some of them in the first class I mentioned (queries that naturally take a long time to finish because of large amounts of data). What I usually do myself, after I have zoomed in on a performance peak or otherwise interesting period from the Netezza Performance Portal monitoring view, is sort the queries based on their “Query Duration.” I simply list the queries in descending order and then look at the “Query Text.”

When you have selected the interesting query, you can perform various actions with Netezza Performance Portal, including the following:

  • You can right-click the query and check the “Identical Query Trend Chart.” This will give you an idea of the variation in duration for identical queries over time. For instance, if the system is overwhelmed by concurrently running workloads, it is obvious that a query will not run as fast as it normally would. If you notice that a query took longer than normal to run, you should check what else was running on the system at that time.
  • If it really took longer to run than is typical, you can check the “Query/Plan Activity Chart.” This will give you a nice graphical view of all the queries running concurrently on the system, which could be affecting the duration of the query you were interested in.
  • You can check if the statistics are up to date on tables related to the query, and you can even update the statistics thorough Netezza Performance Portal if they are outdated.You can also check encumbrance. There might have been, for instance, loads or aborted ad hoc queries running on the system that negatively affected the system performance. I have once identified the latter to be the case for why highly-prioritized extract, transform and load (ETL) tasks did not finish in time. Since the queries were aborted, they were not seen in the Query/Plan Activity Chart, but rather on the encumbrance view.

Picture 1: Identical Query Trend Chart

4. Check the query plan

You can check the query plan directly from Netezza Performance Portal and that’s not a bad choice. However, what I usually do is check only the plan ID. You can find this from one of the columns when you are listing the queries on the query history view. I then take the plan ID, log in to the appliance and use nz_plan to take a closer look at the query. One advantage of nz_plan is that it lists the interesting snippets early in the file. Another attractive feature is that it rewrites the query very nicely in a readable format.

That said, you can still use the other techniques available to produce the query plan, including the one available directly through Netezza Performance Portal.

Picture 2: Query Plan generated with nz_plan

 

5. Check the distribution keys and change them if needed

Now that you have the query plan, one of the first things you can check from there are the distribution keys for the tables the query is accessing. Are they what you assumed they were? Are there re-distributions—single or double? If you see something like “1[03]:spu DownloadTableNode distribute into link 2147484337” you know that the table is distributed. If you assumed it isn’t, then you should check the distribution keys again.

Check how it works now when there are no issues

Don’t wait until you have issues. Familiarize yourself on how to monitor performance issues before you have performance issues. If you don’t already have Netezza Performance Portal, install and deploy it. Try and test how nz_plan utility works. Read the query plans. By doing this, you will be ahead of the game and ready to tackle any upcoming issues.

If you have any questions or suggestions related to query performance tuning, please leave a comment. You can also follow me on Twitter @TVaattanen to discuss more about Netezza.

Everything you wanted to know about networking but were afraid to ask (Part Three)

This blog post is the third part of a series about questions you may have wanted to ask about Netezza networking. The first part concentrated on basic Netezza networking, while the second part continued with network bonding and floating IP addresses. This is the third part, which concentrates on advanced configuration options.

Network speed

By default, a Netezza appliance host has two available Peripheral Component Interconnect (PCI) slots for additional PCI cards. Normally you would use one for a 10 GB dual port Network Interface Adapter (NIC) and the second available slot for dual port 8 GB Host Bus Adapters (HBA). The first you could use for 10 GB networking, and the second could be used for Storage Area Networking (SAN) or LAN-Free backups.

Internally, the appliance uses 10 GB networking. Externally, the default is 1 GB. If you want to have 10 GB external networking, then you need to have the additional 10 GB dual port NIC. Assuming you have a 10 GB network infrastructure in place, you most probably want to go directly to 10 GB.

Even if you plan to initially start with 1 GB external networking, you should consider getting the additional 10 GB NIC and 8 GB Host Bus Adapter (HBA), because you are likely going to use them later.

More about network bonding

By default, the appliance has two hosts. Both of the hosts have one external bonded virtual network device, which consists of two physical 1 GB network interfaces. By default, the network bond is created as active/passive, so the maximum bandwidth you can achieve is 1 GB. If you ask, and your network switch supports link aggregation, you can configure the network bond as Active/Active to get a 2 GB link.

As mentioned above, there are two available PCI slots. This means you can also add two 10 GB dual port NICs to those slots. That way, you can bond up to four 10 GB physical network devices together to achieve maximum 40 GB bandwidth.

Another option would be to use two of the 10 GB ports for virtual IP addresses for application connectivity, and the two remaining ones for a backup network. There are plenty of options, when you consider that you can bond together any of the 10 GB ports in any order to create a bonded device, and then you can choose to go for active/active or active/passive mode.

What about LAN-Free?

This section doesn’t actually cover pure TCP/IP networking, but rather connectivity without TCP/IP. As mentioned earlier, you can have 8 GB HBA installed on one or both of the available PCI slots on the hosts. If you decide to have at least one available PCI slot for additional 8 GB HBA, you could use it for LAN-Free backups.

TCP/IP networking is usually done in shared mode, so you have to share the bandwidth with other users—unless you have a dedicated link, which most often you don’t have. With SAN it is easier and more common to create a dedicated link between the appliance and, for example, the backup server. Or you can connect to an external SAN disk through a dedicated link. That of course has clear benefits; when you know exactly how much bandwidth there is and when you don’t need to share it with anyone.

Another benefit with the LAN-Free option is is the CPU usage. TCP/IP implementations tend to have more CPU overhead compared to SAN. I would emphasize the benefit of the dedicated link though, since CPU on the host is rarely limited while dealing with backups, for instance.

Management interfaces

I already mentioned the management IP addresses: usually two per host, one being the host IP itself, and the other being the IP address of the integrated management module (IMM).

The IMM IP addresses are extremely handy if the host itself is not reachable through the host IP due to the fact it has failed with a hardware error, or if there is something wrong with the configuration. Through IMM, you get console access though the web interface, and either debug the problem or fix the configuration issue.

Some clients require a separate management IP, which is not attached to any network devices used by applications and which still has direct TCP/IP connectivity to the host. In this case neither the host IP nor the IMM IP can be used; you need to use some other available physical network port or interface. If this is the case, you should clearly define the requirements, so you can check the available options.

What else?

If anything else is on your mind that you did not dare to ask earlier, feel free to ask or comment below. You can also follow me on Twitter @TVaattanen to discuss more about Netezza.

Everything you wanted to know about Netezza networking but were afraid to ask (Part Two)

This blog post is the second in a three-part series with the goal of answering questions you might have about Netezza networking. The first part concentrates on basic Netezza networking, whereas this second part covers more advanced networking concepts. For advanced configuration options, you can check out the upcoming third part of this blog post.

Network bonding

You have two hosts: active and passive. Each has its own IP address. These IP addresses are not floating. These are called host IPs. Since you want to have maximum redundancy on all components, there are actually two physical network devices virtually bound together to create virtual networking devices (one for each host). Both hosts have two physical network devices that carry one IP address. This is called network bonding.

Let’s say both of the hosts have network devices eth6 and eth7 and they create a coupled virtual device called bond2. We usually use bond0 and bond1 internally, so the first bonded device for external use is normally bond2.

For the virtual device bond2, you can assign an IP address and connect to a host. Both active and passive hosts will have this device and both of the hosts will have their own individual IP address, which is bound to this virtual device.

Virtual IP

If you think of this from an applications point of view, it wouldn’t make sense to connect to the host IP, since if the active host fails, you would need to re-configure applications to use the new active host, which has a different IP.

That’s why applications use virtual IP. Virtual IP is actually an IP alias, which is bound to an active host. Hosts run standard Linux operating systems, so if you are familiar with Linux, it’s easy to explain. If not, it’s still not rocket science. On Linux, you can easily add IP aliases on top of any physical, or virtual for that matter, network device . If you have physical network device eth0 with fictional IP address 192.168.1.100, you can add another IP address to that same physical device just by assigning an IP to device eth0:0. Next you add to device eth0:1 and so on.

In this case, you have virtual network device bond2, which is a bonded device having physical devices eth6 and eth7 behind it. If you lose eth6, you are still good as long as physical device eth7 is good. To connect to either of the hosts directly, you would use the IP address assigned to bond2 on the particular host, or rather the host name you have assigned in your domain name server (DNS) for that IP address.

Floating IP

As I said, applications connect to a virtual IP. The virtual IP is assigned to virtual network device bond2:0. It only exists on an active host. This is something called a floating IP, and it is always on the active host. If Host 1 fails, it will be on Host 2. If, as in my example, device eth6 fails, you have bonded device bond2, which consists of eth6 and eth7, the floating IP is still good on that same appliance as before.

There are two virtualization layers here. One is done though network bonding, the other is done through cluster software. If one of the network devices physically breaks, the network bonding will do the trick, and you are still good to go. If the other appliance breaks, you have clustering software, which can deactivate the bond2:0 on the failing host and create bond2:0 on new active host.

So the bond2:0 always has the virtual IP your applications are able to use. You should, of course, always assign host names in your DNS for this virtual IP, and use this host name in your applications instead of using IP addresses directly. That way, if you ever need to change the IP address for the virtual IP, you don’t need to change configurations for several applications. Instead, you just have to change the IP for the host name you have defined for the virtual IP in your DNS configuration.

What about changes to the default configuration?

I will cover advanced configuration options in part three of this blog post. If you have any network-related questions or suggestions, please add them below in the comments. You can also follow me on Twitter @TVaattanen to discuss more about Netezza.

Everything you wanted to know about Netezza networking but were afraid to ask (Part One)

This blog post is the first of three parts informing you about everything you always wanted to know Netezza networking but were afraid to ask.

Simplicity

PureData System for Analytics is a simple appliance for serious analytics. There is minimal tuning involved and it can be up and running in hours with minimal administration. Since it is so simple, you might be afraid to ask questions such as the following:

  • How would my applications connect to the appliance?
  • How am I going to manage the appliance?
  • What is the network bandwidth?

The answer to all of the above questions is that you can do it through a standard TCP/IP networking interface. Well, how do you network with PureData System for Analytics, then?

Connectivity

It’s simple because it’s an appliance. It has basically one IP address, or host name, that your applications use to connect. To manage the appliance, you can use the same IP address or host name for sure, but let’s be a bit more exact.

The PureData System for Analytics appliance has five external IP addresses and six ethernet drops by default.

The appliance consists of two hosts and several S-Blades or Snippet Processing Units (SPUs). One of the hosts is active and the other is passive. You always connect to the appliance through the active host. On the application level, you never connect through any other component. To connect to the active host you use something called a virtual IP or the Open Database Connectivity (ODBC) host name. That IP or host name is for applications. It is a floating virtual IP address which is always on an active host.

You should always make sure there is a host name assigned to the virtual IP in your name server so that applications can connect through a Fully Qualified Domain Name (FQDN) instead of an IP address.

Management IPs

To manage the appliance, you can connect directly by using the IP addresses assigned to both hosts, which are called the host IPs. These IPs are assigned to virtual network device bond2 by default, which is created from two physical network devices for redundancy. That would be a normal situation.

You have other options as well. With an integrated management module (IMM) that has an IP address, you can connect and get console access through the network instead of needing to be physically near the appliance.

In summary

There are two physical network devices on both hosts, which creates a virtual network device bond2 by default and one physical network device on IMM on both hosts. That makes six ethernet drops.

There are five IP addresses: One IP address for applications, one IP for both of the two hosts and one IP address for IMM on both of the hosts. Here’s a little more detail:

  • One VIP and ODBC host name: You should define the host name in your name server for VIP. That way, applications are able to use a floating IP through the ODBC host name to connect to the appliance. This IP is assigned to active hosts automatically.
  • Two Host IPs: These are by default assigned to virtual device network bond2 on both hosts. If you want to connect to host 2, you use the IP address assigned to device bond2 on host 2.
  • Two IMM IPs: Both hosts have an integrated management module, you can use them to get direct console access through the network.

The rest of the networking

I will cover more advanced networking topics in part two and three of this blog post series. If you have PureData System for Analytics networking related questions in mind you did not dare to ask earlier, please do it below by commenting on this post. You can also follow me on Twitter @TVaattanen to discuss more about Netezza

Sauna

I didn’t write yesterday, and since I’m supposed to keep daily diary on my recovering from achilles tendonitis, I will cover both Saturday and Sunday on one post.

Saturday. I slept quite late. My wife had to get up early, but I didn’t and kids weren’t going to school, so why not take the advantage of sleeping a bit later. We had a plan to go to Udora to visit our cabin and meanwhile deliver some bakery products to local grocery. I as usual will benefit from this by going to Cedar Park sauna and Pfefferlaw river.

97AE8E99-970D-4813-AE35-EC03D935B60D

I took my four daughters and the one and only dog with me. First the Udora General Store, and then to our cabin. It was a bit cold. At the morning my right calf was still hurting, so I skipped all the calf strengthening workouts and did just the foam roller and stretching.

207FFA0C-C8CC-4485-94DE-712945C2A91D

My super duper invention is to do sauna and cold river several times. That was my main goal on Saturday. Once we get to sauna, I was a bit disappointed. There were other people, so I could not just go to the sauna and lie on the bench like I own the whole place. I had to sit normally and talk with others. In English, since the other guy was apparently only half Finnish. He was joking about it, and mentioned he can only last half of the time in sauna since he is only half Finnish. He had propably had more sauna endurance than I did.

9DAA3C41-5A40-4344-9F72-1CFBEB6A8E20

Since that half Finnish guy went to swim to the river, I had not much other choices to go and follow him. Finns are really proud of being able to swim in freezing water. The whole idea of sauna is to recover from that. And oh yeah, that was my plan for my ankle too. With achilles tendonitis I do think, you should do the transformation from sauna to the cold river and back to sauna as fast as possible. The warmth of sauna is good, and when you get to cold river, that’s good as well, but you should get back to the sauna as fast as possible. That’s probably not good for your heart, but it does activate your blood circulation tremendously. I’m not a doctor, so don’t believe me. I’m just saying, it’s definitely NOT good for your heart the way I do it.

IMG_3347

I’ve done it before, and it has been good for my leg as long as I have remembered to keep my leg warm. After cold river I go immediately to warm or rather hot sauna, and it’s going to be good. After having last sauna, I’m not going to the river, but just cool down outside following a warm shower.

perse

The Cedar Park sauna isn’t the best looking sauna in the world. But it is one of the best saunas in the world. It was good for my leg anyway.

Saturday:

  • Stretching 2x30sec
  • Foam roller 3x
  •  Calf pain around 3/10.

Sunday:

  • Stretching two times
  • I did some calf and soleus workout (two times 3x) since my achilles tendon was hurting, and I figured out it must be because not doing any workouts.
  • My idea skipping the workouts was to get rid of calf pain.
  • I admit, recovering from achilles tendonitis is more art than science.
  • My achilles was not hurting yeterday, but today it is.

Physio threrapy

It’s been more than two months since I’ve been in physio teraphy for my achilles pain. As I mentioned in my last blog, it’s also been more than two months since I did my last real run.

Regardless, today I started with taking dog for a short walk. I was having weird calf pain all day. I don’t think it was because of the yesterdays 2.75k walk run, but it has to be because of the new achilles workout I tried. Can’t figure out any other reason.

The walk was really short. That went ok, of course. Then stretching and foam roller. Couple of times foam roller minimum of 2 minutes. Then 20 minutes indoor cycling. I decided to skip everything else at that point.

I had my PT at afternoon. I removed the tapes. I wasn’t sure how my PT is going to react, since I felt they are not scientific enough. PT went well and I was really glad I booked it. I told about kinesio taping and to my surprise, they actually do have kinesio tapes at the clinic too, but different brand. Maybe I should try another brand, since the one I use isn’t actually that adhesive. They should last for three to four days, but mine starts to wear of after one day.

In summary, I didn’t do much exercise today:

  • 10-15 min walk in the morning, after noon and evening.
  • Streching 2 x 30 soleus and calves both morning and evening.
  • 3 x 2 min foam roller.
  • 30 min physio teraphy.
  • Nutrion: pizza and beer :
  • Polar loop shows 144% activity level.

I booked another PT for next Friday as well as massage therapy for next Wednesday. I’m hoping to get my treadmill fixed next week too.

Achilles tendonitis

This blog was supposed to be about running, but seems I have to change the subject from running to recovering from running. The achilles problems which started after my barefoot experiments haven’t still gone away.

I did my last real run in Finland August 21st. It wasn’t bad actually and I felt quite ok during the run and after. My legs felt ok, otherwise it wasn’t ok, since I ran relatively slow less than 6k in 30min while my heart rate was at 85% of maximum. And then day after the achilles pain was back. I haven’t really run after that.

Week ago I decided, that since I’m not runner anymore, better start doing something else. Since I have small home gym at my basement, I figured out that I start from there. After 30min I decided that’s it for now. Then I quickly changed my mind and thought I will do one more bicep workout with dumbbells. When I was getting the dumbbells from the floor, I felt sharp pain on my lower back and couldn’t almost get up.

Ok great, that’s it, now I can’t do any exercises at all was my first thought. It was true for a week. After seeing chiropractic couple of times, I was ok to do another 30min workout at my mini gym today.

And not only that. I went shopping couple of days ago, and bought KT tape. I was so much encouraged how my right leg felt after wearing them one day, I decided to go for a run today morning. Two months no running at all but today I did 2.75km.

Running again

I’m taking baby steps. I have read a bit about kinesio tape and how they might help or might not help from recovering injuries. There is not necessarily a lot scientific proof they do anything, but many people seem to have been able to recover from achilles tendonitis with kinesio tape even after suffering from it for years. If it’s not tape what helps with the healing process, I’m ok to use the placebo effect too.  I better believe they do help.

My leg has been quite ok as long as I haven’t been walking too much and as long as I remember to do the workouts. The stretching and achilles and soleus strengthening. If I walk too much with the dog (or without), then the pain is back. If I forget the stretching and strengthening workout, the pain is there even when I’m not doing anything.

I’m not sure what helps and what doesn’t. My idea has all the time been, that I should keep diary about the pain and about my workouts. I start it now.

Thursday 10/22/15:

  • Kinesio tape: https://www.youtube.com/watch?v=p7OAD4zIBos
  • Stretching after 10-15min walk (with the dog) both morning and evening: http://az675379.vo.msecnd.net/media/1356056/strengthening-leg.pdf
  • New achilles tendon workout morning and evening: https://www.youtube.com/watch?v=l2gubqenGDo
  • Jumping 2×20 times on mini trampoline
  • 2.75km run
  • 30min at gym
  • 20min indoor cycling
  • Foam roller morning, after run and at evening.
  • At morning almost no pain at all.
  • During evening mild achilles level 2/10 and  pain level 5/10 at lower right calf.
  • I skipped mini trampoline jumps at evening because of the calf pain.
  • Healthy breakfast oat meal and banana. To make it easy to get enough protein (which should help recovering), I went for whey protein both morning and evening. Pizza for dinner 🙂
  • Polar loop shows 215% activity level.

I scheduled PT for tomorrow and I hope it helps for the calf pain. I rather have calf pain than achilles, but the later usually follows from the first.

Barefoot running

It’s been a while since I’ve written here.  It’s only nine days till Helsinki City Marathon.  I thought I’d have a lot to write between Ottawa marathon and Helsinki, but no, I haven’t been writing anything.

After Ottawa, I thought I’d try something new. Barefoot running. That has been in my mind at least last couple of years. After reading Finn’s “Running with Kenyans”, Jurek’s “Eat and Run” and starting to read McDougall’s “Born to Run”, my urge to run barefoot certainly hasn’t diminished.

So I did like many other do. I went and checked where to get Vibram Five Fingers. It seemed to be hard to find any from traditional stores, so I end up ordering pair of VFF EVO Bikilas from Amazon. I also started to investigate barefoot running more deeply, and found Xero Shoes. I ordered pair of those too. What a deal, shoes with 5000 miles warranty for $30!

Vibrams

Bikilas came just in few days. I had read a lot about how to start slowly and not to run too fast and too much in the beginning. I especially liked Xeros Shoe’s founder Steven Sashen’s writing “How NOT to start barefoot running“. My favorite sentence there is: “which part of 200 yards was confusing to you?”. Steven makes it very clear: you should start with short distances.

I was thinking after reading that, ok, good understood, now I will wear my VFFs and do 10k really fast,  and that’s what I did. It felt great. I was running faster with lower heartbeat than normal. My Polar told my Running Index was 60, which was highest running index I ever achieved (edit: actually no, 61 is, which I got on my second VFF run. 60 I’ve done before too). Must be because of barefoot running and not because I was tapering last two weeks from Ottawa marathon.

Selection_293
With or without Vibrams. Notice lower heartbeat on blue – with Vibrams.

My calves got really sore next day and I barely could walk. I was expecting that, since I knew I ran too fast and distance was all too long. I rested a couple of days, and did 5k with Vibrams. Rested couple of days more, and did another 5k with well cushioned running shoes. My feet were still quite ok. Little soreness.

Xero Shoes

Then I got my first pair of Xero Shoes. I did the laces and instead of running with them, I just started to wear them. They were nice. Nice to walk with, nice to drive car, nice to go to pub and have few. Great sandals. Next morning I got anxious, and I had to try to run with them. They were nice to run with too. Totally different compared to Vibrams. Xeros give you instant feedback if you are doing something wrong. They do the flapping sound. Seemed I had hard time to get my right foot not to make the sound. I tried. I ran 10k, 5k and sometimes there was less noise than others. I figured out, that my muscles are too sore, so I thought I will take a break for one week or so.

Selection_305
Xero Shoes after muddy 10k run

After one week, my feet were ok. No soreness everything felt good. I decided to do a run with Vibrams this time. 10k. Immediately when I started running, I noticed a little pain on my right achilles tendon. Usually my left foot is the problem child, but now first the flapping sound, and now pain! Maybe similar pain I noticed just before Ottawa Marathon. It eased during running, but after run it was still there, and made me really worried. I had read a lot about achilles pain, and to be honest, I was freaking out that I had been able to create my self chronic achilles pain. I decided to stop running totally till there was no pain.

The pain just didn’t go away. Not after one week. After two weeks, ok, no pain. I did indoor cycling and weigh training, but did not run. Then I started to do a bit longer bike rides. 50k, 10k, 30k. Not much pain. In the morning, no pain. Another 50k bike ride and boom, pain is back.

Physiotheraphy

That’s when I scheduled an appointment for physiotherapy. The PT trainer created me a program how to strengthen and stretch my calves and soleus. I got also interval training program for running. First run: 5min walking then 3 x (1 min walk + 1 min run). 25 days to Helsinki City Marathon and my runs are about 2k including walking. Eh!

After couple of weeks PT, I did my first continuous 5k run. My aright chilles hurt after run, which was depressing, but it did get normal just in couple of days. I don’t think I’m going to run marathon in Helsinki, no way. Even if my achilles would be ok, I haven’t been running almost at all. Last weeks I have been cross training even less. So yes, it’s not going to happen.

The dog

We got dog, a copper nose beagle, a week ago. We have been wanting a dog for a longer time, but this one came without no thinking or planning at all. We went to look for dogs. Rescued dogs. We met Carter, and kids thought oh how cute he is: “Daddy, please!!!!”. Ok, yeah, why not.

When the lady came to do house visit before the signing of the adoption papers, I asked about how about jogging. Yes, but start slowly so dog gets used to it. Gradually! Yes sure, I know all about that. Start slowly, that’s my middle name.

So we did first 20min run between normal walk. He did great. Certainly he can do more than that. Next time 30min and about 5k plus walk before and after. No problems. I went and checked beagle forums. I learned beagles can run easily 20k and much faster than any people can run. Oh wow, this just might be an excellent running dog. We did 5k in the morning, so sure we can try 10k in the evening.

I had not run more 6k for over month now. Dog, I don’t know. This was yesterday. I didn’t know how my achilles was going to react, and will I have to carry the dog last 5k, but that’s what I decided to find out. First we walked the hilly sections of the route. That way dog gets his chance to do the sniffing and stop on every tree and so on. And I didn’t need to run on hills, which my PT instructed against in the first place. Besides, walking for first 15 minutes is a good warm up.

Carter
Carter

We started to run. Between 6’00” and 5’40” pace. First 5k went really well. I had some pain but dog was doing fine. Then till 7k still fine. I noticed that hiatus from running is easy to feel. With very moderate just a bit faster than 6’00” pace and I feel it everywhere.

We managed 10.3k in around 1 hour. My achilles was sore after the run, so I did the stretching, skipped the strengthening exercise and put some ice to ease the moderate pain. Today morning I had no pain which is really good sign. Some stiffness though. Dog was also doing great, so the distance wasn’t too much for him.

10k with Carter
10k with Carter

This morning we also did 40min walk and 10min run just to warm up my calves and soleus before morning stretch. He likes to pull the leash a bit, so mainly we actually concentrated on that. To get rid of pulling the leash.  While running he actually does not pull, but while walking he does, so still some work with that.

Helsinki City Marathon

Anyway, no Helsinki City Marathon for me. That’s reality, although mentally I’m still thinking that maybe if I can do 20k this weekend, then I could at least think of doing 10k run 1k walk, but I don’t think so. I’m not in shape to run, and I don’t think it would make any good to my achilles tendon, but we will see about that.

Ottawa Marathon

It’s been almost three weeks now since the Ottawa marathon, and I still haven’t written a race recap. Time to start writing now…

Day before the race

Me, my wife and our four children left Aurora around 10:30am and headed to Ottawa. It was around four and half hour drive to The Health and Fitness Expo at Ottawa downtown. When we finally got near the expo around 3pm the traffic was really bad. I decided to run to the expo, so that my wife could then continue driving slowly along with the traffic and pick me up from the expo.

When I started to run, I also made a decision, that this one and half km run will be my final run before the race. I made little sprints to make it more credible even though I was running with jeans. I have to admit, I felt a bit better than day before. I wasn’t still feeling optimal, but not terribly bad either.

Finally I got to the expo with printed email I had received earlier in my hand. Turned out, that the email didn’t have my bib number, so I had to turn back from the desk, and find it from list of all participants in printed papers on the wall. No problem, I did find it fast, and there was not a lot queuing. Once I had my bib, I continued to validate my chip and pick my race T-shirt from 2nd floor. I was certain, that if I were fast, I still had time to buy some energy bars from the expo and then head to downstairs to wait for my drive.

ruoka

My plan worked well enough, so next step was to find the “hotel”. It was a bit further away. I had reserved two room apartment from local college dormitory, since all hotels were sold out when I decided to register to Ottawa Marathon. Once we finally found our hotel and were able to check the rooms, it was time for last real meal before the race.

I wanted to have some pasta, so I launched Yelp smart phone application and read few reviews for nearby Italian restaurants. We decided to go to Tony Capone’s which was 10 minute drive from the hotel. I’m not an expert with Italian food, but I wanted to have something with a lot of pasta in it. I ordered Cannelloni con Salsa and small glass of wine. Well, there was a lot of cheese, but not as much pasta as I hoped. Wine wasn’t very small either and made me wonder if a big glass of wine is such a good idea less than 12 hours before the race.  But I enjoyed the dinner.

I wasn’t still feeling 100% in shape and while checking next days weather, I noticed it’s going to get to 28C (82.4F) during the day, so I was already thinking, that sub four-hour finish time is certainly not going to happen. I mentioned this also to my wife and kids. I said that they should not get to the finish line much earlier than 11am, since I will not be there before anyway. Race was scheduled to start at 7am.

I decide to set my watch to get to the goal anyway. I did read some of the marathon mistakes people do, and one was to dump the goal just before the race. So I kept the goal as is, untouched. I set the distance for 43k and time to 3:57. That way, even if there is a lot of turns, and the running distance is longer than 42.2k, I’m still able to make my goal. Pace was set to 5:33min/km. Oops, I thought, that’s 7 seconds faster I have been training. Luckily I ran most of my marathon goal pace runs at 5:30min/km pace, so I was still quite well prepared.

There was a little grocery at the hotel, or college campus to be exact, so I went there and bought big jug of orange juice for a small high carb evening snack as well as sandwich for my breakfast. Then it was time to check I have everything ready for the race day and try to get some sleep.

The race day

greencoral

I had my alarm clock set to wake me up at 5:45am, so I had enough time to have something for breakfast and to drive to near the start line of the race. I had my sandwich I bought yesterday and small glass of orange juice. I wasn’t feeling bad at all, and I managed to get around four five hours of sleep, which was ok.

ennejuoksua

It was around 15 minutes drive to the downtown of Ottawa. I left car around 1km from the start line and walked rest of the trip. While walking, I had my pre-race energy bar, as I always do. I also drank just a little water.

yellowcoral

When I finally get to the start line around 6:45am I went to look for 4 hour race bunny. I went in front of her, and just behind the 3:55 race bunny. I was on the corral I had chosen while I registered to the race. I felt I’m in wrong corral. I have always overlooked people who go to faster corrals they belong. Now I was doing the same, I was thinking. I decided not to judge people ever again for setting their goals and actually trying to achieve them by choosing corral accordingly.

I started to go through my strategy. I didn’t see 3:55 race bunny while making my plan. I saw 3:50 race bunny. I decided to stay good distance away from her, and try to keep the 4:00 race bunny behind me. I also decided, that for the first half, I try to keep my average heart rate below 158bpm. That’s 80% of my max heart rate. If my heart rate goes above, then it is a good indication of running too fast. Sounds a bit like a plan, I was thinking.

I don’t usually listen to music during races, but this time I decided to give it a try. I checked my phone has everything set and that I could pause and start music just by pressing the only button on my ear phones. My phone was packed tightly in arm band. Music wise everything seemed to work. Just couple of minutes to the start. Phew!

Adrenaline starts to flow. That’s good, this is good, good, not nervous at all. Then start. Everything starts. First walking to the actual start line, and then I start to run with all the people around me. There’s a bit of a rush, and I’m not able to run my goal pace in the beginning. I have to bypass too many people, since they don’t know how to choose correct corral darned. I’m almost getting annoyed, but then I remember, that I’m probably in wrong corral my self. But then, at least I’m trying to run the correct pace for this particular corral. I’m trying to run at 5:30min/km pace.

When I cross the 5k and check my watch, I’m a little ahead of my goal time. It took about 26min to get there, and my heart rate is 158bpm. It doesn’t feel bad, so I decided to continue with the same pace, which was around 5:30min/km. The 3:50 race bunny was closer to me than she was at the start line.

Before the 10k lap time, I notice that there is something wrong with my music settings. First of all, this confession is going to ruin my highly valued street credibility. I had Killers album in my playlist. For whatever reason, that’s the album my phone choose to play first. It played whole album, and then it began again. I was pretty sure at the moment, that this is going to be the only album I’m going to hear during the whole race, since I don’t have time to take my phone off the arm band. Well ok, I decided to stick with that as long as I could tolerate it. Great, great music!

At 10k my heart rate is still a bit below 160bpm and I have actually been able to run a bit faster. Also now I’m running just behind the 3:50 race bunny. I’m feeling excellent. Maybe it’s the music. Maybe it’s the carb loading. I don’t know, but I’m flying. At 13k water stop, the 3:50 race bunny slows down for a drink, so I just decide to left her behind. I start to run faster. My heart rate is at 160bpm, but I’m feeling dangerously good. A little uphills don’t bother me at all, on the contrary. Whilst seeing people’s backs coming towards me, it gives me more self-confidence.

At 15k my pace is 5:21min/km and I feel just better and better all the time. I start to run even faster, so when I get to 21.1k, I’m very close to running my half marathon PB. I keep the 5:16min/km pace all the way up to 25k. I’m still feeling good, but it’s getting a bit warmer now. I have to stop listening music. The same album over and over again is making me sick. My heart rate is way above 160bpm, but at this point it doesn’t matter anymore. Last time I bonked around 26k, so I’m trying to keep the pace at least till 30k. That way I would most likely get to my goal and I would be celebrated sub 4 hour marathoner!

scotiabank-ottawa-marathon-tapio-vaattanen

At 27k I can see other runners running towards us. These are the faster ones. I see 3:00 race bunny.I wonder how long does it take for me to get to where he’s running now. How far do we run away before we turn back. Kilometers between 25k and 35k are usually the most boring ones. Maybe it’s not the route or the race, but the feeling and fatigue. This time is no different.

At 30k I’m still doing relatively well. My pace has fallen to 5:42min/km, and sun is playing her role extremely well. It’s definitely not 28C, but it’s getting all the time warmer. I’m starting to struggle. Even worse, 3:50 race bunny passes me. I’m trying to keep up, but at 33k she’s gone. I never see her again. At 35k I check my watch. It seem I’m going to make it. I’m going to get to my initial goal. My goal #1. Sub four hours. My goal #2 was to get to 4:15 and goal #3 to at least make new PB finishing in less than 4:25.

taaviottawa

Every meter is really painful at this point. Just to get 100m ahead is a struggle. My pace is still below 6:00min/km, or even 5:40min/km. I took a small empty bottle with arm band with me. I decide to fill it on next water station. I also decide to make a pit stop, although I could most likely survive without either one, but when I check my watch, I was six minutes a head of my goal. I could afford a little luxury without sacrificing anything. It seemed possible I was getting finish time below 3:55 which is so much better than I would have ever imagined.

40k and there is only 2k left. Well, two very long kilometers, but even if I drop my pace to 7min/km, I’m going to finnish in less than 4 hours. For the last kilometer I’m able to run just a little bit faster and my pace was a little less than 6min/km where as my heart rate went over 170bpm.

I crossed the finish line. My official finish time and my PB is now 3:54:50. After the race I of course first drank a lot of water and sports drink. There was a plenty of refreshments including bagels, bananas, protein powered chocolate milk as well as yogurt. I took everything what I was offered, and then started to locate my wife and kids.

I have run in Ottawa before during business trips, so I knew how scenic the route was going to be. The route was relatively flat with just some smaller hills. The weather was also perfect before the sun really came up and started burning, but that’s something I just have to be ok with. The weather was still so much better than I was expecting. It was almost optimal. Atmosphere was really great, and the spectators made their best to make runners feel welcome.

It was definitely the best marathon I’ve ever run, but of course, it must have something to do with the fact, that I was also able to reach my number one goal and finish sub four hours.

Next

I have already registered to Helsinki City Marathon which will be held at 15th of August. I’m thinking setting my goal to 3:45, but we will see about that. I have also started barefoot running. It would be really cool to run my next marathon with minimalistic shoes, but I don’t think I have enough time to do the transition.

High Carb or High Fat

This article by TrainingPeaks highlights my thoughts on the subject: “We don’t need to choose one OR the other. We can have BOTH and this will allow us to develop our fat metabolism as well as carbohydrate metabolism.”

That’s what I try to do. Improve my ability to burn fat, while my normal diet consist of 40%-50% of carbohydrates. Before long runs I tend not to eat anything. Also, anything less than 30k, I try not to use gels or any other extra energy during the run. This has worked very well for me on long runs, but I don’t know how it will affect my next marathon. I run my long runs on mornings. I do eat carbs the night before the run, but I don’t spend time on having breakfast before the run. This way I also feel extremely light during the run, and I haven’t really felt my energy levels being low. On the contrary.

Other than that, I think I eat carbs moderately in general. I wouldn’t say I follow high fat diet, but I try not to demonize fats or specifically choose low-fat products either. I don’t think fat is a big problem, or at least not as big as white wheat and sugar. I  also do believe, that the ones following low carb high fat diet have a lot of good points.

My favourite article about this high-fat diet and endurance training is this article by Sami Inkinen: “Becoming a Bonk Proof Triathlete: Fat Chance!?

Finnish rye bread with salmon
Finnish rye bread with smoked salmon

I’m now trying to get all possible carbs I can get. I started carb loading yesterday. Now  I have three days to do the loading before the race. I find that much more difficult than I thought it would be. Getting more than 400g carbs a day seems to really require  some what concentration. I find it a bit weird, since I always though I eat a lot of carbs. I eat porridge for breakfast, and a lot of rye bread. Bananas after workouts, and with porridge and/or greek yogurt I have oranges, apples, blueberries or strawberries, for instance. I consider all of these as healthy carbs.

I haven’t really done any carb loading previously, if the pasta dinner prior the race day  isn’t counted. Carb loading is definitely something I need to concentrate more, if that’s something I see I could benefit from.

So far I’ve done my trainings and races following traditional approach what comes to carbs. Well depending on how you define the term traditional. If we go back to stone age, maybe carb loading wasn’t that popular.

Who knows, maybe I try a bit longer period on low carb high fat diet before my next marathon, but let’s first try to get through the one this week with high carb diet.

Check  also the TrainingPeaks article: “Food Fight: High Carb or High Fat Diet For Endurance Athletes