tag:blogger.com,1999:blog-33921970787898909032024-03-13T03:32:02.100-04:00Informix - My viewA place to share my views and ideas which may be of interest to the Informix user Community.art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.comBlogger42125tag:blogger.com,1999:blog-3392197078789890903.post-16939124628114921012023-12-05T16:51:00.004-05:002023-12-05T16:59:03.438-05:00<p><span style="background-color: black; color: white;"><b> <span style="font-family: arial;">My f<span face="Roboto, "Helvetica Neue", sans-serif, "Noto Color Emoji", "apple color emoji", "windows emoji", "windows symbol"" style="letter-spacing: 0.2px; white-space-collapse: preserve;">riends,</span></span></b></span></p><span face="Roboto, "Helvetica Neue", sans-serif, "Noto Color Emoji", "apple color emoji", "windows emoji", "windows symbol"" style="background-color: black; color: white; font-family: arial; letter-spacing: 0.2px; white-space-collapse: preserve;"><b>I wrote a letter for the Action Network letter campaign: </b></span><div><span face="Roboto, "Helvetica Neue", sans-serif, "Noto Color Emoji", "apple color emoji", "windows emoji", "windows symbol"" style="background-color: black; color: white; font-family: arial; letter-spacing: 0.2px; white-space-collapse: preserve;"><b><br /></b></span></div><div><span face="Roboto, "Helvetica Neue", sans-serif, "Noto Color Emoji", "apple color emoji", "windows emoji", "windows symbol"" style="background-color: black; color: white; font-family: arial; letter-spacing: 0.2px; white-space-collapse: preserve;"><b>Netflix: Removfe the Antisemitic Blood Libel Film "Farha"</b></span></div><div><span face="Roboto, "Helvetica Neue", sans-serif, "Noto Color Emoji", "apple color emoji", "windows emoji", "windows symbol"" style="background-color: black; color: white; font-family: arial; letter-spacing: 0.2px; white-space-collapse: preserve;"><b><br /></b></span></div><div><span style="background-color: black; color: white; font-family: arial;"><b><span face="Roboto, "Helvetica Neue", sans-serif, "Noto Color Emoji", "apple color emoji", "windows emoji", "windows symbol"" style="letter-spacing: 0.2px; white-space-collapse: preserve;">That reads as follows:</span><br style="box-sizing: border-box; letter-spacing: 0.2px; white-space-collapse: preserve;" /><br style="box-sizing: border-box; letter-spacing: 0.2px; white-space-collapse: preserve;" /><span face="Roboto, "Helvetica Neue", sans-serif, "Noto Color Emoji", "apple color emoji", "windows emoji", "windows symbol"" style="letter-spacing: 0.2px; white-space-collapse: preserve;">The Jordanian film Farha, by director Darin J. Sallam, in which IDF soldiers are seen murdering a Palestinian family during the War of Independence, will be released on Netflix in December. The film takes place in 1948 in Mandatory Palestine and is about a 14-year-old Palestinian girl whose father locks her in a warehouse because of IDF attacks in the village. The production claims to be "inspired by true events", however this is a lie. The design of the character of Farha as a girl whose whole future is ahead of her, and who finds strength hiding from the cruel enemy, echoes the story of Anne Frank. If Farha's equivalent is Anne Frank, then according to the film, IDF soldiers are equivalent to Nazis. And if there is someone for whom this parallel is not clear enough, Salam inserts in the middle of the film the scene in question in which Israeli soldiers capture a family of fleeing Palestinian refugees, abusing them in her friends and in the end they are executed. A father, a mother who has just given birth, and two daughters - all are murdered in cold blood by the soldiers on the orders of their sadistic commander, a few moments after he threatens to open the mother's stomach to check if there is a fetus inside and what its gender is. The baby himself is left to die, after one of the soldiers receives an order to end his life, but "without wasting a bullet". The helpless Farha listens to the cries of the baby who is left lying on the ground in the hot sun. Heartbreaking crying, which lasted about a minute. Then silence. Confirmation of death. So what is so different about "Farha"? The film presents the IDF soldiers as bloodthirsty monsters who amuse themselves with the death of helpless innocents. In Salem's film the Israelis kill Just. For no reason. They're doing it for fun. Such events never occurred. The film is a total lie. It is a dangerous blood libel and incitement against the IDF that will lead to more antisemitism. Netflix MUST NOT distribute this dangerous inciteful blood libel. Send a letter to Netflix management demanding to remove the film. </span></b></span></div><div><span face="Roboto, "Helvetica Neue", sans-serif, "Noto Color Emoji", "apple color emoji", "windows emoji", "windows symbol"" style="background-color: black; color: white; font-family: arial; letter-spacing: 0.2px; white-space-collapse: preserve;"><b><br /></b></span></div><div><span style="background-color: black; color: white; font-family: arial;"><b><span face="Roboto, "Helvetica Neue", sans-serif, "Noto Color Emoji", "apple color emoji", "windows emoji", "windows symbol"" style="letter-spacing: 0.2px; white-space-collapse: preserve;">It's easy and takes just 30 seconds. Whether you support Israel or not, no one should support outright lies and innuendo masquerading as a documentary! </span><span style="letter-spacing: 0.2px;"><br style="box-sizing: border-box; letter-spacing: 0.2px; white-space-collapse: preserve;" /><br style="box-sizing: border-box; letter-spacing: 0.2px; white-space-collapse: preserve;" /></span><span face="Roboto, "Helvetica Neue", sans-serif, "Noto Color Emoji", "apple color emoji", "windows emoji", "windows symbol"" style="letter-spacing: 0.2px; white-space-collapse: preserve;">Can you join me and write a letter? Click here: </span><a class="msg-focus-element" href="https://actionnetwork.org/letters/netflix-removfe-the-antisemitic-blood-libel-film-farha?source=email&" rel="nofollow" style="box-sizing: border-box; letter-spacing: 0.2px; white-space-collapse: preserve;" tabindex="0" target="_blank">https://actionnetwork.org/letters/netflix-removfe-the-antisemitic-blood-libel-film-farha?source=email&</a><span style="letter-spacing: 0.2px;"><br style="box-sizing: border-box; letter-spacing: 0.2px; white-space-collapse: preserve;" /><br style="box-sizing: border-box; letter-spacing: 0.2px; white-space-collapse: preserve;" /></span><span face="Roboto, "Helvetica Neue", sans-serif, "Noto Color Emoji", "apple color emoji", "windows emoji", "windows symbol"" style="letter-spacing: 0.2px; white-space-collapse: preserve;">Thanks!</span></b></span></div>art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com0tag:blogger.com,1999:blog-3392197078789890903.post-44894444130094727112021-06-21T16:45:00.002-04:002021-06-21T16:45:37.830-04:00Informix delivers!<p>This will be a quicky.</p><p>There are two things that I have been asking for in Informix for a while. One is what I consider a bug fix, bout could be considered a feature. The other is a failure to complete a feature that was never released officially and finally release and document it. Both are now in the lastest release of Informix, v14.10.FC6!</p><h4 style="text-align: left;">A real ROWID for partitioned tables</h4><p style="text-align: left;">When table partitioning (aka fragmenting) was introduced partitioned tables did not supply access to the pseudo-column ROWID that has always been a part of Informix (and most other RDBMS) tables. It was the physical address of a row in the table and could be used to quickly access a given row. However, the rows of a partitioned table existed in multiple partitions and the Nth row in each partition would all have the same ROWID it was impractical to support the feature. So you had no built-in unique identifier you could use for tables created without a unique key. Shortly after that the option to create a partitioned table WITH ROWIDS was introduced which added a real but hidden integer column to the table and creates an index on it. However, if you created the table without the WITH ROWIDS clause and the table was very large it was impractical to add that feature to an existing table.</p><p style="text-align: left;">It seems that for a long time there has actually been a physical address of a row in a partitioned table and I have written about it before. This was the undocumented pseudo-column ifx_row_id which is a 45 byte CHAR type value containing the partition number and rowid of the row as a colon separated string. Unfortunately if you used the ifx_row_id to query a row the engine would perform a table scan rather than using the value as a row address and directly accessing the data. A SET EXPLAIN will show this behavior. Well, version 14.10.FC6 has fixed that. If you run such a query now, it is lightening fast even on a massive table and the SET EXPLAIN output will show an index scan query plan for ifx_row_id. YEEHA!</p><h4 style="text-align: left;">Querying LVARCHAR type columns in an array fetch</h4><p style="text-align: left;">This was finally fixed in the CSDK v 4.50.xC5! Since the introduction of LVARCHAR type columns if you used an array fetch to fetch a batch of many rows into your program's memory space in a single FETCH operation you would get a spurious error (-1831 <span style="background-color: white;"><span style="font-family: inherit;">Combination of FetArrSize, Deferred-PREPARE, and OPTOFC is not supported) which have nothing to do with the actual problem which was using FetArrSize > 1 with a query that returned an LVARCHAR. This issue prevented one from using my dbcopy utility to copy any table that has one or more LVARCHAR columns or writing one from writing their own mass data processing applications. This was a large problem because array fetching is several times faster than row-by-row fetching for very large data sets.</span></span></p><p style="text-align: left;"><span style="background-color: white;"><span style="font-family: inherit;"><br /></span></span></p>art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com1tag:blogger.com,1999:blog-3392197078789890903.post-19602772750193703772020-06-17T09:43:00.004-04:002020-06-17T16:00:09.925-04:00Stepping into a different realm for a few minutesThis morning I was introduced to a 5 minute video recorded by Rabbi Lord Jonathan Sacks, former Chief Rabbi of the United Kingdom talking about the New Antisemitism. At the end Rabbi Sacks makes a warning that I think is relevant in this time of the incidents of overt racism in the United States and elsewhere. I therefore offer this link, not only because as a proud person of Jewish heritage it speaks of things that have affected my family and myself, but because I think that it speaks to all of us:<br />
<br />
<a href="https://youtu.be/3UAcYn4uUbs">https://youtu.be/3UAcYn4uUbs</a><br />
<br />
After that I sought other words of wisdom from Rabbi Sacks and found this TED Talk from 2017 where he asserts that today's focus on the self is a major problem in society and that a simple shift to a focus on "us" and "we" and the "other" may be the cure:<br />
<br />
<a href="https://www.youtube.com/watch?v=F-QFwhWmC3U">https://www.youtube.com/watch?v=F-QFwhWmC3U</a><br />
<br />
If you have something constructive to offer in comment, whether you agree with Rabbi Sacks or not, I welcome the dialogue. If, on the other hand, you post comments of hatred to any person or group at all I will delete your comment. So just don't bother!<br />
<br />
<br />art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com0tag:blogger.com,1999:blog-3392197078789890903.post-50714375709274752752020-03-10T14:29:00.002-04:002020-03-10T14:33:17.160-04:00IIUG Forums have moved to the IBM Community Site<div style="border: 0px; box-sizing: border-box; float: none; line-height: 1.5; padding: 0px; text-shadow: none; vertical-align: baseline;">
<span style="background-color: #444444; color: #6fa8dc; font-family: "arial" , "helvetica" , sans-serif;">IIUG Forums</span></div>
<div class="m-empty" style="border: 0px; box-sizing: border-box; float: none; line-height: 1.5; padding: 0px 0px 0.6em; text-shadow: none; vertical-align: baseline;">
</div>
<div style="border: 0px; box-sizing: border-box; float: none; line-height: 1.5; padding: 0px; text-shadow: none; vertical-align: baseline;">
<span style="background-color: #444444; color: #6fa8dc; font-family: "arial" , "helvetica" , sans-serif;">For those who are not aware, the IIUG SIGS or Forums, including the old comp.databases.informix Usenet group, are no longer available. They were using some very old home built software running on the old IIUG server which was quite literally falling apart.</span></div>
<div class="m-empty" style="border: 0px; box-sizing: border-box; float: none; line-height: 1.5; padding: 0px 0px 0.6em; text-shadow: none; vertical-align: baseline;">
</div>
<div style="border: 0px; box-sizing: border-box; float: none; line-height: 1.5; padding: 0px; text-shadow: none; vertical-align: baseline;">
<span style="background-color: #444444; color: #6fa8dc; font-family: "arial" , "helvetica" , sans-serif;">IBM has graciously created a new Community site for IIUG forums and blogs which is accessible through the IBM web pages. Back in the depths of time, shortly after the IBM acquisition, I was opposed to efforts to bring the forums in to IBM's systems. Honestly, we had no reason 18 years ago to trust IBM would continue to support the best database system on the market, ie Informix. Today, the story is different. IBM has been a true partner to the Informix community, so I have joined the rest of the IIUG Board of Directors in making this change. The new forum is linked to the IIUG Site under the Resources menu item. The link is: www.iiug.org/community</span></div>
<div class="m-empty" style="border: 0px; box-sizing: border-box; float: none; line-height: 1.5; padding: 0px 0px 0.6em; text-shadow: none; vertical-align: baseline;">
</div>
<div style="border: 0px; box-sizing: border-box; float: none; line-height: 1.5; padding: 0px; text-shadow: none; vertical-align: baseline;">
<span style="background-color: #444444; color: #6fa8dc; font-family: "arial" , "helvetica" , sans-serif;">You will need an IBM ID if you do not already have one, but that is free for the asking. When you log in to the site for the first time, please go to the Informix group page and make a “Hello world” post so that the group moderator can validate that you are not a spammer or bot. That will take an hour or so after which you will be able to post instantly! You can also create your own Blog there for the community if you want.</span></div>
<div class="m-empty" style="border: 0px; box-sizing: border-box; float: none; line-height: 1.5; padding: 0px 0px 0.6em; text-shadow: none; vertical-align: baseline;">
</div>
<div style="border: 0px; box-sizing: border-box; display: inline; float: none; line-height: 1.5; margin-right: 0.6em; padding: 0px; text-shadow: none; vertical-align: baseline;">
<span style="background-color: #444444; color: #6fa8dc; font-family: "arial" , "helvetica" , sans-serif;">It is very important that EVERYONE who cares about Informix database systems join the IBM Informix Community forum and ONLY post there. IBM sees that site and counts both the number of members and the number of posts there and uses that information to determine how much attention they should pay to our favorite database system!</span></div>
<div>
<div style="border: 0px; box-sizing: border-box; display: inline; float: none; line-height: 1.5; margin-right: 0.6em; padding: 0px; text-shadow: none; vertical-align: baseline;">
<br /></div>
</div>
art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com2tag:blogger.com,1999:blog-3392197078789890903.post-10853782229698332452019-11-05T14:54:00.002-05:002019-11-05T14:54:31.846-05:00I learned something new!Have you ever needed the functionality of ROWID for use with a partitioned table that you did not create using the WITH ROWID clause? Well, I recently found out that such a facility is available!<br />
<br />
It is not compatible with the traditional ROWID, so you cannot just use it in applications that were written for ROWID use on single partition tables, but it works and it does not require any indexing or rebuilding your massive multi-partition table! The undocumented pseudo-column named ifx_row_id. This is a VARCHAR(45) type and it returns a string of the form "ppppppp:rrr" where the p's are the fragment's partnum and the r's are the row's actual rowid within the partition. Also it works exactly the same for single partition (ie non-fragmented) tables as it does for multi-partition tables.<br />
<br />
You can select the ifx_row_id for any row in any table:<br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span>
select ifx_row_id from systables where tabid = 1; <span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /><br />ifx_row_id <br />
<br />5244160:769 <br />
</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;">You can select data by ifx_rowid:</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span>
select * from systables where ifx_row_id = '5244160:769'; <span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /><br />tabname systables
<br />owner informix
<br />partnum 5244160
<br />tabid 1
<br />rowsize 500
<br />ncols 26
<br />nindexes 2
<br />nrows 307.0000000000
<br />created 01/30/2019
<br />version 65638
<br />tabtype T
<br />locklevel R
<br />npused 22.00000000000
<br />fextsize 16
<br />nextsize 16
<br />flags 0
<br />site <br />dbname <br />type_xid 0
<br />am_id 0
<br />pagesize 2048
<br />ustlowts 2019-11-03 08:44:57.35225
<br />secpolicyid 0
<br />protgranularity <br />statchange <br />statlevel </span><span style="font-family: monospace;"><span style="font-size: x-small;"> </span></span><br />
<span style="font-family: monospace;"><span style="font-size: x-small;"><br /></span></span>
<span style="font-family: inherit;"><span style="font-size: x-small;"><br /></span>If you do need a numeric "rowid" you could convert it to a BIGINT:</span><br />
<span style="font-family: monospace;"><br /></span>CREATE FUNCTION "art".ifx_row_id_to_rowid ( ifx lvarchar ) returning bigint; <br /><span style="font-family: monospace;">define partnm, rw, bigrowid bigint;
<br />define pos int;
<br />
<br />let pos=instr( ifx, ':' );
<br />
<br />let partnm=left( ifx, pos - 1 )::bigint;
<br />let rw=substr( ifx, pos + 1, 10 )::bigint;
<br />let bigrowid=(partnm * pow(2, 32 )::bigint ) + rw;
<br />
<br />return bigrowid;
<br />end function; </span><span style="font-family: monospace;"><br /></span><br />
<span style="font-family: monospace;"><br /></span>art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com0tag:blogger.com,1999:blog-3392197078789890903.post-88349958035191924122019-08-01T11:32:00.003-04:002019-08-01T11:32:27.810-04:00New RFE I have posted<div>
Please vote for this RFE if you agree with it.</div>
<div>
<br /></div>
<div>
RFE URL:</div>
<div>
<br /></div>
<div>
<a data-saferedirecturl="https://www.google.com/url?q=https://ibm-data-and-ai.ideas.aha.io/ideas/INFX-I-325&source=gmail&ust=1564759471264000&usg=AFQjCNFGSURuUm-svULmiABoP1QB8fupLA" href="https://ibm-data-and-ai.ideas.aha.io/ideas/INFX-I-325" style="color: #1155cc;" target="_blank">https://ibm-data-and-ai.ideas.<wbr></wbr>aha.io/ideas/INFX-I-325</a></div>
<div>
<br /></div>
<div>
RFE Description:</div>
<div>
<br /></div>
<div>
When creating a stored procedure or function with the IF NOT EXISTS optional clause included, the option text is currently included in the saved source code for the procedure.<br /><br />This should be changed such that the optional clause is removed before saving the procedure source code in sysprocbody.</div>
<div>
<br /></div>
<div>
Justification:</div>
<div>
<br /></div>
This can confuse some software, both IBM and third party, written to analyse and support Informix and is not necessary to be saved as its addition does not change the understanding of the procedure source nor how it was created. The very fact that the source with that text was saved indicates that the procedure did not exist at the time it was last created which would be true and the only valid inference even without that text.<br /><br />Similarly, when the behavior of CREATE OR REPLACE PROCEDURE/FUNCTION is fixed, that syntax should also not be saved as it also does not add to the understanding of the routine's creation and will further break third party tools.<br />
<div>
<div class="m_-8787385764576171809gmail_signature" data-smartmail="gmail_signature" dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<br style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com0tag:blogger.com,1999:blog-3392197078789890903.post-55801348775249969912019-05-31T15:56:00.000-04:002019-05-31T15:56:10.331-04:00IIUG World 2019 is coming!The 2019 IIUG World conference registration site is open!<br />
<br />
Register now for the Early Bird discount and save! (Don't forget to get your IIUG Member ID number so you can also get the members' discount!)<br />
<br />
https://www.iiug.org/conf/2019/iiug/register.php<br />
<br />
Also it is not too late to submit user session proposals to the conference board!art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com0tag:blogger.com,1999:blog-3392197078789890903.post-86142039074141900692019-02-26T14:12:00.000-05:002019-02-26T14:27:11.164-05:00Informix to the Rescue!It was 1990. I was brought into a major New York mutual fund and private wealth management firm (call it NB) along with another consultant to review their systems and help them plan for the future. At the time their systems were all written in FORTRAN running on Prime Systems' hardware using a non-SQL relational database system that only ran on Prime. Prime Systems had just announced that they would no longer be manufacturing hardware and would only continue supporting existing computer systems for a few years. Because of this NB needed to find new hardware, a new database system, and port all of their applications to this new environment. We were to help with the product evaluation and recommendation and estimate the porting effort at the end of which one or both of us might be hired full time.<br />
<br />
Along the way we evaluated Sun, HP, and DEC hardware (NB was adamant that they were not interested in IBM systems). We mostly looked at various UNIX variants (System V, BSD, and OSF-1), although DEC kept saying things like "Yes, yes we have Alpha based systems running OSF and System V. You really should be looking at VAX/VMS systems!" But NB was convinced that proprietary OS's were the past, they'd just been bitten by Prime/Primos, and wanted to go with a UNIX variant. We had meetings with Oracle, Sybase, Informix, Unify, Progress, and Ingres including some demos and discussions with developers and support engineers about features and internals.<br />
<br />
Anyway, we carefully gathered specifications, counted lines of code and numbers of modules, evaluated plans for new projects in the pipeline that had been halted after Prime's announcement, met with hardware and database vendors and after maybe six months or so we made our recommendations. Here they are with a concise brief of our reasons:<br />
<br />
<ul>
<li>Hardware - Sun server blades<br />HP and DEC each had multiple OS's and hardware platforms. On the OS side, UNIX wasn't the main product for either company. We were concerned about their commitment to UNIX in the future and Sun was 100% UNIX and was gaining ground in the industry.</li>
<li>OS - UNIX System V - Solaris<br />See hardware...</li>
<li>Database - Informix OnLine v4.01<br />NB didn't like the locking model on some of the databases. Oracle didn't have any development tools beyond a very simplistic form manager and an ESQL implementation that was incomplete against the developing standard. Also Oracle's SQL dialect did not conform well to the SQL-89 standard. Informix OnLine had row level locking, stored procedures, triggers, referential integrity, and was the first RDBMS that could be archived successfully while fully online (hence the name) processing transactions. Informix had started as a development tool company that happened to have a great database, so there was a very complete ESQL/C implementation as well as a 4th Generation Language (4GL) and high level menu, forms, and reporting tools for building quick applications when responsiveness to business requirements was needed. Sybase was similar in design to Informix, but, at the time, it did not have an ESQL/C implementation at all, only its Open Client (OC) library. While several years later OC became the ODBC v1 interface library standard, at the time it was purely proprietary to Sybase.</li>
<li>Development environment - ESQL/C (for its portability across SQL databases)</li>
</ul>
<div>
They said "Thank you." for our recommendation report, hired both of us full time, and then went ahead and bought:</div>
<div>
<ul>
<li>Hardware - DEC Alpha - because DEC's stock was performing better in the market than Sun's (NB was, after all, a financial organization).</li>
<li>OS - OSF-1 - because both DEC and IBM were driving the development - "How can it not be big!"</li>
<li>Database - Sybase - because all of Wall Street was using Sybase, so NB should also! Oh, and Sybase promised to deliver an working ESQL/C in 90 days.</li>
</ul>
<div>
Anyway, long story long, we spend four months getting things up and running on the new systems and ported the first application, NB's client billings and invoice generation. First problem we ran into was how to represent portfolio values. Some financial instruments were priced in Japanese Yen, Italian Lire, and Hungarian Lira. Any client that owned many shares of any of these securities would have either a native currency value with more whole unit digits or a US currency balance with more fractional digits than a Sybase DECIMAL type could hold (15 total digits fixed as 12 to the left of the decimal and three to the right). The head of development and I attended a Sybase Financial Users Group meeting and asked them "What are you doing about this? Do any of you have, or know about, an Open Server module that can handle larger numbers?" (Open Server was a library of functions one could use to add functionality to Sybase - a unique feature at the time.) The answer was basically that "there are no such Open Server modules" because no one was willing to use the Sybase Open Server libraries to basically build a customized server (SOS modules were linked into the base server). "Then how are you handling the larger numbers for big customers with Yen and Lira securities?" we asked. The answer was "We don't have any such, and we're hoping we never do." NB did. (For what it's worth, Informix's DECIMAL type supported up to 32 decimal digits of precision, either floating point or configurable fixed point.) Strike one!</div>
</div>
<div>
<br /></div>
<div>
Then we started to really code the application and found that the ESQL/C that Sybase delivered was a) not ready for prime time (apps built with it kept crashing) and b) was brain dead, and missing several features of the language that we needed like named cursors and multiple cursors in a single application. Sybase wanted 12 months to get those features implemented for us. Strike two.</div>
<div>
<br /></div>
<div>
Strike three was performance. Our initial tests were that our brand spanking new DEC Alpha, cutting edge systems, running Sybase, would take up to 4 days to process the data and generate the invoices that the several years old, out-of-date technology of the Prime systems could get done in around one day. Strike 3. </div>
<div>
<br /></div>
<div>
We called Informix, loaded up Informix Online v5.02 and ESQL/C, exported and imported the database (again), recompiled the code improving it using the features we couldn't get from the Sybase ESQL/C, and wham! We were done with Billing and invoicing in another month or so and getting the invoice runs done on a Sunday afternoon (OK after they finally went out and bought the faster and higher volume printers we had recommended because we were now generating reports faster than the operators could change the paper in the printers they originally purchased - forgot that part). Later other interactive systems were written in Informix 4GL and even a couple using Informix's Forms, Menus, and Reports modules. Go Informix!</div>
<div>
<br /></div>
<div>
Let me know if you want to hear more stories like this.</div>
<div>
<br /></div>
<br />
<br />art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com6tag:blogger.com,1999:blog-3392197078789890903.post-81742677957594924562019-02-25T06:22:00.002-05:002019-02-25T06:22:25.541-05:00New seriesFollowers:<br />
<br />
I am about to begin a series of posts that will hopefully be a monthly thing. The basis of the series is stories about how Informix performs against other options in the real world. Some will be older stories (I will probably start there). Others will be more recent. I encourage anyone who wants to send me stories they can relate or a pointer to someone who can relate the story to me privately and I will post these with appropriate sourcing or anonymity as requested.<br />
<br />
I am traveling today, so I will start later this week with a story from my own experience from ancient history relating an incident where Informix and Sybase went head-to-head.<br />
<br />
Some of the series will be short anecdotes, others more full blown out tales. I hope you enjoy.art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com0tag:blogger.com,1999:blog-3392197078789890903.post-57056879518910973622018-10-23T12:44:00.002-04:002018-10-23T12:44:29.127-04:00IIUG World 2018<a class="ember-view" href="https://lnkd.in/d6siP7Y" id="ember3623" style="background: 0px 0px rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: #665ed0; font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 600; line-height: inherit !important; margin: 0px; padding: 0px; text-decoration-line: none; touch-action: manipulation; vertical-align: baseline; white-space: pre-wrap;" target="_blank">https://lnkd.in/d6siP7Y</a><span class="ember-view" id="ember3627" style="background: 0px 0px rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; line-height: inherit !important; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"><span style="background: 0px 0px; border: 0px; box-sizing: inherit; line-height: inherit !important; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
I will be presenting two sessions at the 2018 IIUG World Conference in Arlington, Virginia outside Washington DC next week.
The first session is "Hello! Your data is calling!" where I will be presenting about the new "Smart Triggers" feature of Informix which allows users to create applications that passively receive notification when data in a registered table is modified.
The second session is "Uninterruptable transactions with Informix!" in which I will demonstrate the Informix Transaction Survival feature that will allow active transactions to survive the crash of the primary server in a high availability or remote secondary cluster environment.</span></span>art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com0tag:blogger.com,1999:blog-3392197078789890903.post-37667887860758311652018-04-17T09:58:00.000-04:002018-04-17T09:58:10.773-04:00Looks like Oracle is worried about Informix again!OMG, it looks like Oracle is beginning to worry about Informix! Why would I say that? Isn't Oracle "The world's most popular database!"? Why should they worry?<br /><br />I dunno, but in February Oracle announced v18c (actually v12.2 but read on). This latest release of Oracle implements tons of features that have been in Informix for up to 28 years! The need to compete with Informix on features again seems to have surfaced!<br />
<br />
Not to tout Oracle, but to point out how forward thinking the Informix development team is, witness:<br />
<br />
<ul>
<li>Annual major releases with quarterly updates. To celebrate they have renamed v12.2 to be v18c after the year of its release. One assumes that the Q1 release next year will be v19c.</li>
<li>Ability to attach a table to another table as a partition - was that Informix 7.31?</li>
<li>All identifiers have been increased from 30 bytes to 128 bytes - Informix v7.30 circa 1998</li>
<li>Multitenancy</li>
<li>JSON support including dot notation in queries</li>
<ul>
<li>Functions for converting table data to JSON</li>
<li>JSON operators in SQL queries</li>
<li>New API to allow JSON aware languages to query Oracle JSON documents</li>
<li>Ability to update fields within JSON documents</li>
</ul>
<li>RAC based Database Sharding - well sort of. A shared RAC database can have its data segregated so that nodes only operate on a subset of the data. But it is still a monolithic store.</li>
<li>NonRAC based Database Sharding - well sort of. Applications must be shard aware. Inserts, updates, and deletes are directed to the appropriate shard in the API layer, not within the database server shard cluster.</li>
<li>"Connection Manager" enhanced to manage load balancing between multiple servers. Originally this was closer to Informix Connection Multiplexer feature.</li>
<li>Application Continuity - This is similar to Informix's Transaction Survival allowing transactions to complete when a server fails.</li>
<li>Session private temporary tables - Informix v4.01 the initial release of Informix Online circa 1990?</li>
<li>New Oracle autonomic features to allow for unmanaged cloud databases.</li>
</ul>
<div>
<br /></div>
art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com3tag:blogger.com,1999:blog-3392197078789890903.post-19514203609516924722018-03-05T10:53:00.002-05:002018-03-05T10:53:32.230-05:00<h2>
What are reasons to migrate away from Informix?</h2>
OK, I haven't lost my mind. I have been active on a social media site called Quora where people ask questions on just about any topic. Some are technical, some are social, some are just annoying. Recently someone asked the question above. Eric Vercelletto posted one answer and I posted another. Here is an expanded version of my response for your amusement.<br />
<br />
The single most common reason to migrate away from Informix is FUD. Other RDBMS vendors have been spreading the FUD that Informix is dead legacy technology since the IBM acquisition in 2001 and that has resulted in many shops moving away from an RDBMS that had successfully supported their organizations for many years. Unfortunately IBM was one of the worst offenders. IBM sales people seeing dollar signs in their vision, if they sold new DB2 licenses instead of an Informix license renewal at 20% of the price, told customers the same thing "Don't stick with Informix it is going away!". That’s the main “reason”.<br />
<br />
What are reasons to NOT migrate away from Informix? Well, the truth is that Informix is not a dead legacy technology. In the 16 years since IBM bought Informix the database from Informix Corp. IBM has made more improvements and innovations to the product than Informix itself had in the prior 18 years since the company started. Today Informix is still the best OLTP engine on the market. The Informix Warehouse Accelerator feature handles complex data warehouse queries against massive data marts several hundred times faster than any RDBMS, even faster than its sister product DB2 Blue Accelerator. Informix is the only RDBMS that can not only handle semi-structured JSON/BSON data as native data but can seamlessly integrate MongoDB style collections with relational tables and serve as a plug-in replacement for MongoDB extending that API with access to relational tables (as JSON results), generic SQL statements, and working reliable ACID transactions that include relational and JSON data today (Mongo promises to have its brand new ACID transaction feature ready next year). Informix timeseries support is as good as any dedicated timeseries database with the added benefit that Informix’s Virtual Table Interface allows one to present timeseries data to analytical tools that do not understand timeseries as if it were a flat relational table. Informix was the first RDBMS to fully support scale out sharding to create huge distributed databases spread across dozens or hundreds of physical servers build over heterogeneous technologies from different vendors.<br />
<h3>
On to other topics</h3>
Since taking over development and marketing of Informix and a number of other IBM software products last year, HCL has been more concerned with getting its ducks in a row and so little new or exciting has come out of HCL's Informix development group. Version 12.10.xC9, the first full release developed completely under HCL's auspices, did introduce smart triggers which is a good thing.<br />
<br />
That said, version 12.10.xC10 actually included several new features and improvements:<br />
<br />
<ul>
<li>added compression of blobspace BLOB data, </li>
<li>backup to cloud storage services, </li>
<li>the ability to swap primary and mirror chunks which can allow us to upgrade a server's storage to faster devices with no downtime, </li>
<li>new sysmaster data and onstat options to help identify unused and little used indexes, </li>
<li>the ability to retain data distributions and other statistics when truncating a table (useful for staging tables that are truncated and reloaded periodically), </li>
<li>the ability to reconnect to a smart trigger session without missing data when an application exits and restarts, </li>
<li>expanded audit details about sessions and users, </li>
<li>added compression of string fields in timeseries subtypes, </li>
<li>expanded geodetic data support for additional coordinate systems (x,y coordinates; GPS; industry specific coordinates).</li>
</ul>
<br />
<br />
There are two updates to the IBM online Knowledge Center pages about Smart Triggers:<br />
<h4>
Generic information about how to register for Smart Trigger Push Data:</h4>
https://www.ibm.com/support/knowledgecenter/en/SSGU8G_12.1.0/com.ibm.erep.doc/ids_erp_pd_01.htm<br />
<br />
<h4>
JDBC API for Smart Triggers:</h4>
https://www.ibm.com/support/knowledgecenter/en/SSGU8G_12.1.0/com.ibm.jdbc_pg.doc/ids_jdbc_st_01.htm<br />
<br />
Other than this the online Knowledge Center pages have also lagged. Also there has not been a new set of Informix PDF documentation since 12.10.xC8. I do put the onus for the documentation SNAFU firmly on the shoulders of IBM, though, not HCL because after transferring responsibility for the software to HCL IBM disbanded the Informix documentation team without informing HCL that they might want to take that effort over as well. I think that this issue is in the process of being resolved.<br />
<h4>
Big Announcement</h4>
<div>
Over this past weekend, HCL announced that Informix instances are now available on AWS, the Amazon Cloud. There are dozens of different configurations that will cost from pennies an hour to six dollar figures per annum to meet the needs of organizations from startups to large enterprises. If you are considering moving your databases to the clouds, there are now alternatives to the IBM cloud for Informix users. HCL promises other major cloud providers will become available soon.</div>
<div>
<br /></div>
<br />
<br />art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com1tag:blogger.com,1999:blog-3392197078789890903.post-63800603611527988602017-10-30T16:02:00.001-04:002017-10-30T16:02:12.999-04:00New features in Informix 12.10.xC9<span style="font-family: "arial" , "helvetica" , sans-serif;">I am stoked! HCL has released the first update to Informix Dynamic Server developed under their auspices. There are two significant new features in the .xC9 release, one is an enhancement to how time series and spatial data work together that adds significant performance and utility to that feature and the other is a completely new feature that users have been asking for for years. I will cover them in order:</span><br />
<h2>
<span style="font-family: arial, helvetica, sans-serif;">Track Location and Time Together</span></h2>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span a="" an="" and="" are="" bson="" calling="" column="" contains="" create="" define="" determine="" etc.="" extension.="" fields="" float="" for="" hcl="" here="" how="" ibm="" if="" is="" it="" latitude="" longitude.="" longitude="" moving="" nbsp="" object="" or="" parameters="" periods="" row="" s="" search="" set="" span="" spatiotemporal="" stationary="" style="font-family: "arial" , "helvetica" , sans-serif;" that="" the="" then="" this="" time="" timeseries="" to="" trajectory="" type="" using="" what="" whether="" with="" works.="" you=""></span><span class="keyword cmdname" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px; vertical-align: baseline; word-break: break-all;">STS_SubtrackCreate</span><span class="keyword cmdname" style="border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-break: break-all;"><span style="font-family: , "helvetica neue" , "arial" , sans-serif;"><b>()</b> function which creates the "subtrack" table over which the spatiotemporal index is created. That done the </span></span><span class="keyword cmdname" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px; vertical-align: baseline; word-break: break-all;">STS_SubtrackBuild</span><span class="keyword cmdname" style="border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-break: break-all;"><span style="font-family: , "helvetica neue" , "arial" , sans-serif;"><b>() </b>function populates the subtract table and builds the initial index contents. Spatiotemporal indexes are relatively static, however you can configure the Timeseries such that it automatically updates the index when data elements are added to the Timeseries record.</span></span><br />
<span class="keyword cmdname" style="border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-break: break-all;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></span>
<span class="keyword cmdname" style="border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-break: break-all;"><span style="font-family: "arial" , "helvetica" , sans-serif;">The biggest change in the .xC9 release is improved time granularity of the spatiotemporal data making it easier to search and locate allowing new searches that answer "When was an object in a specified area?" "What objects were in this area at this time?" "At what time were there some objects in this area?"</span></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">
</span>
<h2>
<span style="font-family: "arial" , "helvetica" , sans-serif;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">Applications to Receive Asynchronous Notice of Data Changes </span></span></h2>
<span style="font-family: "arial" , "helvetica" , sans-serif;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">Client applications can now create Smart Triggers that register them to receive notification when there are changes in a data set. The API uses SELECT statements and WHERE clauses to identify which specific data each application is interested in, and an application can register to receive push data from multiple source tables. Once registered the server will push new and modified data from the server to those clients interested in those specific rows. </span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Because the client applications do not have to poll the server looking for new data, greater scaling and responsiveness is achieved by those apps. At the same time the database server's parallel architecture can feed the data to all clients by asynchronously reading logical log file changes. This design lets client applications scale linearly without adding significant overhead to the database server. Since the changes are scraped from the logical logs asynchronous to the session threads actually modifying the data, by using the Enterprise Replication log scraping threads, there is no performance effect on the OLTP applications that are making the changes to the database.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Previously you might have emulated this behavior using insert, update, and delete triggers on the tables that called to a C or JAVA library function, but the process of trapping the trigger and sending data synchronously would slow down the front-end transactions causing potentially serious scaling and concurrency problems for applications.</span><span style="font-family: "arial" , "helvetica" , sans-serif;">Registering is fairly straight forward and is documented in the Enterprise Replication Guide. Basically you call a registration function passing in a BSON record containing fields defining the table you are registering for, a SELECT statement with an appropriate WHERE clause to filter the rows you are interested in, a label you want to use to distinguish data blocks from one table from those originating from another, a timeout setting, the number of elements you want to receive in each message, how many messages to allow to queue up, and the earliest transaction time you want to receive data updates from.</span><span style="font-family: "arial" , "helvetica" , sans-serif;">I am particularly stoked about this one because I think it will be key to the success of a new project I am working on for a client. Perhaps when it is all finished I will be able to get permission to talk about it.</span><br />
<h2>
<span style="font-family: arial, helvetica, sans-serif; font-size: large;">Going Forward</span></h2>
<span style="font-family: "arial" , "helvetica" , sans-serif;">There has been a long gap since my last post. I apologize. I have not been ignoring the community nor have I given up on Informix as some have suggested and gone off to do other things. On the contrary, the main reason for my silence is that the past year has been my busiest in a long time. If I ever entertained fears that Informix is dying this year would have put those to bed for me for sure. I have seen one client upgrade their servers to the latest releases three times. Two clients implement IWA successfully. One going from Proof of Concept to production in four months and in the process saving over a million dollars over the alternative free "open source" solution while exceeding the predicted performance the "other" solution promised! The other implemented a new vertical product for the industry that it serves that will allow their customers to perform more detailed analytics in less time with fewer resources.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;">I have spent several months helping another client expand their use of Informix throughout their organization through which effort they were able to improve the timeliness and reliability of the services they provide to their customers and so to their customers customers among whom are counted many reading this post (including me). So, you are welcome. </span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;">One of my current projects, mentioned in passing above, is very different for me and has me excited because it is allowing me to do some database design. That's one of the more fun things I do. Recently performance tuning, installations, training, and feature implementation have taken up my time and I haven't had the opportunity to work on a design project in a while. Enjoying the change. </span></span><br />
<h2>
<span style="font-family: arial, helvetica, sans-serif; font-size: large;">IIUG Update</span></h2>
<span style="font-family: "arial" , "helvetica" , sans-serif;">I just returned from the IIUG Board of Directors fall meeting. This year we met for the first time formally with HCL executives and development management. Some of you may have been dismayed by the Editorial in the recent IIUG Insider. I have to report that the feedback from HCL in response to Gary's concerns was overall heartening. It seems that mostly HCL didn't think it was important to keep the IIUG informed. There are new things in the queue that the Board members will be able to discuss publicly as soon as some outside hindrances to roll out are overcome. There is exciting news pending for market segments that previously could not take advantage of Informix. That's about all I can say for now, but hopefully the news will be released in time for the next Insider. Although Murphy is probably working hard to cause it to miss Gary's deadline by a day B^(</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Stay tuned there is lots happening in the Informix world. And don't forget to start working on getting permission to attend the IIUG World 2018 conference in Washington DC in October 2018!</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com2tag:blogger.com,1999:blog-3392197078789890903.post-57232582167427379742017-05-03T13:52:00.000-04:002017-05-05T07:25:07.947-04:00A new era for Informix begins now!<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-stretch: inherit; font-variant-numeric: inherit; line-height: 32px; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">I returned from last week's International Informix Users Group Conference with some news. What kind of news it is I am not 100% certain. I am certain that it is BIG news. I am certain that it affects most of us in one way or another. I am not certain whether it is good news or bad news for the Informix user community or same-old same-old. I have been saying since I heard it that I am guardedly optimistic that this is good news.</span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-stretch: inherit; font-variant-numeric: inherit; line-height: 32px; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">For those of you who have not heard, IBM and a company called HCL have partnered to "jointly develop and market the Informix family of products". IBM has licensed the intellectual property rights for all Informix products to HCL for a period of at least 15 years with options for renewal. As part of the deal IBM will retain ownership but HCL will be responsible for developing the products and for tech support. Indeed HCL will be hiring all Informix developers and support personnel who are willing to make the change. (My understanding is that so far all US Informix developers and support people have agree to sign up and tentative offers have been made to the Informix folks in Europe and Asia pending government paperwork in those areas.) HCL will also be free to market and sell Informix as well as to develop "derivative products". Decisions about the product life cycle and roadmap will be made by IBM and HCL together.</span></div>
<div style="border: 0px; font-stretch: inherit; line-height: 32px; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">What does this mean for existing customers? Immediately not much. You will still be able to renew your support and purchase additional Informix licenses from IBM. You will still call the same support phone lines or use the same online support portal. The technicians responding will simply be HCL employees and likely the same people you have been dealing with all along.</span></div>
<div style="border: 0px; font-stretch: inherit; line-height: 32px; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;">This is a link to a LinkedIn post by Mattias Funke Director Core Database & Data Warehouse Offering Management & Strategy at IBM explaining the deal: </span><a href="https://goo.gl/CY4nyO" rel="nofollow noopener" style="border: 0px; cursor: pointer; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: none; padding: 0px; vertical-align: baseline;" target="_blank"> https://goo.gl/CY4nyO</a></span></div>
<div style="border: 0px; font-stretch: inherit; line-height: 32px; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">HCL is a global consulting and IT software group headquartered in India with locations throughout the world. Their Product and Platform business unit which was started in September is based in New York and will manage the Informix products in addition to their own product lines which concentrate on IOT, embedded systems, and cloud computing. These are all strengths of Informix and explains HCLs interest in the partnership. </span></div>
<div style="border: 0px; font-stretch: inherit; line-height: 32px; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">In discussions with their executives at the IIUG Conference we were told that HCL is very interested in focusing their own products on working with Informix and in making Informix THE player in the database market. </span></div>
<div style="border: 0px; font-stretch: inherit; line-height: 32px; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">IBM's internal politics have always prevented IBM from fully embracing Informix for the market leading database that it is and this has encouraged much of the FUD intimating that Informix is a dead or dying product. HCL has no such constraints on it. Someone said at the Conference "the gloves are off!" We may even see advertising about the benefits and features of Informix. I am hopeful. The Informix community will be waiting to see how HCL follows up on these opportunities and promises and how this changes the marketplace for Informix.</span></div>
art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com6tag:blogger.com,1999:blog-3392197078789890903.post-35149155697363812462016-07-15T15:59:00.005-04:002016-09-08T07:26:29.040-04:00Some Very Cool Things Are Happening in the Informix WorldI read two interesting things this week. One was an award that Informix won and the other is a White Paper Bloor put out. Both reference Informix as a platform for IoT or Internet of Things data storage and processing.<br />
<br />
First, on July 14, 2016 at the annual Cisco Live conference in Las Vegas Nevada, Cisco presented IBM with an award naming IBM Informix as the "Best IoT Database" on the market today. I know this is no surprise to you, but this is the biggest third party acknowledgement of Informix's role in a major company's product and market strategy. Most of the businesses that depend on Informix for the competitive edge it gives them over their competitors who use other RDBMS and non-SQL databases are not willing to talk about it. This is a coup for Informix and a great boon for the Informix user community. Here's a link to the annoucement on the IIUG Site:<br />
<div style="text-align: center;">
http://www.iiug.org/2016/07/14/well-deserved-trophy-for-informix/</div>
<br />
The other item is the Bloor Report which describes IBM Informix as the perfect database for IoT installations "regardless of where (in the IoT pipeline) it needs to be deployed". Among other things, Bloor's Philip Howard wrote:<br />
<br />
<i>[It] is essential that any </i><i>embedded database is invisible and </i><i>remains that way. This is true regardless </i><i>of whether you are simply collecting </i><i>data and passing it on or whether you </i><i>are performing some analytics on the </i><i>data. In the latter case, in order to get </i><i>good performance, you need, at least in</i><br />
<i>conventional environments, to create </i><i>indexes, materialised views and other such </i><i>database constructs in order to achieve </i><i>that performance. While this is feasible it </i><i>is not flexible in the event that additional </i><i>requirements need to be supported. Every </i><i>time you add functionality within the </i><i>device or gateway you will need to change </i><i>the supported indexes. Worse, different </i><i>workloads may mean that different </i><i>indexes, materialised tables and so forth </i><i>will be differently suitable for different </i><i>customers. Moreover, these workloads may </i><i>change over time. What this will mean is </i><i>that the database will need to be tuned </i><i>on an ongoing basis in order to maintain </i><i>performance, which is impractical in IoT </i><i>environments. For all of these reasons </i><i>a traditional relational database will not </i><i>be suitable for embedding at the device </i><i>or gateway level, precisely because these </i><i>all require exactly this sort of tuning. </i><i>Fortunately, this is not the case with IBM </i><i>Informix because the product includes </i><i>self-healing and self-tuning autonomics </i><i>that handle these embedded environment </i><i>requirements automatically. </i><i>Secondly, there are some elements </i><i>of database flexibility that need to be </i><i>discussed with specific respect to IoT </i><i>environments. Support for things like </i><i>geo-spatial and time series data we will </i><i>discuss later. In the context of flexibility, </i><i>you must bear in mind that an IoT </i><i>implementation may consist of multiple </i><i>types of devices and gateways doing </i><i>different things. Moreover, the sort of </i><i>data you are collecting and processing </i><i>may change over time. For both of these </i><i>reasons a database that supports a flexible </i><i>schema will be preferable and as a result </i><i>of these considerations IBM Informix </i><i>supports JSON (where each data object </i><i>has its own schema) as first class objects </i><i>within the database.</i><br />
<i>...</i><br />
<i>Depending on where (an IoT database) is </i><i>implemented there will be rather different </i><i>requirements. However, in our opinion IBM </i><i>Informix is well-suited to IoT regardless </i><i>of where it needs to be deployed. At the </i><i>device and gateway level the product </i><i>has a long-standing reputation as a “fire </i><i>and forget” database that can be easily </i><i>installed and maintained while, in the </i><i>centre, it has the sort of capabilities and </i><i>performance characteristics that suit </i><i>hybrid operational/analytic environments. </i><i>On top of this, native time series and </i><i>geo-spatial support are requirements for </i><i>many IoT use cases, so IBM Informix is </i><i>well-placed in this market.</i><br />
<i><br /></i>
Very cool indeed! Here's a link to the full Bloor Report:<br />
<div style="text-align: center;">
http://www.ibm.com/common/ssi/cgi-bin/ssialias?htmlfid=IML14542USEN</div>
<br />
<br />
<i><br /></i>art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com2tag:blogger.com,1999:blog-3392197078789890903.post-59110682155050004142015-05-08T15:23:00.000-04:002015-05-08T15:23:18.370-04:00LVARCHAR not long enough?<span style="font-family: Arial, Helvetica, sans-serif;">I've got some news for you! If you had been to the IIUG 2015 Conference last week (April 26-30 2015) you might already know this. If not, relax, 'cause I was there.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Question: Have you ever had a requirement for a character type that can hold strings longer than the 32K limit on the LVARCHAR type? Don't want to have to deal with the hassles of storing and retrieving a BLOB or SLOB?</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Welcome to Informix version 12.10! I'm not sure in which sub-release this was actually implemented, but it definitely exists in .xC4 and later. There is a new extended type, longlvarchar which is limited to 2GB strings! Strings under 4K are stored in-table like ordinary LVARCHAR values, but longer strings are moved, invisibly, to a SmartBLOB Space. So, you can now declare:<br /></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">create table big_stuff (</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"> really_long_string longlvarchar,</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"> .....</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">);</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Very cool! This is a short one, I know, but it's been a busy week getting back into the normal swing of days after returning from San Diego, Mother's Day is ahead, and a short trip to visit a client next week, so I'll have to fill you all in on other things later. TTFN.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com1tag:blogger.com,1999:blog-3392197078789890903.post-49438112464072091282015-03-20T09:19:00.001-04:002015-03-20T09:20:55.041-04:00News from the IIUGHere's a link to an announcement from the IIUG Board of Directors talking about this year's IIUG 2015 Conference celebrating the 20th Anniversary Year of the IIUG:<br />
<br />
<a href="http://www.iiug.org/news/releases/150320%20IIUG%20Back%20to%20San%20Diego.pdf" target="_blank">IIUG News March 20, 2015</a><br />
<br />
Twenty years! Wow. Who knew when the founding members of the IIUG, Lester Knutsen, Carlton Doe, Walt Hultgren, Malcolm Weallans, and Cathy Kipp sat down to plan a new Users' Group for customers of a small database company who's products were just beginning to hit their stride that their idea would grow into the singular most influential users' group at IT giant IBM!<br />
<br />
Are you planning to attend the IIUG 2015 Conference in San Diego on April 26-30? If so, have you registered and booked your room yet?<br />
<br />
If not, why not? IIUG 2013 was at the same location in San Diego, California and we all loved it. The staff took very good care of us, the food was excellent (how could it not be with Stuart Litel planning the menu - talk about the ultimate foodie!), the sessions were great as were the tutorials on the last day, hands-on labs with IBM Informix legends to guide us and let us play with features we don't get to use in our daily grind, and we got to speak with IBM executives and developers and learn about the future of Informix! IIUG 2014 Conference in Miami Florida was just as good.<br />
<br />
Best of all, we get to do it all again in five weeks at IIUG 2015! <br />
<br />
If you don't come this year, not only will you miss the best source of Informix information and networking in the world, but, besides all that, you will miss my <span style="color: red;">secret</span> announcement! I will be announcing a new product at IIUG 2015 that will give your organization a leg up on its competition! If you are not there, you may not learn about it until months later and will have missed the one and only opportunity to Beta test! Want a hint? OK, just one in the form of a question: Could your organization benefit from being able to get its analytics completed faster and at a FAR lower cost than anything you may have or contemplate purchasing? DUH! <br />
<br />
See you in San Diego!<br />
<br />art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com0tag:blogger.com,1999:blog-3392197078789890903.post-60620956485399051152014-11-19T08:51:00.002-05:002014-11-19T08:51:41.824-05:00On Hybrid Database Development<span style="font-family: Arial, Helvetica, sans-serif;">At the recent IBM Insight conference in Las Vegas I presented a session entitled: </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<div style="text-align: center;">
<span style="font-family: Arial, Helvetica, sans-serif;">"My Data is Relational </span><span style="font-family: Arial, Helvetica, sans-serif;">But My Coders Want to Use JSON! </span><span style="font-family: Arial, Helvetica, sans-serif;">Help!"</span></div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Over 30 development managers and developers attended. When asked most said they attended because this was a common problem that they are all either dealing with already or expect to have to deal with soon. </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Here, as well as I can translate a presentation to text, is what I had to say:</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">I assert that JSON and other semi-structured data formats present unique challenges for organizations. In order to take advantage of these new structures and the development paradigms that they support and encourage and integrate them into our existing systems, we wrestle with three alternatives:</span><br />
<br />
<ol>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Keep these new data and the apps that utilize them independent of our legacy data and keep our legacy apps independent of this new data</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Perform ETL/ELT frequently to maintain all of this data in both relational and semi-structured databases.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Develop applications that can access multiple data sources concurrently.</span></li>
</ol>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">I maintain that none of these alternatives is acceptable and I want to propose a better path to future application and database development. First a digression to define terms which you can feel free to skip.</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<h3>
<span style="font-family: Arial, Helvetica, sans-serif;"><b>There are many classes of data:</b></span></h3>
<div>
<ul>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Structure data</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Unstructured data</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Semi-structured data</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Time stamped data composed from any data class</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Geographically located data </span><span style="font-family: Arial, Helvetica, sans-serif;">composed from any data class</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Spatially located data </span><span style="font-family: Arial, Helvetica, sans-serif;">composed from any data class</span></li>
</ul>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><u>Structured Data</u> refers to the data we have in relational databases for the most part. Despite the predictions of pundits relational databases are here to stay. There are several well defined application segments for which relational databases are the best tool for the job.</span></div>
</div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><u>Semi-Structured Data</u> is data that may have a natural structure to it but where the structure may vary from one data element to another. This can also include elements where part of the information is structured while other sub-elements are unstructured.</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Currently the most popular format for semi-structured data is known as JSON for JavaScript Object Notation. JSON is a key:value record or document format that is quickly becoming a new standard for data interchange replacing CSV, XML, and other interchange formats. JSON is the basis for the RESTFUL web service protocol. It is more space efficient than XML and easier to parse. In addition, it is supported by a binary format, BSON, that is even faster to parse and extract individual sub-elements. JSON is a dynamic schema format where each record, or document in JSON terminology, contains the schema details for the document which can be different from one document to another. This promotes and supports RAD or Rapid Application Development.</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">MongoDB has become the most popular of the JSON databases or stores. It saves JSON documents in BSON format and produces JSON output to consuming clients. There are several sets of interoperable development tool sets known as "stacks" the most popular of which is call the MEAN stack as well as client libraries for most common languages.</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">MEAN stands for MongoDB, ExpressJS, AngularJS, and Node.js.</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<h3>
<span style="font-family: Arial, Helvetica, sans-serif;"><b>Class time over:</b></span></h3>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">On to the problem. We all have TBs of relational data. Our experienced developers already know SQL and our schema. Some new development still fits with structured data. There is no sense in moving OLTP or structured DW data out of relational systems. There is no financially supportable way to rewrite all of our existing systems from scratch just to take advantage of new paradigms. Many new applications written primarily to use semi-structured data will need to present the relational data we've been collecting for the past 30+ years.</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Many of us are capturing TBs of semi-structured data already. New developers that we want to hire only want to work in the NoSQL space. Some new applications are natural fits for semi-structured data. RAD techniques require schema flexibility to succeed. Many new and existing relational based applications could take advantage of all of that semi-structured data to expose new features without a massive redevelopment effort.</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">How to get relational data into MEAN stack applications and JSON data into C/C++/C# applications is the problem. Traditionally when faced with data in multiple silos we would either use ETL techniques to copy the data from one silo to another or we would write data access layers using multiple libraries. </span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">ETL is time consuming and error prone. We may have to sacrifice precision or internal relationships in the target system. Maintaining a timely, consistent, view is a major constant effort and expense. Data duplication is itself an expense. Fast storage is not cheap!</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">We can't just move everything into MongoDB either. MongoDB like most NoSQL stores do not support multiple operation transactions, inter-object relationships (references and sub-documents are not relationships), XA transactions (so they cannot participate in transactions across multiple silos). </span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<h3>
<span style="font-family: Arial, Helvetica, sans-serif;"><b>The solution:</b></span></h3>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><b><br /></b></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">The solution is Hybrid Application Development using a Hybrid Database system using both traditional and RAD development tools. Here is what is needed from a hybrid database for this to work:</span></div>
<div>
<ul>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Access from traditional development stacks (C, C++, C#, Perl, etc.)</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Access from MEAN and other RAD development stacks</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Full ACID compliant transaction support for all data</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Full relational integrity and data normalization support for all data </span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Ability to store structure data with a predefined schema</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Ability to store semi-structured data with a dynamic schema</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Ability to present both types of data to both stacks in the native format of the data</span></li>
<ul>
<li><span style="font-family: Arial, Helvetica, sans-serif;">JSON as JSON</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Tables as tables</span></li>
</ul>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Ability to present both types of data to each stack in its native format</span></li>
<ul>
<li><span style="font-family: Arial, Helvetica, sans-serif;">JSON as table data for traditional tools</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Table data as JSON for RAD tools</span></li>
</ul>
</ul>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Some NoSQL stores can handle ACID consistency but most can only manage "eventually consistent" transactions. Most, like MongoDB, can only guarantee consistent transactions and rollbacks for a single document, not for multiple documents in a collection nor for transactions that span multiple collections. Some NoSQL stores can support SQL or an SQL-like query language, however, they do not return data as rows and columns which is what is expected by SQL database access code. </span></div>
</div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Some RDBMS systems can:</span></div>
<div>
<ul>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Store JSON (or a binary form of it)</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Store a collection as a collection (rather than as a column type)</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Manipulate JSON fields within a document</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Create indexes on JSON fields within the documents in a collection</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Support referential integrity between JSON document fields and relational columns</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Join JSON documents to relational tables</span></li>
</ul>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">But most cannot do it all. I believe that these capabilities are the future of database and application development. Today there is one RDBMS product that <b>CAN</b> do it all:</span></div>
</div>
<div>
<ul>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Accept connections from MEAN stack and other MongoDB clients <i>without modifying the application code</i></span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Accept connections from relational SQL clients</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Support transactions on relation tables and JSON collections that include multiple tables/collections and multiple rows/documents</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Allow joins between JSON collections and other JSON collections or relational tables</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Enhance MEAN applications to support issuing SQL statements and return data in JSON format for those clients</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Permit SQL clients to treat fields in JSON collection documents as ordinary columns</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Support JSON and BSON as class 1 native data types for use as columns in relational tables or as a type to define a collection</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Direct RESTFUL interface to expose all data as web services without middleware</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Store JSON collections as collections</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Permit any MongoDB aware client to treat relational tables collections</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Support most MongoDB DDL and server management commands (including sharding)</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Auto create databases and collections just as MongoDB does, on the fly</span></li>
</ul>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">I know I'm sounding like a salesman, but I have nothing to sell you other than an idea and my help to achieve it in your organizations, so, bear with me. What is this magical database system? It is the latest incarnation of one of the first RDBMS products in the marketplace:</span></div>
</div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<h3>
<span style="font-family: Arial, Helvetica, sans-serif;"><b>Informix Dynamic Server v12.10.xC4 from IBM</b></span></h3>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Informix, aka IDS, has all of the required features I mention above but it brings much more to the table:</span></div>
<div>
<ul>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Larger documents than MongoDB</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Larger databases than MongoDB</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Industry leading data replication technology</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Four classes of data replication that can all work together</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">More capable time proven sharding technology than MongoDB</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Data distribution and centralization capability</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Support for Timeseries data</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Support for Geospatial data</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">The only database system that can combine Timeseries and Geospatial data to track your IoT data through SpaceTime</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">User defined data types that perform as well as native types</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">World class OLTP transaction rates</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Traditional and MEAN stack applications can connect and use both JSON and SQL data in their own native formats</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Centralized databases up to 128PB</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Distributed databases without size limits</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Server fail over and load balancing fully configurable using SLA specifications</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Five 9's reliability</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Near Zero downtime</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Upgrade server versions without downtime</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Instantly bring up additional servers to load balance during peak periods</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Support large numbers of concurrent transactions</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Row level locking (MongoDB locks entire collections only)</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Extremely tunable engine</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Autonomic features for low maintenance overhead and to permit unmonitored operations</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Highly embeddable</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Optional compression of data and index keys</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Advanced query optimizer</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Multiple tenancy</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Informix Warehouse Accelerator returns data up to 1200X faster than the base server for complex queries over huge data sets</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Timeseries in JSON</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">GeoJSON support in addition to native GeoSpacial support</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Lucene text search on JSON documents and relational tables</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">High speed data loading technology for faster loads of streaming data</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">MQTT integration to link to IoT devices</span></li>
</ul>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
</div>
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;">Wrap up:</span></h4>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: center;">
<span style="font-family: Arial, Helvetica, sans-serif;"><b>The future of software development will require hybrid applications!</b></span></div>
<div style="text-align: center;">
<span style="font-family: Arial, Helvetica, sans-serif;"><b>The future of software development will require hybrid databases!</b></span></div>
<div style="text-align: center;">
<span style="font-family: Arial, Helvetica, sans-serif; font-size: large;"><b><br /></b></span></div>
<div style="text-align: center;">
<span style="font-family: Arial, Helvetica, sans-serif; font-size: large;"><b>The future is here now!</b></span></div>
<div style="text-align: center;">
<span style="font-family: Arial, Helvetica, sans-serif; font-size: x-large;"><b>Why wait?</b></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com1tag:blogger.com,1999:blog-3392197078789890903.post-14485041913167601852014-11-03T16:20:00.002-05:002014-11-03T16:24:55.022-05:00China is standardizing all new database applications on Informix!Here's the "world" shaking news I promised. IBM and China have come to an agreement whereby IBM will share the code for Informix with a Chinese software house, GBASE, who will modify its security code to conform to Chinese government standards. In turn China will be building all future database projects using Informix.<br />
<br />
The agreement allows for sharing innovations to the Informix code made by either party to be shared by both.
If anyone wanted proof that Informix is here to stay and is NEVER going away, this is it. China is the world's second largest market and probably the fastest growing technology market. The government of China does not want any software or hardware used for government projects or enterprises that it does not control, fearing Western spying through the systems it uses. So, they are standardizing on Informix. Cool!<br />
<br />
<b>IBM Press release dated: October 29, 2014</b><br />
<br />
<b>GBASE and IBM to collaborate on locally innovated database in China </b><br />
<br />
IBM (NYSE: IBM) and General Data Technology Co.,Ltd, known as GBASE announces an agreement today, to create a locally innovated database product for the China marketplace. In support of the China government's national technology agenda, GBASE will develop and sell this local innovation based on IBM Informix technology.
The agreement extends the reach of IBM’s Informix database technology into this market by providing a localized solution to better address the rapidly evolving needs of Chinese businesses. The agreement permits GBASE to build and license their own version of IBM Informix database, which will be offered to clients in the Chinese market as a stand alone product solution.
The China market for database technology is estimated to be in excess of $700m according to IDC. The partnership between IBM and GBASE can fuel the growth of this market by creating a best in class database solution tailored to the unique requirements of the China marketplace.
“This agreement confirms IBM’s innovation and commitment to growth in emerging markets in general and China specifically”, states Sean Poulley, Vice President, IBM Databases and Database Management. "Our intent is to help partners and clients gain competitive edge and transform their business with innovative database technologies in China, with China, for China”.
Informix is one of the world’s most widely used databases, supporting clients who range from the largest multinational corporations to many regional and local small businesses. It is widely deployed in the retail, banking, manufacturing and government segments, all of which are important growth areas in China today.
Informix is well known for its innovative design, which enables a single platform that powers both OLTP and OLAP workloads for real-time analytics, scales easily for cloud environments and provides continuous availability. It's renowned for extremely high levels of performance and availability, distinctive capabilities in data replication and scalability, and minimal administrative overhead. With this partnership agreement these advantages will be made more readily available to the fast-growing Chinese market.
art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com3tag:blogger.com,1999:blog-3392197078789890903.post-83985169076146976712014-11-02T19:47:00.000-05:002014-11-02T19:47:29.616-05:00News from the Informix WorldAnd I do mean world.
Well it's been a long time since my last post. Over six months. I just got back from the IBM Insight Conference in Las Vegas NV (formerly the IBM Information On Demand Conference) and there is some big news.
IBM announced their new vertical cloud development stacks called BlueMix. There is a BlueMix for timeseries data, BlueMix for mobile apps, BlueMix for in-memory Warehouse data analytics, BlueMix for Watson, BlueMix for ... well you get the idea. The stacks include access to a cloud server with an application appropriate database system (Cloudant, DB2 BLU Accelerator, Informix, etc.), development tools, access to IBM and some third party analytics tools, etc. You can create a BlueMix account for free and try it out. If you like it and develop something on it for yourself, your company, or for distribution then you can work out a commercial deal with IBM for unlimited access and more resources.
"Wait", you say, "did you say Informix as part of an IBM Cloud service offering? They just slapped that in there to make us noisy Informix grumps happy. Right?" Nope. If you set up a BlueMix for Timeseries Data configuration you get a fully functional Informix database server (not just timeseries support, though it's not clear if this includes IWA). While DB2 is available, you have to ask for it, the only full function RDBMS with a BlueMix configuration ready to go is Informix.
Very cool! More soon when I will address the "world" teaser.
art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com0tag:blogger.com,1999:blog-3392197078789890903.post-1574386059071505242014-04-17T19:54:00.000-04:002014-04-17T19:55:40.180-04:00Heading down to Miami soon!It is the middle days of Passover week and I am trying to squeak some work out between the first Seder days and the coming Sabbath. Part of that I am making final preparations to go down to Miami to the 2014 IIUG Conference. As others have said, this is the premiere conference for users of IBM's Informix database systems. I am excited about the coming conference, not just because I get to participate in one of my favorite activities - that being talking by presenting two sessions and helping out with a third - but I am hoping to hear about new Informix features for the next release.
Already this year we have gotten some neat stuff in v12.10 through the first three releases:
- Support for JSON and BSON data types.
- Support for developing hybrid applications that incorporate both structured and semi-structured data together.
- The ability to dynamically expand the buffer pools to handle unexpected data demands.
- Improved dynamic logical log management.
- Automatic management of the number of CPU VPs.
- Automatic expansion of the physical log to handle unexpected transaction volumes.
- The ability to specify that new tables should be placed in a specific dbspace or should be automatically partitioned across a number of dbspaces instead of defaulting to the dbspace in which the database was created.
- SHMADD now automatically doubles every time 16 new segments have been added to the server.
- The client side environment variables INFORMIX_CONTIME and INFORMIX_CONRETRY are now also ONCONFIG parameters that set the server's default connection timeout behavior.
- The CPU VP private memory cache is now dynamic using VP_MEMORY_CACHE_VP as a starting value. The optional parameter STATIC can be added to the end of the size to revert to the previous fixed size behavior.
- New onstat -g bth & -g BTH reports to better monitor resource contention causing blocked sessions.
- Compression for indexes.
- Automated compression for new tables.
I hope to see more in Miami. I hope to see you all there as well!
art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com0tag:blogger.com,1999:blog-3392197078789890903.post-33859621881582191802014-01-16T14:15:00.001-05:002014-01-16T14:15:20.840-05:00The myth of the new and other fallacies <span style="font-family: Arial, Helvetica, sans-serif;">In Kohelet (aka Ecclesiates) King Solomon of ancient Israel wrote: </span><br />
<blockquote class="tr_bq">
<span style="font-size: 15px;"><span style="font-family: inherit;">What has been is what will be, and what has been done is what will be done, and there is nothing new under the sun.</span></span></blockquote>
<span style="font-family: inherit;">No, I haven't gone all <span style="line-height: 15px;">proselytizing </span>on you, I just want to make a point. Most of the <b><span style="color: red;">"new"</span> </b>technologies that everyone is so hot to get into to save the world are not new at all. Some are even very old. Many were tried in the past and while some were good ideas and successful in their first incarnations, many were either not successful at all or were later supplanted by other technologies that got the job done better. A few examples:</span><br />
<h3>
<b>Object Oriented Languages</b></h3>
I know, '80s technology, not new anymore. But they are still 'hot' and coders coming up today don't know their history, so here's some. Object oriented languages like C++, C##, Java, etc. encapsulate the operations associated with a data structure together with the structure itself. In the 1960s, two new programming paradigms emerged. These were Structured Programming and Modular Programming. Structured programming concentrated on eliminating non-linear controls from software code. It was characterized most simply as "No goto statements, anywhere, anytime!" and was championed by such notables as C.Bohm, G. Jacopini, Edsgar Dijkstra, Michael Jackson (no, not the singer) and Issac Nassi and Ben Schneiderman (who together developed the Structure Chart or Nassi-Schneiderman Chart sometimes called Chapin Chart). <br />
<br />
At around the same time other notables like Niklaus Wirth (the developer of Pascal, Modula2, Modula2, Oberon, and the Lilith computer system) were proposing the concept of Modular programming. The idea was to encapsulate distinct operations into subroutines and to gather like subroutines with similar or related functionality and/or purpose into reusable concrete units or 'modules'. Wirth went so far as to develop a programming language that supported both structured programming and modular programming techniques (and did not include a GOTO statement at all!) To this day, Modula2 is still my favorite of the dozen or more programming languages I have learned and used.<br />
<br />
These two paradigms sought and succeeded to reduce the complexity and redundancy in large software projects and to permit larger groups of programmers to cooperate in the production of complex projects. Combine Structured Programming with Modular Programming and add language support for their concepts and voila you have an Object Oriented Language.<br />
<h3>
<b>Columnar Database</b></h3>
In the early 1980's I needed to write a custom database for an application. After research I found something that matched the requirements of the project perfectly. It was called, variously, and Inverted Index, Inversion Table (no, not the exercise/torture device), or Inversion Database. The idea was to build indexes of all of the fields of a set of data records without having the entire record present at all, only the indexes. this meant that as long as you only wanted the values from a subset of the fields in a record you could access the data very quickly with reduced IO which was very expensive at the time. Can you say Columnar Database?<br />
<h3>
<b>Key:Value Store or Database</b></h3>
In 1979, Ken Thompson of UNIX fame wrote a database library for UNIX called dbm which used a hash table of key values to index data records. The records had no particular structure. Any interpretation of the contents of the record were application dependent. This library is the UNIX dbm database library system.<br />
<br />
In 1986 the Berkeley UNIX team developed ndbm which added the capability to have more than one database open in an application. Unlike dbm, ndbm stores the data value in the hash table directly which limits the size of the key:value pair and of the database as a whole.<br />
<br />
In the late 1980's and early 90s Margo Seltzer and Ozan Yigit worked to improve on dbm and ndbm and created Berkley DB. BDB was still a hash managed key:value store. It's main innovation was the ability to be accessed concurrently by multiple users without corrupting the database. <br />
<br />
This is virtually the same as the "ground breaking" technology in MongoDB, Cassandra, Virtuoso, etc.<br />
<h3>
<b>Graph Database</b></h3>
<span style="font-family: inherit;">In 1969 Charles Bachman published a paper describing a new database model to replace the popular herarchical model at the Conference on Data Systems Languages (CODASYL). He named it the Network model. Wikipedia defines the network model as <span style="line-height: 19.1875px;">a </span>database model conceived as a flexible way of representing objects and their relationships. Its distinguishing feature is that the schema, viewed as a graph in which object types are nodes and relationship types are arcs, is not restricted to being a hierarchy or <span style="font-family: inherit;">lattice<span style="line-height: 19.1875px;">.</span></span></span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><span style="line-height: 19.1875px;">Wikipedia defines a </span><span style="line-height: 19.1875px;">graph database</span><span style="line-height: 19.1875px;"> is a </span>database<span style="line-height: 19.1875px;"> that uses </span>graph structures<span style="line-height: 19.1875px;"> with nodes, edges, and properties to represent and store data. By definition,</span><span style="line-height: 19.1875px;"> a graph database is any </span>storage system<span style="line-height: 19.1875px;"> that provides index-free adjacency. This means that every element contains a direct </span>pointer<span style="line-height: 19.1875px;"> to its adjacent element and no index </span>look ups<span style="line-height: 19.1875px;"> are necessary. </span></span><br />
<span style="line-height: 19.1875px;"><span style="font-family: inherit;"><br /></span></span>
<span style="line-height: 19.1875px;"><span style="font-family: inherit;">Sounds awful familiar to me. By the late 1980's network databases and hierarchical databases were largely replaced for general purpose database use by databases that ostensibly followed the Relational Model described by Edgar F. Codd in a paper published in 1969 because their schema were fixed in the physical implementation of the data making it virtually impossible to make changes to the schema as applications evolved.</span></span><br />
<h3>
<b style="line-height: 19.1875px;">Getting to the Point</b></h3>
<span style="line-height: 19.1875px;">The point of this blog post is that there were reasons that we used these technologies "back in the day" (as my favorite reality TV stars say) and there were reasons that we abandoned them and moved on. Some of these technologies never went away because they have good and valid applications to solve specific data storage and retrieval problems. But these were not the technologies that conquered the database world. The Relational Model, or as several friends of mine insist, a poor implementation of something that vaguely resembles the Relational Model and is more properly called the SQL Model, won that battle and for good reason. So, let's not all jump on the same bandwagon without doing due diligence and examining in detail what technology best fits the problem. </span><br />
<span style="line-height: 19.1875px;"><br /></span>
<span style="line-height: 19.1875px;">One of my favorite sayings is "Use the right tool for the right job!" I am also a big proponent of avoiding the Yankee Adjuster Problem where, as the saying goes, "When all you have is a hammer, everything starts to look like a nail!"</span><br />
<span style="line-height: 19.1875px;"><br /></span>
<span style="line-height: 19.1875px;">So, let me finish as I began, there is nothing new under the sun! Or as I am fond of replying when asked "What's new?" - "There's nothing new, just the old stuff come back to haunt us!"</span><br />
<span style="line-height: 19.1875px;"><br /></span>
art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com5tag:blogger.com,1999:blog-3392197078789890903.post-70404734067048277062013-11-12T14:05:00.000-05:002013-11-12T14:05:00.879-05:00<span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;">Folks,</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;" /><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;">Everyone is invited to attend our next Webcast on Tuesday December 17, 2013 at 2PM </span><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;">EST. </span><br />
<span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;">Please share this with your other Informix DBA's.</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;" /><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;">I will present UPDATE STATISTICS in depth, dostats, and my other free utilities for monitoring and tuning an Informix database in his utils2_ak package. Topics covered will include:</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;" /><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;">- Table Level statistics and data distributions</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;">- Fragment Level statistics and data distributions</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;">- Update statistics for procedure/function</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;">- Providing data distributions for User Defined Types</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;">- Dostats and the art of balancing distribution quality with runtime performance</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;">- Other useful utilities in the utils2_ak package</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;" /><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;">Click here to register - </span><a href="http://www.advancedatatools.com/Informix/NextWebcast.html" style="background-color: white; color: #1155cc; font-family: arial, sans-serif; font-size: 12.800000190734863px;" target="_blank">http://www.advancedatatools.<wbr></wbr>com/Informix/NextWebcast.html</a><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;" /><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.800000190734863px;">To view our past Informix Performance Tuning Webcasts visit -</span><a href="http://www.advancedatatools.com/Informix/Webcasts.html" style="background-color: white; color: #1155cc; font-family: arial, sans-serif; font-size: 12.800000190734863px;" target="_blank">http://www.advancedatatools.<wbr></wbr>com/Informix/Webcasts.html</a><br />
<br />
<div class="yj6qo ajU" style="background-color: white; color: #222222; cursor: pointer; font-family: arial, sans-serif; font-size: 12.800000190734863px; outline: none; padding: 10px 0px; width: 22px;">
</div>
art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com0tag:blogger.com,1999:blog-3392197078789890903.post-26171055491441390552013-09-25T09:59:00.002-04:002013-09-29T11:32:37.343-04:00Informix 12.10.xC2 Rules - all others drool!If you missed the version 12.10.xC2 Beta EVP and the IBM Informix Chat with the Labs on 9/25 then you are in for a shock!<br />
<br />
IBM has been talking about Big Data in reference to Informix for several years ever since someone realized that the TimeSeries Datablade capabilities of Informix, developed in the mid '90s, is quite literally about very big data. However, some members of the Informix user community have taken IBM to task pointing out that when folks talk about Big Data they are usually discussing unstructured data stored in NoSQL databases like Hadoop, MongoDB, and others. So, what did you miss? <br />
<br />
Informix is now the ONLY database that successfully integrates unstructured and structured data together in a single database platform. Working with the developers of MongoDB, IBM has integrated MongoDB's BSON data type into IDS as a native type and implemented the MongoDB interface protocols within Informix. You can now do the following:<br />
<br />
<ul>
<li>Store MongoDB collections in Informix as BSON types.</li>
<li>Query both MongoDB collections and Informix relational tables in Informix from both MongoDB clients and Informix clients.</li>
<ul>
<li>Mongo clients see collection formatted key:value data from collections and from tables.</li>
<li>Informix clients see data rows from tables and collections. Missing collection fields are mapped to NULL values.</li>
<li>Dynamic Informix clients can determine the current schema of collection data.</li>
</ul>
<li>Shard tables and collections across multiple servers. Not only can you query the data across the shard farm but when you insert data to sharded tables or collections the local server determines which shard the data should live on based on the definition of the various shards. This is VERY similar to the horizontal partitioning that Informix's old XPS engine provided.</li>
<li>All data, including Mongo collection data, is included in Informix's ACID compliant transaction handling! No one else can guarantee consistency in a NoSQL data store!</li>
<li>Informix compression works with MongoDB data. Because of the redundant key names inherent in the key:value nature of collection data compression rates are even more impressive than for table data! Only Informix can save you 70-90% of the storage you would otherwise use for unstructured data in any other MongoDB or similar NoSQL database!</li>
</ul>
Combine this with features that Informix has had for a long time:<br />
<ul>
<li>Timeseries data</li>
<li>GeoSpacial data</li>
<li>BTS web-like text search capability</li>
<li>Informix Warehouse Accelerator to improve complex query times by 100x to 4000x!</li>
<li>Hierarchical Data Replication Secondary server (active or passive).</li>
<li>Multiple Remote Secondary replicated servers (active or passive).</li>
<li>Active or passive Shared Disk Secondary servers for load balancing, application isolation, and nearly instantaneous failover.</li>
<li>Transaction survival - failover primary server functions to a secondary without loss of running transactions. This means absolutely uninterruptable transactions!</li>
<li>Enterprise Replication</li>
<ul>
<li>Multiple peer replicated servers on heterogeneous hardware</li>
<li>Master-Slave replication in both Scatter and Gather configuration</li>
<li>Combine with Sharded Query capability to maintain local data on local servers but query from a central location without a master copy</li>
</ul>
</ul>
I don't think I've run out of features, but I have run out of the time I've allotted to myself for this post. <br />
<br />
To wrap up: Informix is now positioned to be what its users have always considered it to be: The best damn database product on the market! This should finally satisfy a certain community member based in Chicago who is usually rather vocal about Big Data.<br />
<br />
<br />
<br />art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com4tag:blogger.com,1999:blog-3392197078789890903.post-26107221801663456632013-04-08T11:38:00.003-04:002013-04-08T11:38:33.012-04:00What's the hottest new feature in Informix 12.10?<span style="font-family: Arial,Helvetica,sans-serif;">In the next edition of IBM Data Mag (http://ibmdatamag.com/), Lester Knutsen gives us a quick overview of the new Informix version 12.10 Grid Query feature.</span> <span style="font-family: Arial, Helvetica, sans-serif;">This, I think, is the hot new feature! Lester refers the feature back to a similar XPS feature that allowed one to distribute a database across many servers and issue queries to the entire group of servers treating the entire distributed data set as a single database. "Can't I do that with any RDBMS that supports distributed queries?", you may ask. The simple answer is, "Yes, you can." But it is not simple. </span><br />
<br />
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;">What every serious RDBMS can do</span></h4>
<span style="font-family: Arial,Helvetica,sans-serif;">All major RDBMS's can allow you to query multiple servers using a UNION or UNION ALL to create a query that will gather the data from multiple servers. So, what's so new in Informix v12.10? Go read Lester's article when it comes out in a couple of weeks for details. It is really cool.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<h4>
<span style="font-family: Arial,Helvetica,sans-serif;">Why do we care?</span></h4>
<span style="font-family: Arial,Helvetica,sans-serif;">In 2000, Informix Corp. leaked that it was working on a project to merge the high transaction rate and full ACID support in Informix Dynamic Server 7.31 and the Object Relational and expansion features of Informix Universal Server 9.30 with the distributed nearly unlimited database and distributed query shared nothing capabilities of Informix eXtended Parallel Server (XPS) to create the ultimate database server in a project that Informix called Arrowhead. It didn't happen. It didn't happen, not because the technology and the expertise were not there, but because a year later, in late 2001, Informix Corporation's database assets were purchased by IBM and the Arrowhead project was squashed. </span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Since then, for nearly twelve years now, IBM, much to its own confusion, has been diligently improving the Informix database server. For many of those twelve years Informix fans have asked IBM repeatedly when they might resurrect Arrowhead. The answer has always been the same, "Never. It's never going to happen."</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Well, good news. Like it or not, Grid Queries may not be the original technical design of Arrowhead, but along with the features added in Informix v11.xx that have long existed in XPS, conceptually and usability wise, Arrowhead is alive and well and it is here today!</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">This is a game changer. Now transactions against OLTP tables can happen locally on a local server and only tables that affect other locations (so lookup tables, inventory and warehouse levels, shipping manifests, etc.) have to be replicated using ER/GRID and the national, regional, and company wide reporting that requires access to all of the data can get it simply and quickly. </span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">With the Informix Warehouse Accelerator included in Informix Advanced Enterprise Edition, even complex Business Intelligence/Analytical processing can be performed on the massive distributed data sets using up-to-the-minute data (no ELT/ETL, Cube loading, or data summarization delay) gathered simply from the entire corporate server grid. Add to that Informix Cluster Grid's ability to cluster, replicate, and distribute data across heterogeneous servers and we have access to power and technology that no organization not using Informix can get. Not from anyone else anywhere! It will take decades before the industry Ninja will be able to tack on anything remotely like IBM Informix's Grid Query technology and then it will be a massive cludge.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">I'm stoked! See you all in San Diego in two weeks to hear more about all this!</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>art.kagel@gmail.comhttp://www.blogger.com/profile/12105385401154939025noreply@blogger.com0