This site hosting thing really is the gift that keeps giving.
I wrote a little over a week ago about an outstanding issue with the website, which seemed to be related to people’s company proxy servers, rather than my web server. While I was staying at the Sofitel, I started to get the issue where the HTTP address for my website was giving me the following error.
You don’t have permission to access / on this server.
By the time I was in a position to look at it, I had already moved to the Hilton, which did not exhibit the same problem. After Googling around and discounting the obvious stuff, like missing pages, bad configuration and file/directory permission issues, I came across a reference to some proxy servers (including Squid) producing the same error because they use HTTP 1.0 rather than HTTP 1.1. A suggestion to solve this was to set the following in the “/etc/httpd/conf/httpd.conf” file.
If a HTTP 1.0 request is sent to Apache, this setting will make sure a HTTP 1.0 response is sent back. Any HTTP 1.1 requests are dealt with in the normal fashion. It sounded like it was worth a try, but I had no way to test the impact. That is until Eric Grancher contacted me to say his hotel had the same issue. I added the setting and asked him to check again. Problem solved…
So I think/hope that issue is solved now…
Another early start on Wednesday. I headed down to meet the Dbvisit gang for breakfast. FYI: I’m not paid to keep mentioning them and I don’t work for them. They are just a great group of people who I really like, so when I get a chance to meet up with them I do.
From there it was on to Moscone where I bumped into Eric Yen. We’ve known each other for years on the interwebs, so it was nice to spend some face-to-face time. I also bumped into Daniel De Meda again. We chatted for a while the previous day, so when we met today we did a selfie. From there it was off to the demo grounds again, then I met up with Sve Gyurov for lunch.
If you’ve ever met Sve, you will realise that I am on tiptoes and he is crouching when we took this shot, otherwise this would be a picture of my head and his chest.
After lunch I had a major attack of lethargy, so I headed back to the hotel for a rest, which I’ve just surfaced from at 20:00. I’m going to duck out of the evening events as well…
So this really marks the end of OpenWorld for me, because I leave tomorrow morning. It’s been a really strange one for me this year. I enjoyed the ACE Director Briefing and felt like I was coping really well, then I kind-of crashed once OOW actually started. What with being ill for the 3 weeks prior to the event, then having to deal with the jet lag, I really had no reserves to fall back on this year. I feel a bit disappointed with myself as it feels like a wasted opportunity, but you can only do so much…
I’ll write a wrap-up post about the whole event when I get back.
Tuesday started early with 5 hours in the hotel lobby. The plan was to catch up on my blogging using the free wifi. I hadn’t blogged for a couple of days, which prompted an email from my mom to see if I was OK.
It took about 5 hours to complete two blog posts, because every 30 seconds someone new walked by and I was “forced” to speak to them.
That done, I headed down to Moscone South to check out the Dbvisit stand. I mentioned a few weeks ago that I had never tried a Twinkie, so Chris Lawless went to work correcting that state of affairs by bringing a box of Twinkies to their stand. You can see me trying my first Twinkie here!
I didn’t record me eating my second Twinkie.
From there is was a visit to the demo grounds again, then up to the OTN lounge to chat with a few people about the ACE Program, life the universe and everything. After a quick lunch with Vikki from the ACE Program, I hooked up with Steven Feuerstein to chat about his YesSQL initiative. Soon after that it was across to the ODTUG gathering briefly, before heading off to the SQL and PL/SQL Performance Panel, which featured Jagan Athreya, Dad (Graham Wood), Tom Kyte and Steven Feuerstein.
After popping back to the hotel to dump my bag, it was back down to Howard Street to the attend the evening festivities. I spent most of the evening with Doug Burns and one of his colleagues called Seamus. I even had a drink. Who’da think it?
Tiredness is still a big problem for me. The day is starting so early that I feel like the living dead most of the day.
In a comment on my previous post on shrinking tablespaces Jason Bucata and Karsten Spang both reported problems with small objects that didn’t move to the start of the tablespace. This behaviour is inevitable with dictionary managed tablespaces (regardless of the size of the object), but I don’t think it’s likely to happen with locally managed tablespaces if they’ve been defined with uniform extent sizes. Jason’s comment made me realise, though, that I’d overlooked a feature of system allocated tablespaces that made it much harder to move objects towards the start of file. I’ve created a little demo to illustrate the point.
I created a new tablespace as locally managed, ASSM, and auto-allocate, then created a few tables or various sizes. The following minimal SQL query reports the resulting extents in block_id order, adding in a “boundary_1m” column which subtracts 128 blocks (1MB) from the block_id, then divides by 128 and truncates to show which “User Megabyte” in the file the extent starts in. (Older versions of Oracle typically have an 8 block space management header, recent versions expanded this from 64KB to 1MB – possibly as a little performance aid to Exadata).
select segment_name, block_id, blocks , trunc((block_id - 128)/128) boundary_1M from dba_extents where owner = 'TEST_USER' order by block_id ; SEGMENT_NAME BLOCK_ID BLOCKS BOUNDARY_1M ------------------------ ---------- ---------- ----------- T1 128 1024 0 T1 1152 1024 8 T2 2176 1024 16 T2 3200 1024 24 T3 4224 8 32 T4 4232 8 32 T5 4352 128 33
As you can see t3 and t4 are small tables – 1 extent of 64KB each – and t5, which I created after t4, starts on the next 1MB boundary. This is a feature of auto-allocate: not only are extents (nearly) fixed to a small number of possible extent sizes, the larger extents are restricted to starting on 1MB boundaries and the 64KB extents are used preferentially to fill in odd-sized” holes. To show the impact of this I’m going to drop table t1 (at the start of file) to make some space.
SEGMENT_NAME BLOCK_ID BLOCKS BOUNDARY_1M ------------------------ ---------- ---------- ----------- T2 2176 1024 16 T2 3200 1024 24 T3 4224 8 32 T4 4232 8 32 T5 4352 128 33
Now I’ll move table t3 – hoping that it will move to the start of file and use up some of the space left by t1. However there’s a 1MB area (at boundary 32) which is partially used, so t3 moves into that space rather than creating a new “partly used” megabyte.
SEGMENT_NAME BLOCK_ID BLOCKS BOUNDARY_1M ------------------------ ---------- ---------- ----------- T2 2176 1024 16 T2 3200 1024 24 T4 4232 8 32 T3 4240 8 32 T5 4352 128 33
It’s a little messy trying to clear up the tiny fragments and make them do what you want. In this case you could, for example, create a dummy table with storage(initial 64K next 64K minextents 14) to use up all the space in the partly used megabyte, then move t3 – which should go to the start of file – then move table t4 – which should go into the first partly-used MB (i.e. start of file) rather than taking up the hole left by t3.
Even for a trivial example it’s messy – imagine how difficult it can get to cycle through building and dropping suitable dummy tables and move objects in the right order when you’ve got objects with several small extents scattered through the file, and objects with a mixture of small extents and large extents.
Thanks to anyone that came along to my sessions at OpenWorld.
You can review the slides via the links below:
Monday started with the San Francisco bay swim. I was actually pretty scared about doing this. I like to swim, but I’m a child of the “Jaws” generation, so open water is not my thing! Added to that, the water is cold. The coldest my training pool ever gets is 25 degrees C, which feels quite cold. The water in the bay is unseasonably warm at 19 degrees C. For anyone that doesn’t know, that means it is damn cold!
Some brave souls ran and dived in. Rather than risk a heart attack, I walked in. After the initial shock I figured I better actually swim or die. Once I got moving, it was a lot better. Having never done any open water swimming, I found it quite difficult to keep my face down in the water. On the few occasions I did, I thought I saw dark shapes in the water with me and started to panic! I didn’t swim too far. It was only a couple of hundred metres, but by that time nearly everyone else had got out. It was more of a “bay dip” than “bay swim”.
From there is was back to the hotel to get cleaned up. I then headed down to the conference to hit the demo grounds. Being part of the ACE Director briefing means we’ve heard most of the important announcements already, so it can sometimes be hard to find sessions to watch. The demo grounds are a different thing entirely. There is always something interesting that can be gleaned from the staff manning the demo booths.
From there is was on to a hands-on session on the new JSON features of 22.214.171.124 with Mark Drake and some of the development team. The hands-on labs are a very quick way to get a feel for the subject. I think the JSON support will probably be the next article I write. Hopefully, I’m also on to the beta program for the REST API support for this JSON stuff too. Fingers crossed.
I kind-of ducked out of all evening commitments and spent the evening in my room. There was lots of cool things to do,
Sunday started with the walk across the Golden Gate Bridge. It was meant to be a run, but a few of us lazy folk met up early and walked it instead. I did run about 5 paces, so I don’t feel quite so guilty about having a “I ran the bridge” type T-shirt.
After getting back and getting changed I headed down to the Moscone. I was involved in the “12 things about 12c” sessions by UKOUG. This was a double session with 12 speakers, each with 5 minutes. My section was 5 minutes on “A case for the Multitenant option with a single PDB”. I was pretty nervous on the lead up to this, which sounds a little silly for a 5 minute presentation, but shorter presentations require you to be a lot more focussed on the message. One extra anecdote and you’ve blown your time limit. I think it went OK.
I like this type of format. I think every conference needs something like this at the start of the event, so you get a quick feel for what is going on in the subject. It can also act as a pointer to help you decide what sessions you want to focus on during the event.
In the evening it was the Oracle ACE dinner. If someone asked me to define a perfect night out for me, it would probably include Oracle geeks, food, contortion and a silks performer. I love speaking about Oracle. I live eating food. I love circus acts, especially contortion. When they organised the ACE dinner I think they must have read my mind!