The day started with a keynote speach by Jerry Keesee. I believe the key to the presentation is that the Informix is taking the next step to insure continuing growth of the Informix product. There are some exciting things happening on that front.
The first session I attended was "Data Modeling" given by Jack Parker. There were a lot of interesting examples how a data model greatly impact your production system. I have to agree with Jack that the greatest performance gain in with the data model, not tunig the database after the fact. This is why database experts should be involved at the beginining of a project. They can then also take advantage of database extensibility; something I could talk about for a long time...
There were five sessions going at once for a total of 30 sessions for Monday. There were a lot of good sessions on subjects including database administration, application development, programming, security and more. there wer demos of all sort and great conversations to be had. Someone told me that one of the benefits of this conference is that they can solve in minutes problems that have benn bugging them for weeks.
Of course the evening event was also worth attending with a bunch of engineers coming from the lab just to talk to everyone. All in all a fantastic day!
Sunday was the beginning of the conference. Even though there were tutorials during the day. The real beginning was the welcome reception. The exhibitors booths were ready and the attendees were cheerful. IT was a great networking opportunity with good food and plenty to drink.
I have to admit I missed a lot during the reception because I was in multiple intense discussions.
All in all, a great start to the conference.
I did forget to mention the key note presentations of the evening of Monday. Rob Thomas gave us his view of the Informix business and a glimpse at his plan for continuing successes. It was followed by a presentation by dr. Arvind Krishna, general manager of IBM Information Management. Great information!
Tuesday, sessions started at 8:00 AM. I was the moderator for the session on disk level encryption. It was about a flexible product that can protect your database data at rest. It works for file-based dbspaces (cooked files) or raw devices. All that, transparently to Informix. Mark Jamison did a great job at presenting the product in a clear and concise manner.
Theere were many sessions on application development in cluding sessions on Groovy, Perl, Python, PHP. Of course, there were also more sessions on duifferent aspects of tuning and also presentation on embeddability, replication , warehouse and so on.
With the sessions starting at 8:000 AM, we had a total of 35 sessions for the day.
This was followed by a casino night. What a full day!
The day started with a Q&A with IBM excutives: Alys Passarelli, Inhi Cho Suh and Rob Thomas. There were a number of good questions and it was an opportunity for the excutives to state their commitment to Informix and describe many of the efforts in progress.
Once again, a good mix of sessions on subjects from customer case studies, database administration, security, best practices, and use of tools such as Eclipse.
The day ended at 4:30 after the delivery of 25 sessions.
This was a great conference with lots of good information and fantatic networking.
I ran into a simple problem the other day: I got an error while creating an index because the key was too big to fit in my index. As you may remember, the maximum size of an index key on a standard Unix/Linux system is 387 bytes.
Why do we have this limit?
This is a function of the page size and the way a B-tree index works. With the limit of 387 bytes on a 2K page, we can have at least 5 keys per page. This way, we divide the data in at least 5 parts at each level. the end result is eliminating comparisons to get to our our result faster. If we had only one key per page, it would be the equivalent of doing a sequential scan so the index would be useless.
In IDS version 10.0 (2005), Informix introduced the configurable page size. from that point on, it is possible to create DBspaces with page sizes of up to 16KB in size. the page sizes available has to be a multiple of the basic page size: 2KB or 4KB.
These larger pages can provide better performance when you have a wide table where the row size could be, let say 12KB. This way, you can fit an entire row in a page instead of using page chaining to support these larger rows. The savings in I/O could make a noticeable difference in performance in many situations.
Coming back to my indexing problem, I can fix it by using a larger page size. According to the documentation, the maximum index key size is as follow for each page sizes:
max key size
If your key fits in a 2KB page (shorter than 387 bytes), you could still use a larger page size for your index. The difference is that more keys would fit in one page so the index will not be as deep so it could provide additional performance.
Why not simply use the 16KB page size everywhere?
The short answer is that you could waste space on the page used for a table. A page can include a maximum of 255 rows. If your page size is 16KB and your row contains only two integers (2 x 4 bytes), you could, in theory, have over 2000 rows in that page. Since we are limited to 255 rows, we are wasting over 14,000 bytes.
Why not use four or five different page sizes?
Each page size requires its own buffer pool. We have to decide how much memory to allocate for each of these pools. Our decision may not result in the optimal memory allocation. The result is that some pools will have too much memory and others would benefit from more. Bottom line, this would make system administration more complex.
I would suggest to limit ourselves to two page sizes. The default page size and another one. The second page size depends on the environment requirements. I would also look at the size of the I/O on the particular machine and how many requests do multiple I/O on sequential data.
If you haven't looked at the configurable page size in IDS, maybe it is a good time to do so now.
I recently received a note about the IOD conference, October 25-29, at the Mandalay Bay in Las Vegas. If you register by August 31, you can get the early bird hotel rate!
Please go to the Conference Site to learn more about the IOD conference and register. Here are the top reasons provided to attend:
- Turn your information into a strategic driver of innovation, business optimization and competitive differentiation
- Learn how to transform data into a trusted strategic asset using an information agenda
- Improve business performance by applying data analytics and optimization techniques, e.g. save $423 million and realize 95% improvement in on-time delivery
- Accelerate information intensive projects for immediate ROI, e.g., increasing daily deliveries by 100% and spotting new trends in seconds - not weeks
- Optimize your existing information infrastructure to achieve higher availability and improved ROI
- Add value to your organization by building your skills and knowledge
You can find Informix-specific information on the conference at Informix at Information On Demand
. Here are the top 5 reasons on the Informix side:
- The best in IBM technical training
- Hands-on-labs provide in-depth training
- Immediate return on investment
- First-hand experiences shared by customer speakers
- Everything your company needs in one location
I was talking to an Informix partner last week. They are upgrading to IDS 11.50.
A partner going to IDS 11.50...What's the big deal? I think it is when the partner is looking at upgrading from Informix SE versions as far back as version 2! And we thought we had problems convincing customers to upgrade from IDS 7.x :-).
Their customers are happy with what they have. It took a long time to convince them that they should move to a more current version of Informix. The customers were just happy with their current systems. Talk about reliability!
Going to IDS 11.50, they are now looking at new approaches to providing reliability in a distributed environment. With shared disk secondaries (SDS), high-availability data replication (HDR), remote secondary servers (RSS), and enterprise replication (ER), they have all the flexibility they need to provide the right solution for their customers availability requirements.
Informix reliability is often taken for granted by Informix customers. Now if the people that are not using Informix could realize the benefit they could get out of IDS 11.50, we could have a database revolution on our hands: set it, forget it, and focus on running the business, not the database system.
First, let me put an end to the rumor that the IIUG conference was moved to San Diego to accommodate me.
It is true, I live in that area. It is also true that I am presenting my fair share of material but I can assure you that not even one passing thought on my location was part of the decision
This being said, the conference is approaching quickly. One more week in March and then a few weeks in April and we're there.
As usual the conference organizers are trying to outdo themselves year after year. This year is no exception. What happened since last year?
For one, Informix 11.70.xC3 was just out then. Since we've seen xC4 come out. Can we hope for xC5 soon?
On my side, I am giving four sessions on various subject:
- Dummies guide to TimeSeries
You want to get started with TimeSeries, come to this session.
- Informix applications uncovered on iOS
Yes, you can teach an old dog new tricks. At least this old dog is trying to prove it.
- PHP and Informix
Web applications have established themselves as mainstream. If you don't know PHP and the web, come see me.
- Update on Infomrix and open-source
Some progress there, come to this session and let's have a discussion.
I think these are interesting subjects. You should look for a lot more interesting sessions at the conference.
Take a look at the list of sessions and hands-on labs at: http://www.iiug.org/conf/2012/iiug/sessions.php
See you there!
The day started with a keynote presentation by Dr. Anant Jhingran on "Cloud computing, databases and the role of IDS". He was assisted by our own Guy Bowerman. That was quite a good start to another great day of learning and networking.
There were 35 sessions covering subjects including Gillani Fourgen case tool, Genero report writer, IDS tasks and sensors, performance tuning, backups, trouble shooting, encryption expert, and index enhancements. Quite a range of subjects and that's not the half of it!
I had interesting conversations with some partners. One of them mentioned how the AGS Server Studio product transformed someone that knew nothing of databases into a database administrator in no time flat. Looks like the ease of use of IDS with the ease of use of AGS is an unbeatable combination. I also had a discussion about collecting and sharing the information about sensors worldwide to monitor the health of the planet. Talk about a stimulating conversation.
There is one more day of this! I don't know how much more I can take :-).
This was the last day of the conference with a 35 sessions. I was surprised to see how many people attended the presentations until the end. I see this as a big endorsement of the value provided by these presentations.
On my part I delivered one presentation first thing in the morning and another one starting at 2:10 pm. Despite that, my session was well attended.
Overall a very successful conference that was well worth attending.
I remember seeing something like this title in some Informix marketing material many years ago. I think it was related to the fact that IDS has extensibility features that allow developers to adapt IDS to their business requirements as the technology and needs evolve.
The "future built-in" idea came back to me as I was reading a computerworld article titled: "the desktop traffic jam" (see: http://www.computerworld.com/s/article/342870/The_Desktop_Traffic_Jam). In there they were talking about a new feature in Windows 7 (User Mode Scheduling) that lets thread multiplexing take place in the application instead of in the kernel. They go on to say: "Handling this multiplexing in the application instead of in the operating system kernel makes thread scheduling more efficient.
I know it's not quite the same but it is similar to the idea that IDS decides its thread scheduling, making it more efficient since it is will not re-schedule a thread that is in a critical section of code. This way it avoids having threads that get scheduled to find out that they have to wait. All that making the threading model more efficient. I wonder how difficult it would be to take advantage of thread multiplexing onto cores. Could it be as simple as having one CPU VP per core wih some "core affinity" of the operating system supports that? Then IDS would already be there... with the future built into it.
You may not know but the Informix lab is extending a helping hand to universities around the world. One example of that was the hosting of university professors at the last Informix conference.
As part of this, I am on my way to the university of Strasbourg (France) to teach a 3-day seminar on subjects related to IDS. I had all the latitude I wanted (and more) to decide on the content. I will be delivering this seminar starting next Monday (June 8). We'll see how it is received. Watch for my blog entries after each day, network access permitting.
I've been silent for quite a while. That does not mean I have not been busy!
A lot of efforts has been put on TimeSeries over 11.70.xC3 and 11.70.xC4 and we are still going full steam ahead. We continue to improve its performance, scalability, usability and functionality.
I wanted to put together a repository of information so people can find it all (or most of it in one place. For this purpose, I put together a wiki on developerWorks that is dedicated to The smart meter support. It is still a work in progress but I believe it is a good start. you can find it using the tinyurl: tinyurl.com/InformixSmartMeterCentral
Let me know what you think.
I was doing a search for some information on the web when I hit the following page:
This is the Informix Solution Portal. It includes links to:Informix business partner directoryInformix solution directoryInformix consultant servicesInformix OEM distributers
It also includes information on the IDS business partner program and a link with information on how to join the solution portal.
Take a look. If you are partner and you're not in there, you may want to take steps to get listed. If you're a customer, you may find something to make your life easier.
Here's something you may want to act on:
IBM Informix Survey for Continuous Availability White Paper
Complete the Survey to win an Apple iPad! - 1 week left
Every response matters. - Start Survey here!
IBM Informix is the database software voted #1 in customer satisfaction. Clients choose Informix because it is reliable, low cost, and hassle free. Solution providers choose Informix for its best-of-breed embeddability.
Yet, there are some people that still don't 'get' Informix, or realize the many benefits of deploying it. Help us gather data to support this claim.
- Informix is exceptionally hardware efficient, which means that (in the REAL world) you need to spend MUCH less on hardware to get the same performance as other products.
- Informix is exceptionally reliable, which means that (in the REAL world) you don't need to pay lots of people to make sure it stays 'up'.
- Informix is exceptionally scalable, which means that (in the REAL world) it can be idling one moment and then processing thousands of transactions the next with no apparent stress.
Advanced DataTools is working with Oninit, to gather data about what happens in the REAL world to support these assertions with empirical evidence in the REAL world.
The data collected will be used to compile a report that will be made available to every CTO, IT Director and IT Manager. Along with this, they will receive a list of all the major application vendors that are now porting their applications to Informix V11.5 and a document outlining the key reasons to choose Informix.
Every response matters. - Start Survey here!
Win an Apple iPad. One randomly selected participant in the data collection phase of this research will win an Apple iPad, provided by Advanced DataTools Corporation, an Advanced IBM Informix Business Partner.
Note: Public Sector Employees are not eligible
In case you missed the announcement this week, IBM announced the availability of the Informix warehouse as of March 5, 2009. Here is a quote from the announcement this morning:
From Kevin Brown, lead architect for IBM and Jim Kobielus from Forrester Research:
"This can save weeks of effort into just a few hours," Brown said. "In addition, customers often did without information because of the cost of effort to get the information. The lost opportunity cost savings is harder to quantify, but can be significant once they use their warehouse platform for smarter decision-making."
Take a look at the press release at: http://www-03.ibm.com/press/us/en/pressrelease/26840.wss
See also the Informix Warehouse page on the ibm site:
Last week, on October 22, IBM announced a new version of InfoSphere Streams: version 3.2.
This follows version 3.1 that was announced on May 21.
The new version includes some nice improvements such as remote development, Rest API for data access, and improved toolkits.
Over the next few blog entries, I'll go into more details on these features. In the meantime, you can find information on
InfoSphere Streams 3.2 at:
If you are interested in trying Streams, IBM provides the quick start edition that you can download as native product or
as a VMWare image. you can download it at:
Of course, you may need more information on how to use Streams. You can start by browsing through the InfoSphere Strreams Playbook at:
If you have questions, don't hesitate to drop me a note or comment on my blog entries.
Until next time!
We are seeing more and more interest in using both InfoSphere Streams and Informix together.
This is in the context of "Big Data".
InfoSphere Streams is a platform that allows you to add operators as you see fit.
In our case, there are already a few operators that can be used to read from or write to Informix from InfoSphere Streams.
There is a new DeveloperWorks article that describe how this could be done. With these basic examples you should be
able to integrate Informix in a Streams environment (or vice versa) in no time.
I was talking earlier about encapsulation and the collection of objects that can be found in another object. Let's look at another possibility:
A corporation has multiple regions, a region has multiple branches, a branch has multiple customers. To summarize:
Let's say that the customers are loans taken by different types of companies. To find out the average amount of the loans given out by each branch, the strict approach would be that each branch has a method (function) that does the following:customer_count = 0
total_loans = 0
for each customer
customer_count = customer_count + 1
total_loans = total_loans + customer.getLoanAmount()
end // for each customer
return(total_loans / customer_count)
We protect the encapsulation of customers by providing a method that returns the loan amount (getLoanAmount). The first problem we have relates to performance: All the customer objects for a branch need to be instantiated (created). That may require quite a bit of memory. The second performance problem is that each customer object instantiation requires one database call.
What about if we want to do this average at the region level instead of the branch level? Then, to preserve the encapsulation, we need to created additional methods to return totals and counts. I'll let you imagine the processing needed. On the performance side, we see that the number of objects instantiated and the number of database calls increase with the number of branches and customer objects processed.
If you can convince the architects and programmers to relax their encapsulation requirements, you could add one method at the branch level, one at the region level, and even possibly one at the corporation level to return the desired average. Considering the average for a region, the method would implement the one SQL statement looking like:SELECT AVG(loan) FROM customers
WHERE region_id = :region_num
GROUP BY region_id;
In this case, I don't instantiate all the customer (and branch) objects, saving processing and memory. It is pretty obvious that the performance of these requests will be greatly improved compared to the "strict" OO approach.
Having a method that uses the database to do the processing is one thing. What about more complex processing like the average risk taken by a branch on their loans?
IDS provides the ability to implement user-defined aggregates. It would be easy to implement the average risk function. The number of lines of code would be less than implementing it in the application and the performance would be better even if it was only because of the significant reduction in the volume of data transferred.
I hope that in the last few blog entries I gave you some things to think about to improve the overall performance of your systems. The bottom line is: get involved in the analysis and design phases of new projects. You can add a lot of value there.
Another year, another conference. It has been so busy that I have not had the time to write a short blog entry for each day. Here is my quick update.< /p>
It all started Saturday morning with the business partner council and the customer advisory council on Saturday. I attended the customer advisory council and I found it interesting and full of good discussions.
The conference was kicked off with an opening reception on Sunday night and we were off to the race. There were eight Informix sessions on Monday including presentations on how IBM helps Cisco, open source, hands on lab on high-availability, another one on the new features of Informix 11.70, bests practices for virtual environments, and performance enhancements. Of course, the most popular session was from Jerry Keesee titled: "Informix at IBM: The next decade".
The day ended with an Informix reception at the Mandalay Bay beach casino for an Informix 11.70 launch celebration and to start looking forward to the next decade of Informix at IBM.
Tuesday started early with an Informix "eat and meet" breakfast at 7:00am, followed by nine Informix sessions throughout the day. The sessions covered areas such as upgrade, new features, Informix warehouse, application development, 4GL, embeddability, flexible grid, and more. It was also interesting to hear about how Informix is used to run a steel plant.
The day ended with a beach party reception. Now it is on the Wednesday with another full agenda.