 It's indeed a very reasoned duty for me to welcome my old friend, Professor PCP Bhat. I'm sure you would have read his small brief that I had circulated in the mail. So I won't waste your time and his time going through further details. But let me tell you that he has been an educationist and a researcher, par excellence, has been mentor to many people like me. And it is very nice of him while he was coming here, primarily to meet with Professor Zuzar Vasi and interact with the nano group. He agreed to give this talk here. You will notice that he is trying to combine two rather difficult and cutting edge technology areas. One is the development of what you may call hardware components such as multiple cores and so on. And the other is hard problems in data management. So I'm also looking forward to listening to him. We had to unfortunately advance this session because of the faculty meeting at three o'clock. And he has said that he will try to complete this session by three o'clock. But in case it extends because of either question answers or interaction, I would suggest that the faculty members who are attending, if they have to leave at three o'clock for the faculty meeting, otherwise you'll carry on. Thank you so much. Over to you. Well, I've never been wired as much as I am today. That's all right. I guess I take it in stride. What I'm going to be talking about is the in-memory data management and the broad outline of what I'm going to be presenting here is a few historical notes. And the reason why I do believe history is always important is because thoughts actually at a certain point in time emanate but don't get immediate propagation. And it is subsequently that you find their propagation happening. And those are the ones that ultimately become simply accepted norms of designing things. So that will be the reason why I'll be talking about the historical notes. And there is a certain kind of theoretical basis to everything that happens in the in-memory databases and data management. So I'll be touching upon some of the theoretical aspects related to it. I will also be indicating to you the enabling technologies that make it possible. Basically, we'll look at some of the architectures and of course the kind of strategies that are employed. I will also briefly touch upon the cloud context and indicate to you a couple of real-life examples. Finally, we will conclude. So that's broadly the outline of my presentation. I like to begin by saying that at the end of the day any computing that you may be able to do at the moment is delimited by the fact that it has to be Turing computable. In other words, it is important to bear in mind that there is nothing at the moment that we with our present knowledge can in fact do in terms of computing. I am being very correct in saying in terms of computing which cannot and possibly be not achieved using a Turing machine. So that's where our limitations at the moment are. One of the characteristics of the Turing machine is of course the infinite memory. So one of the things that we do believe that all computing would be facilitated immensely and very difficult problems can in fact be attempted provided we make an assumption that the available memory is infinite. The other point which I like to make in the context of parallel computation very often parallel computation is considered to be the panacea for you know some difficult problems or whatever. Currently, the only parallel problems that we can with any degree of confidence say can in fact the parallel strategies can be considered to be operational or working if there is a corresponding capability to serialize and prove that or it will be open to verification in the context of serializability. It is very important to bear in mind that there is nothing that you can actually prove in the parallel computation which we can say does this or that with any degree of definiteness unless you can also ensure that there is a corresponding serializable model for that computation. Then important point which I want to make is that if you carefully analyze the first order predicate logic allows you to actually be able to simulate a Turing machine. The evidence of it lies in the fact that there was a programming language called prologue which was based on logic programming which in fact used the first order predicate logic as the basis for developing the language and we can say that prologue was complete in the sense that you could have a Turing machine simulated. The same applies to LISP and other functional programming languages equally well it applies to several other models of programming languages where you need to be able to indicate whether the programming language that you are using is in fact complete. Another way you can demonstrate that it is complete is when you say that it is you know you can have Turing compatibility in that programming language. One other point which I like to touch is a point in history when the Manchester University researchers developed a concept which was called one level store. One level store is an idea which was primarily the way you could look upon secondary memory as an extension of the primary memory in terms of the address space and that is where we need to understand that this is very similar to the notion that you have an extended RAM and possibly an infinite RAM. So the point that I am in fact wish to cover today the topic that I wish to cover today relates to the in-memory data management. We need to look upon the database and the analytic processing that also happens in the context of databases or relatively other mechanisms that may be used is to indicate that are these databases by themselves complete? The answer is yes. The model provided by COD from IBM in the form of relational databases is in fact complete. The reason for its completeness again of course comes from the FOPL and related concepts. There are models that are relations. There are query languages that have been created like the structured English query language or SQL subsequently. They are all complete in that particular context. So having said this particular framework where we say that we have relational databases we need to manage that. We need to think in terms of in-memory computation assuming that we have infinitely large memory available to us and also keeping in mind that anything and everything that we may do in data management ultimately even if it is parallely executed ought to be serializable and verifiable to that extent. This was the context that I was trying to set to indicate to you that in-memory data management is from the point of view or standpoint of theory is pretty strong in that context. The perspective I have chosen for today's discussion and this was largely because I thought I was being hosted by an IT school and therefore I took a chance of covering the enterprise application perspective. There are a few things that I would just like to mention. A large enterprise operates several geographies. They need to operate in the context of multiple languages. They need to operate in the context of multiple regulations. They need to operate in the context of multiple currencies and yet at the same time all of their data that need to be managed has to be in a holistic way representable for a single framework for both business intelligence as also for database queries. So you can see the challenge that comes from the fact that an enterprise operates with multiple facets with multiple interfaces with multiple requirements and yet at the same time is required to provide a holistic and complete picture of the databases as also support at the same time a degree of analytic processing. So with that in mind and keeping in mind that this is largely related to in-memory data management, I thought I would also indicate to you the entire talk the rest of the talk is based on the book by Hasso Platner and Zier or Zier if I were to pronounce it correctly in German. Sprinkle for log number I have given primarily to be able to help you to procure the book in case you wish to obtain it, copy. So the lecture is essentially taken with lot of material from this book. I like to also express a sense of deja vu here largely because when I began looking at the in-memory data management I was more excited about the possibility of something which I had at one point in time thought about as a generalized memory element with the possibility of a memory element with certain kind of a control in it to be able to manipulate the bits and so on and so forth. And by the way with the current announcement from Stanford and from IBM with less than or in the neighborhood of between 10 and 15 items to store a 0 or 1 this may in fact be a possibility. Having said that let me say that when I looked at the book and all of it it was not in the class that I had originally anticipated it to be it instead is in the category where a lot more can be done if you can do things faster. So faster is better and powerful. This is what in the industry people prefer to call scale up. Very often people will use this term scale up in the industry to say that if a particular component gets changed to a different level of technology can you scale up. A simple example would be in the context of a typical software for instance is the where for instance the IP4 layer has been replaced by IPv6. It is a kind of a scale up in the software. At the same time you could replace a particular processor with a processor which is much faster with a greater density or transistor density and so on and so forth. That also would be a scale up but that is a scale up in technology one in hardware. The other example that I gave was a typical communications requirement where the IP addresses are saturating. So scale up is more of the same but with a different form or technology being used. There is another term which is used in the industry which is called scale out. Scale out is basically when you are delimited by scale up then what you say is can I use the same and multiply it and obtain a multiplier effect. So that is scale out and these two terms very often are not very well understood but more is better is a kind of a paradigm which helps you to actually get a higher throughput when you probably would otherwise be limited because the technology does not scale up. The in memory data management solution and I will be repeating this particular form presents a particular form of a challenge. The basic challenge lies in the fact that can one support online transaction processing in the same environment or on the same machine where you also wish to support online analytic processing. The online analytic processing these days of course is called business intelligence. In fact to give you a little bit of historical background to begin with you know we began with the IBM offering of what was then called IMS the information management system which graduated which was a single domain single objective management system which moved to something better which was called MIS management information systems and then of course it moved to still another level where people used to use the term called decision support system and so on and so forth and then of course currently people very often use what is called business intelligence. In other words it is largely in the nature of planning decision making to what may possibly be attempted or done. To give you a sense of you know how the OLTP and OLAP have moved here is a very brief indication that between 1960 and 1980 there used to be a single system for ERP. To move to 90s then you notice that what happened was an enterprise with each different division would have a single vertical and they will do a certain form of ERP. However beyond 2000 much of it is in the form of collaborations, multimode interactions and also with the interface for the mobile and the web and so on and so forth. Analytic processing as I mentioned from MIS to DSS and executive information system for data warehousing and finally of course the business intelligence and data marks are largely the kind of data that you have in a very specific area and it is domain specific it has limited usage but several data marks put together can actually help you come up with a reasonably good data warehouse as also with a very good analytic processing capability. The goal is to offer in the in memory data management the primary goal is to offer solutions at the speed of thought and when we say we want to offer solutions at the speed of thought then what we are basically saying is that we will be offering the solutions in real time so the objective here is that both the database operations and also the operations related to analytic processing which actually means that you extract transform a certain data and load it for an appropriate presentation so you when you say extract what you are doing is you are interrogating a database or whatever other form of storage that you might have take loads of data massage it in some way which is to say transform and make it presentable in a manner that is acceptable to the concerned management or the concerned group of people and that can take a lot because in the context of a database usually what you do is insert, update and delete or whatever other forms that you may have but they are usually oriented towards very small amounts of data which is extracted from a certain place or put in a certain place whereas extract, transform and load could be taking up data which are more in the nature of sets and making certain forms of doing a certain form of operation which the database people call as join attempt joins and then take projections on them so even though the sets may be small but the fact that you have to do a join transform and also present takes a very a considerable amount of time and effort one of the things that I would like to mention is though of course most people would differ on the numbers that I have presented here but in case the a real sharp person in almost always response or has triggered his thought in 250 milliseconds however even up to 500 milliseconds a person may still be responding nearly at real time and will always give you an impression that he assimilated the item he was able to respond to the situation and was able to give that thought right across in a real time mode and some people actually can think ahead and preempt you and talk about it if the response time gets delayed in the neighborhood of 700 milliseconds or more then you immediately feel that the other person is in a thinking mode before he is going to respond well most of you might have probably some of you might have heard I think Atal Bihari Bajpayee and you always used to wonder what is he going to add the next phrase to the speech that he is giving and it was very difficult sometimes to even make a guess on that and thus one classic example that I can think of anyway at the end of the day all business decisions are dependent upon the economic viability and what one is saying now is that technology enablers will make it possible for one to be able to have a in memory data management let me briefly touch upon the kind of motivation which drove the in memory management group in certain locations to attempt that they saw the success of web web became a rage because it was possible for you to get response at a very in a very short time and the other thing that web invariably does is after you got the first set of results it allows you to do a certain form of exploration so there were two things that you have to bear in mind here web prompts come quickly and when they come they encourage you to explore these are the two important characteristics of the web database on the other hand usually looks for what is called completeness now web does not look for completeness the reason why web does not look for completeness is because if you come to think of it all the keywords and the queries that you make on the web are ambiguous they are approximations for your query and the responses you are expecting from them are close enough but not necessarily complete whereas when you are talking about a database that is absolutely essentially the nature of completeness so we need to be able to have what they call as the acid properties atomicity that is if you were to commit a transaction it ought to be in a manner that the entire transaction operation either happens or does not happen and in that case the entire group of operation is considered therefore to be atomic we talk about consistency the database must and ought to remain consistent at all the times isolation in case you wish to have parallel operations going on multiple queries being processed at the same time then it would be very important for us to ensure that there is a degree of isolation though at the same time it may be permitting multiple excesses or processes to be operating and durability in the sense of that following a transaction you still will have the property of persistence achieved anyway the point that I am trying to make here is that can we do all of that and ensure that we still meet the kind of demands and responses which are like the web if not 200 milliseconds at least of the order of sub seconds which is 500 milliseconds or of that kind the database the database schemas invariably or efficient they cause design of relational database using the normalization in fact helps in ensuring that the database processing is efficient whereas these schemas are not efficient and for the reason that I explained while ago they are not efficient for analytic processing because when you are attempting database operations you are invariably attempting a single transaction at a time on a single record or a very small part of the total database using a particular schema when you are attempting an analytic processing you are looking at stored data which has been stored for a while in certain context and you are taking a particular form of a set for instance you might say all my customers that booked orders on me in the month of November now that obviously brings a set into the picture and then you might say amongst these customers who made a order which is greater than let us say 1 lakh rupees or 2 lakh rupees whatever that also is a kind of a set or you may even want to see which part of India these customers belong to and also is an operation on a set so most of the time what you are attempting to do here is to operate with large sets even though well maybe the smaller sets but nevertheless it is set based operation so there are multiple records taken out from large databases and then they have to be massaged to give you the solution these therefore have been always attempted with two different kinds and services I will very quickly indicate here that in the case of databases usually these are predetermined in the case of analytic it is usually the ad hoc queries that you work with they are generally selective and simple queries and target a very small set here we are targeting a large set so these are the kinds of issues that the they throw up and we really need to figure out how we can work in the how we can actually ensure that both of these operations can be attempted now I am going to be leaving these files with Deepak so some of these points you can take a look at as you go along typical enterprise applications is what I promise that I will be addressing to and these require and are used in the context of demand planning sales order processing available to promise can I take an order and ensure for instance can I order a let me take an example of a Toyota Innova car which is a customized car with a sort of a bed at the back and partition with the driver now obviously that is a customized car can I now take an order for that car and actually say it will be available to the customer in a month's time or something like that that is the available to promise so whether it is in the warehouse whether it is possible to customize it in the time do we have the advance inventory and so on and so forth so these are the kinds of questions that need to be answered when you talk about available to promise then is usually the list of customers who have not been able to honor the invoices and have not made payment and stuff like that anyway the point I am trying to make is the OLTP operation based and here is an example of a OLTP which says default on invoice in the last one month now obviously this is a set so you need to identify a set in the context of OLTP the OLTP almost always is done using what is called a star schema largely because what you need to do is to store for instance if this were to be considered as the main field of date then this will be a date but the date details will be here if this was considered to be a product ID then the product ID details will be here now what is the advantage of that you have got the schema in which you have got basically in the center all the primary keys and the details elsewhere so what you then can do is to use this mechanism to be able to have all dimensions captured in the single place and then look at the details as you move on and this helps in offering you know solution which also are differential they have a differential integrity they do not result in duplication and do not require often sometimes you know sometimes may actually have to do some character set conversion this is because of the local and international conventions that there might be by the way if you have a question please do not hesitate you can raise your hand and I will be able to see if you have a question somewhere I should then try and answer that as originally I had planned this as a 75 minute talk but I have to squeeze it in 60 minutes I may be skipping a few details if you ask me a question I will be very happy to offer you the details the typical three tier enterprise architecture usually will have a presentation layer and then you will have what you may call as the middle layer which where you may attempt to do all kinds of processing with multiple processing elements some kind of caching and whatever and there will be of course a management of the you know clients looking into this part which is the middle layer and finally you have a very persistent database which is at the bottom so this is typically how the three tier enterprise is organized there is a kind of a holistic view which Bill Gates in 1994 had envisioned which is to say that can we have the information at fingertips so here in this picture what you see is the head of products division there is a finance officer there is a executive officer and there is head of sales and there are there could be other and those are the people who are in charge for strategy marketing production whatever can they all have the information at fingertips which is to say that can they get this as they are trying to activate a decision in other words in real time now the main proposition in the in memory data management is that the data is accessed from RAM and that this is a repeat of a previous file the operation is at the speed of thought and we want to support both of these this is primarily then I have now said very clearly what were the goals of the in memory data management these are the primary goals and this is what you need to achieve what you now need to look at is how can we achieve this the manner in which this has been achieved is by leveraging the technology so we first explore the technology trends and this is where I like to bring to your notice that if we look at the access times what we do see here is the main memory access time current technologies can be 100 nanoseconds or even less and to read something like 1 megabyte you will require 250,000 nanoseconds if you were to look at disk you are talking about a seek time and then of course the time to retrieve the data and obviously when you see these numbers one of the things that you realize is that there is a very heavy price you are paying for every 1 MB data that is being sought now should we be able to do it from the memory then obviously we will be operating at a much, much faster rate so this is one of the things that has to be born in mind if you look at the price point trends then you see that when we are talking about the main memory this is the main memory price point and it is dwindling as you can see it is going down if we look at the disk then the price point also brings in terms of the 1 megabyte memory the price point comes pretty low in fact you can talk about a 1 MB disk storage in 1 send and this is in comparison to approximately $200,000 that one would pay in 1970 so look at the price drop from something like a few hundred thousand dollars to 1 cent in a period of something like 30 to 35 years so that is the kind of price drop that we are witnessing now you look at the semiconductor memory and semiconductor memory is positioning itself somewhere here that is not bad if you really look at in terms of the price point so we are coming within an order of magnitude of the capabilities for the disk that we always had been proud of and the capabilities in terms of the speed for the main memory so if we can get the size of a disk and the speed of the main memory we are done that is what in fact we are talking about to look at another parameter in the technology development we are talking about geometries that are now nearing in fact within 10 nanometers or about that currently already 20 to 20 nanometer technologies are prevalent they are in product at the moment when we talk about billion transistors then we are talking about now it is possible to in fact integrate anywhere up to 100 billion transistors so it is possible for you to now think in terms of putting a very large number of transistors which are switching at a very high speed and possibly give you a capability which is almost keeping up with the mood flow they are so far so good where is the bottleneck now the bottleneck actually comes in our ability if you look at this particular diagram this one is the flat one which was rising, rising, rising and becomes flat here which is the clock frequency why the clock frequency becomes limitation now if you really carefully see the clock frequency results in a expeditious operation but we are not able to drive the clocks any further largely because we are having a problem of hotspots and to the extent I think I have a foil which probably shows that we did you know I probably do not have it here but somewhere I had a foil I think I probably removed it in fact the hotspot can be if you raise the frequencies to a level then it results in approximately 100 watts per square centimeter to a point where it is almost like that of a furnace it is like crematorium where you are putting your circuit okay so that is what you will be doing in case the frequencies are taken further up okay look at the other major bottle tank which is in the context of the front side bus which is the primary mechanism of communicating between the processor and the main memory look at that we are again seeing that we are reaching where we are talking about the speed where we are flattening out so there is a limit to which you know what we can do with the clock speed between these companies that have attempted a variety of tricks including the Intel's quick path and such other techniques but then at the end of the day you are delimited by the fact that clock speed will be limiting the further growth on the Moore's law it will probably not be possible to go ahead further up which actually means you cannot scale up you recall that I gave the definition of scale up as use of technology and technology trends to actually keep scaling up in case you are getting saturated on scale up the only alternative left to you then is the scale out and that is when you when you scale out what you say is more of the same multiplied can it give me better option now this is where the multicore comes into play so what you then try to do is to move in the direction of yeah this is where I have the core dissipation beyond 100 watt per square centimeter of silicon results to a furnace temperature really speaking you need to be able to attempt the scale out proposition in other words you really need to figure out a balance between the transistor density and the clock speed that you are attempting and this is where currently the projection stand with regard to the technologies in terms of the number of cores you probably already would be aware that Intel already has had the 80 core demonstration and I would give credit in fact to AMD for no other reason than this that in 2005 they were the first ones to come up with a 2 core ethalon processor the other thing