Skip to main content

Scott Forstie on Db2 Mirror for i

Scott Forstie, a Db2 architect for i, talks about IBM i 7.4 and the Db2 Mirrors

Paul Tuohy: Hi everybody and welcome to another iTalk with Tuohy. So I'm sitting at the RPG and DB2 Summit and sitting face to face with Scott Forstie, a Db2 architect for i. Hello, Scott.
Scott Forstie: Good morning, Paul.
Paul: Is it still morning? It is. It's still morning. So Scott, obviously what we're going to talk about is 7.4, and I know the elephant in the room on 7.4 from the database point of view is the Db2 Mirror, okay but can I say—can we come back on that in a little bit?
Scott: Sure.
Paul: Because what-you know me being—I do have a certain interest in database, a passing interest. I like to keep up on it, but so what I'm particularly interested in is the other database stuff that's there in 7.4. I do not know that there's been a lot done on 7.4 that doesn't TR back to 7.3, so I am also particularly interested in the stuff that does TR back to 7.3 as well—
Scott: Okay.
Paul: So go forth. Tell me all.
Scott: Yeah so hopefully you'll be pleased to hear that even though we've had a monumental effort bring Db2 Mirror to realization, we found time to add enhancements to not only 7.4 but also IBM i 7.3. We call it TR6—and I need to make one point clear: This is 2019. I've been telling customers at this event of yours, and others, that we won't enhance 7.2 anymore.
Paul: Okay.
Scott: They got enhancements in September of 2018 and that's it. So the things I'm going to talk about and the other ones I'm not going to mention—only 7.3 and 7.4.
Paul: Okay.
Scott: So we like to spread our focus around to different users, use cases, situations, things like application developers; you might know a few of those.
Paul: One or two.
Scott: So pragmatic enhancements in RPG: We now support for SQL RPG precompiler and Barbara [Morris]'s RPG language itself, constants.
Paul: Okay.
Scott: Yeah, I know. A small matter, but important.
Paul: Oh yes, no. Yeah.
Scott: Yeah?
Paul: You’re looking at me. I'm smiling [laughs].
Scott: We want to keep—and we have been, I think—keeping in step with Barbara and her movement forward with RPG language, and of course SQL should be doing the same thing whether it's the precompiler for SQL but also in this case, COBOL. If you're more interested in that language, you get it too.
Paul: Yeah. Yeah I was amazed at this in the TR like when I saw COBOL coming up I was going, "what? What?? Enhancements to COBOL?"
Scott: Yeah.
Paul: Which is great, by the way. I'm sorry. I'm not knocking derogatory in any way. I mean I think it's marvelou—I think it's long overdue.
Scott: Right, and then it's not the only enhancement, so I'd encourage your listeners to go out to our developerWorks technology updates Wiki and see the full complement of features. Yours truly is the content managers there, so we take the time to describe it for the technical audience. So I really need them to go see it so they have a chance to adopt what they already own.
Paul: Yeah.
Scott: Yeah. A different example of an enhancement would on the IBM i services front. This has grown in popularity quite a bit, so we've added in a number of new features for the services: things like data areas. You can use SQL as an alternative to retrieve data area and we have full support for all the different styles of data areas. We really leverage the capability of the SQL language to overcome the idea that maybe a data area has a number or a character. Well we don't care because we can—we can implicitly convert those in either direction so—
Paul: Oh, okay.
Scott: So your programmers or sysadmins or anybody who cares about data areas can start leveraging SQL as part of what they do.
Paul: Okay so this is like an equivalent of retrieve data area, change data area.
Scott: Exactly.
Paul: Okay, cool.
Scott: Yeah, yeah. So the changing part: you'd have to combine it with QSYS2, keep command exact, but it's—
Paul: Sure.
Scott: It's right there in front of you.
Paul: Okay.
Scott: You know other things along that line: Have you ever heard of LISTAGG [laughs]? That was intent of a joke.
Paul: No.
Scott: No, right. Well at some conferences I talk about LISTAGG. Like okay, it's old news, but people don't understand we already have LISTAGG—
Paul: Okay.
Scott: Because it was a TR enhancement, OK?
Paul: Right.
Scott: So LISTAGG is building an aggregated list of values based upon whatever you want it to be. We built an example into SYSTOOLS called split. So we're providing the antithesis of LISTAGG. You've got an aggregated list; how do you pull it apart?
Paul: Okay.
Scott: You split.
Paul: Okay.
Scott: And we decided to push it into SYSTOOLS so that you could see the SQL we used. So if you want to do something similar and don't want to just start from scratch with the SQL reference, generate the source of split and you'll see how we did it.
Paul: Uh-huh. Okay.
Scott: Right?
Paul: That's neat.
Scott: So it has different applications.
Paul: Yeah. Yeah.
Scott: So teach as we go and use as we go is part of the strategy.
Paul: Yeah.
Scott: Lure you into SQL [laughs].
Paul: Oh, come on. You know you don't need to lure me in. I'm there.
Scott: Good, right where you should be.
Paul: Okay. I don't have Pivot, but I'm still there. Okay, private joke. The—so tell me something, Scott: The—so one of the things that has been fascinating me and it's probably on the—I think it was more really with 6.1 when it started to kick off, but all of this thing of the services and all of these function and everything that you're—that you're putting in there. I mean so let me start. Actually that reminds me of another question I wanted to ask you as long—but let me ask you this one first. So what's the adoption rate that you're seeing on that? Because like most of the services that are there relate like more to the ops admin side which of course—
Scott: Yeah.
Paul: I'm not involved in. So there's some of them—
Scott: Right.
Paul: I look at and I have used, but I don't use them extensively so—
Scott: Right.
Paul: But in that area, I mean is there sort of a shift going that all the people coming in to use these?
Scott:So great question, a couple of things: We've been adding these since 2010 and we got into this business because I was tired of being a hypocrite. We were telling users that user-defined table functions and views were powerful and they should use them, but looked at our offerings and we didn't have any of them ourselves.
Paul: Right.
Scott: So we started to build a couple and we were doing kind of like the "what if?" you know. We'll show how this can be done, and the reaction was quite popular and things have changed. The adoption rate has really boosted up because we started to include working examples in DAISY S. That made it, that—that closed the gap for people who maybe don't know SQL or have no interest in using SQL, but they can still use it.
Paul: Yeah.
Scott: Then others want to use SQL and they have working examples to pivot off of [laughs]. 
Paul: Okay.
Scott: Boom.
Paul: Ouch.
Scott:So the adoption rate is really quite good on that. We get a lot of—a lot of requests for enhancements as one way of measuring just—
Paul: Yes.
Scott: How interested people are.
Paul: Yeah. So the question that popped into my head then while we're doing that—and it relates and actually leads then onto the elephant in the room. Okay. So even well before 6.1—and I think probably realistically, I think back around the time of probably was 5.2-5.3—that'swhen the real, to me, the serious changes started on all the stuff with SQL. And there have been major things, at worst, every second release—
Scott: Right.
Paul: Coming in at worst, you know, with that. So do you see adoption rates on these? Like has there been sort of like an enormous veering towards—towards all of the SQL stuff, I mean—so all of the database stuff, not just SQL but all the database stuff?
Scott: It tends to be slower than I would expect, right? You mentioned V5R3, V5R4. That's when we added like complex large objects, LOBS right? And how many people have adopted LOBS? They have been there, for me, like an eternity—
Paul: Right. Yeah.
Scott: Where something else that's maybe more recent: row permissions, column masks or even temporal tables—
Paul: Yeah.
Scott: We try to pick the things that are adoptable, like there's no major, like, project that needs to be put in place before you can use these things.
Paul: Yeah.
Scott: You just decide to use them because they're there. At your conference I am happy to say people are using temporal tables.
Paul: Yeah.
Scott: I had hands go up. Didn't see anybody for masks and permissions—
Paul: Yeah.
Scott: Data security. It's been there since what 2014.
Paul: Yeah.
Scott: You know do we not care about data security? Of course we do, but we haven't yet included that in the set of technologies we use to protect the data. So it varies by topic, but it tends to always be slower than I expect [laughs].
Paul: Well isn't that part of the thing though, because you've been sort of living with it—
Scott: Yeah.
Paul: For 2-3 years before we get to see it.
Scott: Indeed. Indeed.
Paul: You know?
Scott: Yeah so as a speaker, we always have to be mindful that what seems very old to us, somebody else has never heard of.
Paul: Yeah.
Scott: It's brand new, even if it is maybe five years past.
Paul: Okay so let's get to the elephant then, okay? So for those who may not have—know what Db2 mirroring is or what a mirror is. So do you want to give them the quick blurb—?
Scott: Sure.
Paul: On it, please.
Scott: Sure. Db2 Mirror is all about continuous availability built into the operating system. We—we've had this endeavor to find a solution that again, is adoptable because the database and the operating system do the hard work. The hard work in this case is having a node pair: so two IBM i's where whatever libraries and objects the user or admin has indicated, those are kept identical, right? The data within is the same. We call it synchronous replication and that's what we've been able to achieve, you know, in adoptable high availability/continuous availability solution because those operations either succeed or fail. You choose which one would be what's known as a primary node or a secondary node. The primary node would never fail. When it can't talk to the secondary node, it's tracking, tracking, tracking and when you reestablish communication, we resynchronize the changes.
Paul: So the concept of this—and correct me if I'm wrong here, okay?—but my understanding of this was and where it is sort of different from just the concept of high availability is that it is instantaneous.
Scott: Right.
Paul: Okay so we're talking here seconds, as opposed to ten minutes or an hour or whatever so my downtime is—actually I'm not even aware that there is a downtime. 
Scott: Yeah.
Paul: Is that the concept?
Scott: That is the concept. There's—there are different use cases for Db2 Mirror, whether you're active, passive, or active active actually running—
Paul: Yeah.
Scott: That from both sides. The customer decides which one they're are starting with. Even a—maybe a use case where you want to avoid down time when you're doing hardware or software upgrades, right? You're not typically you know using both nodes but you're able to overcome this, what previously was an outage.
Paul: Yeah. Yeah.
Scott: Yeah.
Paul: It's—because I'll tell you. I mean I know when I originally found out about this I found it a—I think this is one of the biggest thing on the system in quite a while. But having said that, I do think it is at the moment—am I right in saying its not for everybody? I mean I can understand like very large customers needing this. I can understand people in very specific industries where this thing of continuity, like zero downtime, would be very important for them.
Scott: Right.
Paul: But just starting with the concept. Well for starters I need two systems.
Scott: Yes, you do.
Paul: You know like this is sort of a whole bulk of that well the small-medium businesses are—if they look at that and go it's very nice but I'm not going to buy a second system.
Scott: There's infrastructure required for added capability. There always has been. In this case like you point out, you have to have two partitions but you don't necessarily have to have two power system.
Paul: Oh, okay. Yeah.
Scott: You need to have some way to connect the two. This is called RoCE: RDMA over converged Ethernet. Wow, that's a mouthful [laughs].
Paul: Oh, you guys really have to work to get something to fit in the word RoCE.
Scott: Node direct memory access over converged Ethernet. Yes. An acronym within an acronym.  
Paul: Yes. 
Scott: We overachieved [laughs].
Paul: Okay. Okay so as part then of the—because I know you guys, you beta all of this and everything and obviously it isn't a thing of where you guys develop something and say "oh, put it out there and we hope people will start to use it." So do you already have a whole bunch people who have been chiming for this?
Scott: Oh yes. Yeah. Not surprising like you're already alluded to, some clients have a mandate or a requirement for availability, right? So this is now a very real option for them to consume. So they have definitely been ones who have been talking to Team IBM i, most frequently understanding what is our plans, what's our strategy, where we're headed for this topic and now there's one more option in the high availability arena, known as Db2 Mirror.
Paul: Yeah. It really is cool. Just in case for, you know, for the people listening by the way, I do know through colleagues of mine banking in China that this is now becoming a legal requirement. It's a government requirement on the banks.  
Scott: Right.
Paul: They had a couple of screw ups at banks and the good old Chinese government stepped in and said this is how you have to get your house in order, and you know, you've got to be able to do it.
Scott: And it makes sense.
Paul: Yeah.
Scott: We in the industry we've been talking about 24/7 for a long time—
Paul: Yeah.
Scott: Right but we know it wasn't actually 24/7.
Paul: Yeah.
Scott: You know, now it can be.
Paul: Yeah so do you see it Scott as being—I mean is this is a replacement for high availability or is it in conjunction with high availability?
Scott: The next chapter has yet to be written. I think there's room for everybody at this table, and part of the reason I say that is Db2 mirror in its initial release is something that constructed to run within your datacenter, right?
Paul: Right.
Scott: There's an adaptor that connects to IBM i, so that's, you know—there's no disaster recovery component of that.  
Paul: Yeah.
Scott: It's in the same place, right? So the clients should look at what is their strategy and requirements. You've said some don't need this kind of level of support, right?
Paul: Right.
Scott: That would another thing that you factor in.
Paul: Yeah. Okay, Scott: well listen, we've come to the end of this. This is going to be a first for me you know, because I always end these on the personal note—
Scott: Yeah.
Paul: And I was talking to you afterwards because we've done a few of these before and I was sort of saying so what personal thing are we going to end on this time, Scott? So go on: Tell them the personal thing we're going to end on, Scott.
Scott: The personal thing that we're ending on is that there's nothing to report in this topic. The effort required to get IBM i 7.4 out the door has been a monumental, not for myself only, but also my teammates so we're looking for a nice summer respite after.
Paul: So basically for the last year, work aside, you've had no life.
Scott: Yes.
Paul: And on that happy note [laughs]. So on that happy note, Scott, thank you for taking the time out of your busy schedule. You can consider the conversation we just had your vacation for 2019. Okay everyone, that's it for this iTalk. Tune in again for the next one. Thanks, everybody. Bye for now.

Delivering the latest technical information to your inbox.