December 9, 2007

Interesting how cycles go in this business.

Back in the beginning when computers were hugely expensive and people relatively cheap, we had big centralized mainframes so we could share the high cost computer.

As computers got comparatively cheaper we stopped sharing them and distributed client/server computing became the norm.

Now computers are so cheap that people are comparatively expensive and we have these giant Google data centers so that a few people can be shared around managing all the computers.

What’s next? When computers become so automated that they don’t require anyone at all to manage them, they will be distributed out again as appliances.


Servers in Siberia

December 9, 2007

Microsoft has apparently started plans for a bug data center in Siberia. Along with several other data centers recently completed and the giant Northlake, Illinois center now under construction, Microsoft is scrambling to keep up with Google data center build up. The Microsoft build is to support the Microsoft Live product line.

The particular attraction of Siberia, along with low prices likely, is literally cold air. Cooling is very significant cost in these data centers and cold winter air makes for much cheaper cooling than A/C. Low average temps were also a big draw for the Northlake data center, reportedly to be the world’s largest data center when it is completed.

If the big requirements for a data center are cold air, abundant electric power and good internet connectivity, you’d think parts of Canada would be a on that list. So far I don’t know of any though.

To get an idea of the cost savings with this data center model, the Northlake center will have well over 10,000 servers but employ only about 35 to 50 people.

The Northlake Data Center

Oracle 11g Partitioning

December 2, 2007

An example of  how the new  Parent/Child partitioning  works in Oracle 11g

Imagine a standard master/detail set of tables for orders.

  • An ORDER table with columns “order no | date | customer no | some more fields”
  • An ORDER_DETAIL table with columns “order no | some detail fields”

 ORDER -> ORDER_DETAIL would be one -> many, linked on “order no”

If you want to report on orders daily weekly or monthly you might partition by date. But the ORDER_DETAIL table has no date, so how can you partition it to match the ORDER table? Traditionally you had to add a redundant date field and keep it in sync with the date in the master record in ORDER.

Oracle 11g allows you declare the master/detail relationship and the database will automatically partition ORDER_DETAIL table based on the partitions in ORDER. All of the ORDER_DETAIL child records will be split off into separate partitions matching the layout of the parent record partitions in ORDER. The database maintains this automatically as the partition maintenance is done on the parent table.