Carnegie Mellon vaccination database talks are made possible by OttoTune. Learn how to automatically optimize your MySeq Core and PostgreSQL configurations at ottotune.com. And by the Steven Moy Foundation for Keeping It Real, find out how best to keep it real at stevenmoyfoundation.org. Welcome to another Vaccination Davis seminar talk. Today we're excited to have Andre Goreny. He is the CTO and co-founder of McObject, which is the company that develops StreamDB. So I've known that about StreamDB for a long time because when I was working on it, it was a commercial example of a system. So we're excited for Andre to come talk to us about what they're actually doing because there isn't a lot of papers about this. So Andre is the co-founder and CTO. He also holds an undergrad degree and a master's degree from the University of Moscow. So if you have any questions for as Andre gives the talk, please unmute yourself, say who you are and where you're coming from, and feel free to interrupt at any time. We want this to be a conversation for Andre and not him talking to the empty space that is void. Andre, with that, the floor is yours. Thank you so much for being here. We appreciate it. All right. Thank you, Andy. And I'm glad I can share our new development with all of you. And we'll talk about predictable database management in embedded applications. Before I do that, what I'd like to do, I'd like to set the stage from the industrial standpoint. So I'd like to share our motivation with you. So commercial database management has been used in embedded systems for 20 years now. And these days, developers don't even debate whether to buy or build their own database management for embedded systems. It's those components are almost always bought. However, what surprised me in the last few years, those commercial database management software started appearing in systems that long been off limits for any commercial vendors. Systems like certain type of medical devices, radiation devices, or they call it cyber life, aircraft navigation systems, and avionics, and pilot assistant programs. Recently, most recently, it's autonomous driving that people all heart and body about driver assistance systems of various kinds. So altogether, they can be called mission critical or safety critical applications. So the failure of the system is likely to cause harm. And of course, the real time operating systems are widely used. But again, surprisingly, other middleware components like file systems or network stacks or database management systems are always are in demand. Now, the requirements of those of those applications are frequently defined as real time constraints on system temporal behavior. So we see the need for a commercial database management system that preserves the temporal validity of data and implements predictable execution of critical transactions. So with that, I'd like to introduce our latest design, latest addition to XtremeDB, and that is predictable transaction management. Now, I would like to structure this talk in the following way. First, I'll talk about XtremeDB as a system, what it is and what it is not. Then I will focus on a few internal components of XtremeDB that are relevant to the real time design. Now, after that, I will go into the real time design. And this is not, it hasn't been a product yet. It is what it is. It's a design. And I explain how we implement real time constraints on the database transactions. And then if we're all awake, I'll give you a few examples of the actual implementations for different real time operating systems. So what XtremeDB is not? It's not an enterprise client-server type of database. It's not oracle. It's not MySQL. On the other hand, it's not a simple key value pair, such as a Berkeley DB. It's not entirely no SQL database. It's not a simple cache system. So let's see what it is. First and foremost, it's a professional developer tools to integrate very high-performance databases into various native languages, C and C++, Java, Python, Lua, et cetera, et cetera. So XtremeDB is implemented as a set of libraries that collectively are called database runtime. We provide a SQL-level API. We also provide other modules. And next slide will show you the entire ecosystem of XtremeDB capabilities. But essentially, it's an API for different languages. Your applications can be written in Java, Python, .NET, many, many different languages. So once XtremeDB libraries are linked with your application or used with your application, your application is capable of creating fully transaction-compliant database. And we provide a rich set of different index algorithms. We support all C-language data types and some of the C++ data types like variable length strings, vectors. We also support vertical layout, as well as horizontal layout. And also XtremeDB includes various distributed options. So the database itself can be either useful high availability like master-slave and master-slave setup. It could be used as a cluster where each node is equal. We support sharding. We support different multi-layer communications between different nodes in the architecture. So this is the big picture. The big red circle in the middle, it's an XtremeDB kernel. And as you can see, there's a rich set of indexes. We support multiple data layouts. Dynamic data layout is when your objects, when your records are variable lengths. There's a different data layout that supports small records that are fixed lengths. We support blobs, vertical layouts, we support multiple transaction managers. Transaction managers based on MVCC, MVCC, multi-version in concurrency control and pessimistic transaction managers. XtremeDB supports both transient and persistent storage. We support in the kernel. We also support multiple synchronization, multiple notification events, which is quite important for embedded systems. So that's in the kernel. And outside the kernel, you can see so much different models, so much different capabilities. I talked about, a little bit mentioned, the distributed components, high availability cluster. We also have a full blown SQL engine. We've got various memory compression, various backup capabilities, multi-language support. Anything that you can think of is there. And to that extent, XtremeDB has been around for 20 years. So there's no surprise that we have so many components that are integrated with the product. Now, going back to the API. So XtremeDB provides two types of API. There is an API that we call Static API, which is basically implements database control, transaction control, courses, error handling, type of that nature. Now, there's also a so-called dynamic API. Dynamic API means that you, as a developer, describe your data in a very simple language, our own, as a proprietary language. And then, based on that description, we generate database access API. So this is how it goes. So your data is first described in your, with the data definition language. It is similar in semantics in C to C++, and very easy to use and learn. And then we have a tool that takes the data description and generates essentially C API. So the good thing about it is that you don't have to learn, you, as a developer, don't have to learn any cryptic API, any cryptic functions to access the database. If you know the description of your data, you intuitively know your API as well. So it's easier, it's quite easy to actually use XtremeDB to that extent. Now, this is the sample of the database schema. It's at the top. So we use the terminology class. So class is a table. In this particular sample, there's three different data fields, an integer field, a daytime, another double, another integer field, and there's a bit tree index over two of those fields. And down below is the generated API. You can see that there's a function temperature new, for example, that let you add data to allocate rather a new record. Then you can write and read data out of that record. And since there's an index, there's a search API, the lookup function, that you can use, pass an inner key, and search for data. Now, this is your typical sample application in C. I am oversimplifying it here. But what essentially happens when you program with XtremeDB, you create a database and it's the call to open database at top. And then a task connects to the database through the connect API. Those are part of those control static API. From that point on, you can start using transactions and create, either create new records or read data back. So essentially what happens to you, the application connects to the database and start the transaction. Transaction can be either read-only or read-write transaction. Manipulate with data and then close the transaction. Transactions can be, of course, either committed or rolled back. So in this example, I mean, you'll see that it's pretty trivial. So this record is created. A value is written into the allocated space. And then the next transaction is a read-only transaction that looks up, looks up, creates a dataset, looks up some data and reads it back. So that's essentially the flow, the code flow for application that uses XtremeDB. Now, a few words about physical layout. How we store data. So XtremeDB supports the notion of logical database devices. Logical devices are simply an abstraction of your physical media. So there could be two different media that we support. We support memory devices. Again, it could be conventional or shared memory. And persistent devices. Persistent devices could be files, multi-files, it could be repetitions for that matter. So regardless of the nature of the physical media, all memory devices, all physical devices are logically divided into pages. Pages are simply fixed-size segments. So the top picture illustrates we have two in-memory devices there. And pages are simply free pages, are simply organized in a link list. So it's a very simple page manager. Everything in a database, whether it's an object, a variable length object, variable size object, or a fixed-size record, or an index of any kind, everything is built upon these pages. So the page manager simply takes the page out of the memory device and makes use of it, building either a database record or an index for that record. Now, the persistent, the picture down there, it's illustrated the persistent database. Again, the persistent storage is divided into pages. Pages on the persistent storage are larger than in-memory pages, and that is to minimize IO. So pages are put up in a cache, and cache is again, is a memory device. And then those pages internally are treated as a collection of smaller pages that the database runtime, the database kernel, builds objects and indexes and everything that the runtime works with. So let me say it again. We have a number of page managers. So every object in a database is built upon those pages. Now, transaction managers. Sorry, go back to the previous slide. When you write to raw partitions, so that basically means you have to, like, you're given some device where there doesn't have a file system, and you have to manage the data.  That's correct. It's basic. You have to build your own sort of pseudo file system for the data system. Can you talk about what is the performance benefit or improvement you see over what the custom file system you built for, TVB versus, like, the same hardware just with the device having the file system, the OS providing the file system. The rough conventional wisdom is that, like, you see, like, a 10% to 15% improvement in performance by having the database and manage the files themselves. Can you see that in your deployments? Well, it's not necessarily related to performance. File systems take space. File system takes overhead. So that's one thing. Another thing is that there's some devices that just don't have a file system at all. And when we use a raw partition, we don't actually try to implement our own file system. We don't need all that functionality. All we need is a simple page manager. So we take that physical device or rather a driver that normally implements some sort of a block device interface. And we use that block device to build our page manager. Performance-wise, well, it depends. Modern file systems are very optimized. And quite honestly, when there is a file system, we'd use one. But XtremeDB is often put in the environment where file system is a drag. They're either badly written or they just take space. So I can't really quantify whether it's 15% faster. But it could be. Okay. So out of curiosity, then if you say if it offers you a file system, you'll use it. Are you ever given the option of whether for the particular deployment, like you can use a file system and say, hey, you need a raw blocks or a file system and you guys always choose the file system? Well, people normally, I mean, it depends on the application. When the application runs on Linux or some other non-real-time environment. Yes. Obviously, people use file system. Not just because of the database, but they use file systems for a variety of reasons. Okay. So internally, we have we call it file system wrappers. So we have our own very thin layer that looks like we access the file system as functions like your normal POSIX file system calls. Okay. But the way we implement those, they can be based on a real file system or they can be based on a block device in API. Okay. So that's yes. And there's always a choice. Okay. So let's go back to two different transactions. So we have generally speaking, we have two different ways to implement transactions. And transactions are implemented through models called transaction managers. So one is called Mursif, multiple read single write. That's the abbreviation. And it's essentially implement specific concurrency model. So it uses locks. And it is implemented at a very simple queue. So we allow multiple read transactions at a time. And we allow only single write transaction at a time. So the write transaction blocks everything else. So, and the other option is an optimistic concurrency model, which is based on MVCC. And of course, it allows multiple simultaneous reads and writes. And we support all normal SQL isolation levels, read committed, repeatable read. MVCC is not when you have, so people use MVCC based manager when they have multiple tasks that access the database at the same time. In embedded environment, there's no so many tasks that simultaneously access the database. It is in fact normally just one. And the Mursif transaction manager is very light. It doesn't use many locks. It doesn't use operating system primitives to lock the database. Those are very expensive in performance terms. So I would say that generally speaking, half of our embedded applications use the Mursif-based transaction manager. Now with persistent, the next few slides, I'll talk about rollback, rollback recovery mechanisms. So for persistent databases, there are generally two transaction logging policies. This is normal undo immediate modification transaction policy. And there's also right ahead logging. And most databases that are on the market support both of those transaction policies. I don't think that we need to go further in discussing the persistent rollback recovery simply because our real time design doesn't support persistent databases at the time. But what I'd like to say is that it's there. What you expect from the normal full blown SQL database, we do support various transaction logging policies on persistent databases. Now let's talk about transient in-memory databases and their recovery mechanisms. So essentially we have two different ways to rollback transient transactions on transient databases. So one is quote, unquote, logical recovery mechanism. So I'll explain what's on the picture on the right just in a second, but I'd like to say this first. Essentially, this recovery mechanism algorithm is aware of the logical structure of the objects that are being rolled back. That has its benefits. Sometimes that has performance benefits. And sometimes it's beneficial from different points to know what is it that you modify to then recover it back into its original state. So this logical recovery mechanism, it has been there forever. So that was our original recovery algorithm. And it's generally oriented towards commits. So commit with our logical recovery mechanism is faster, is better. So the other recovery algorithm is so-called page-based as physical recovery mechanism. This algorithm is not aware of any logical structure that is being recovered. So we simply take the pages that are modified in one way or another, put them away. We call that in a rollback buffer. And when the recovery is necessary, those pages are simply copied back. So this recovery mechanism is rollback oriented in a way that when you have more rollbacks than commits, it's beneficial from performance standpoint, but also, which is what is very important, is deterministic in time. The reason it is deterministic in time is that because when you copy a page, that time can be very easily measured. And when you copy the same page back, it's the same time. So we can prove, and I'll talk about this in a bit, that this page-based recovery mechanism is in fact deterministic in time. So what you see on the picture on the right-hand side here is a sample of what happens at the top. At the top of this picture is the logical algorithm. At the bottom is the physical recovery algorithm. And this is simply an example of what happens with the database objects when we update a key value, a field which is indexed. I'm not sure that I need to go through this picture. It's on the slide, it's documented pretty well here. I mean, it says what it does. But again, what I'd like you to take out of this slide is that the two algorithms, two mechanisms, one is page-based, it's physical, it's not aware of any logical organization of the database of what is being recovered, and it's deterministic in time. Now, this is some statistical information that we collected to compare those two recovery algorithms. What you see here, the blue line is the old, the logical the blue plots is the logical recovery algorithms. And the red is the physical, the new method. So on each of those slides, the different operations. There's delete operation, insert operation. The first one is insert, in fact. The second one is absurd is when the key is modified. And the last one in the left-right corner is when the key is updated. What you see here is that we're on every transaction first. We first run the update, and this is the body. Then we run the commit. The third plot here is just a summary of those two operations. And then the exact same transaction is run again, only it doesn't commit, but it is rolled back. So what you see here, regardless of the operation itself, regardless of the transaction, it shows that the physical recovery is not so bad. It's actually in par with the logical recovery. On this slide, though, we see what happens with the rolled back. And this graph is normalized. The logical recovery is taken 100%, right? And you see that the physical recovery, the copy-on-write-based recovery, normally takes just a fraction of time of what the logical recovery would take.  And this is just your normal transaction flow, extreme DB transaction flow. Again, I'm talking about the Mursi, if not MVCC transaction manager. So you see a number of different operations on the left-hand side, insert, update, delete, delete all. And then there's a workload. So the first thing that happens, the transaction is entered into a queue. It waits until it is allowed to run. Now, it runs its workload. So there's some transaction body here. And then at some page, at some point, the application calls commit. And those modifications are committed. In extreme DB, commit is divided into phases. The first phase of the commit, essential updates, indexes. And the last phase of the commit, it essentially, it's uninterruptible. It clears up various locks, various latches, rather. It's normally a very short in duration, and it's atomic. There's no way that operation can fail. So the second commit phase is very short, and it's always, always succeeds. Now, the rollback, if and when the rollback happens. Again, this graph shows what operations happen when they're all back, when they're all backgrounds. So it just, this picture gives you a sense of just generally how transaction is structured in extreme DB.  Well, the transaction does it's, does it work? And then, again, to phase commit, and the rollback is simply, if the rollback happens, it simply puts everything back to, restores it to the original state. Okay? Now, let's talk about, at this point, let's talk about the real-time design and what happens with how we use extreme DB and what changes we made to extreme DB to enable predictable transactions. But first of all, and that's probably kind of marketing statement. Don't confuse fast and high throughput with real-time. With real-time, any real-time processing, there's a line in the sand. So there's bad transactions and good transactions. With high throughput, speed is just, it's a figure of merit. So with real-time, speed is not so important as predictability. So here's our goals. What we'd like to do, we'd like to impose and enforce transaction deadlines while preserving the consistency through asset properties. Essentially, what we do, we introduce a deadline value into the transaction call. So why is it difficult, why is it difficult algorithmically and why is it difficult technically? But first of all, enforcing temporal consistency of data and transactions. It's never been, I'll take it back. So with real-time transactions, transactions have their deadlines. So what can happen, they can meet their deadlines. So they can commit within the time frame that they're given. They can miss their deadlines, which means that they are all back again within the time frame that they're given. But what should never happen is that never should run past their deadlines. So that's something that real-time operating systems do. They guarantee predictable intervals. Now, database operations are very difficult. So the complexity evaluation of any database operations, it's hard to know the upper boundaries in time of various operations. And it is also very difficult to make an accurate estimate of the time of execution on any level. It could be either application or the database kernel. And when you calculate the worst case scenario, you can tell, you can say that, yeah, we can say that three operations, search operations are logarithmic. However, those worst case scenarios could be too pessimistic. They can be so pessimistic that they are almost useless. Now, real-time scheduling goals are also different from application to application. Some applications want to schedule transactions to minimize the number of transactions that miss their deadlines that are all back. They may or may not allow preemption. It could be high-priority transactions that run in a context of high-priority tasks. And the database scheduler may or may not allow preemption. Now, there could be other different criteria that real-time applications impose. For example, maximize the total weight of successful transactions. You can assign a number, like a deadline plus priority to the transaction, and your goal could be to maximize the total weight of successful transactions. So, essentially, scheduling goals are very different for real-time applications. Now, the success and performance criteria, again, they're not the same as for non-real-time applications. Performance criteria for your normal database, non-real-time database, is normally to optimize the average number of transactions per second. With real-time applications, it's not the average time. It's the worst case scenario. Now, why is it difficult technically? Well, first of all, real-time applications, they run in a context of a real-time operating system. And if they don't, they have to be able to access hardware, interrupts, memory management, timers, things of that nature. Now, real-time operating systems, they have different scheduling policies and different ways of measuring time. The database that runs in the context of real-time operating system and the scheduler and recovery algorithms should be able to adjust to those services, operating system services. Now, real-time applications, not always, are considered mission-critical or safety-critical. So, their underlying operating systems is one of the certified operating systems. And generally speaking, manufacturers approach how operating system vendors certify their products. What they do, they cut system services that they cannot fit into the certification boundaries. Essentially, we have much less functionality from the operating system than you would have on running on the normal Linux or Windows or non-real-time, non-real-time OS. Now, the same certification rules are normally applied to development tools, compilers, profilers, etc., etc. And again, those tools are generally speaking safety-oriented as opposed to anything else. So, well, that's a challenge. That's a technical challenge. Can you give an example from something that the real-time OS is going to not have that full-fledged server-class Linux is going to have that you care about for a database? Sure. For example, semaphores. In VxWorks and real-time version of VxWorks, certified version of VxWorks, you can take a semaphore, but you can never release it. Releasing a resource is considered a security risk because you actually can pull the rug out of your operation. That's what the thought is. Allocating memory is a big no-no. You never can call alloc or malloc in a certified environment. Again, the thought is that if you do, then you can forget to free it and you create a resource link. So, to that extent, XtremeDB doesn't use any system services that allocate memory. All our memory managers are our own memory managers. And the same goes for synchronization primitives. If we are able not to use a semaphore, we don't. We create our own ledge instead that we can fully control. Did I answer the question? Yeah, that was perfect for you. Okay. Now, this slide shows why the real-time operating system is in fact essential. So, what you see here is the two cases. Let's see. So, the top picture, you see two threads running on macOS, doing something with a database, updating the database, running on the macOS and on the right-hand side under the operating system called deals. It's a real-time OS. So, what you can tell from this slide that under macOS, only 12 percent of transactions miss their deadlines. So, all those transactions, they have the same priority. They run in the context of the same priority task. And they essentially do the same thing. Under the real-time operating system, all of those transactions run successfully. None of them miss their deadlines. Now, the second example, the bottom picture, is when we have one transaction, a writer. Essentially, it's a sensor that populates data and writes the database. And it's a high priority transaction. The low priority transaction is a transaction that looks up the values and read data back. Again, if you look at this picture under general-purpose operating system, 12 percent of the transactions are missed deadlines. And in real-time operating system, due to their predictable scheduling policies, essentially, all of them run through. So, that's the difference. What I'd like to emphasize here is that real-time environment is essential for real-time database. Real-time operating system is essential for real-time database. How good is, like, you can run Linux in RTS party mode, right? Like, you can set the schedule, maybe in real-time scheduler, how close is that to be, like, how good is that for the database, for the stuff that you're doing? Honestly, we don't use RTS Linux. Okay. So, I can't... Wow. Because none of your people that are using it are using it, or just because it's out of the box, it doesn't do what you need? It's market-oriented. Our customers run, when they run real-time processing, they run real-time operating systems.  None of them run Linux. Another point here is that, yes, real-time RTS Linux and RTS Windows, for that matter, can be quote-unquote real-time. But as I mentioned earlier, there's this certification requirement, requirements in the applications that we deal with. And Linux, by definition, can never be certified. So, we deal with, I'll say, 30% of the applications that this design is intended to, would run on this certified operating system, which is never Linux. Okay. Thank you. Now, how we deal with complexity evaluation for the real-time project? Well, we follow the footsteps of the operating system vendors, and we cut off those services that we can't or don't want to put into real-time out. As you can see here, all the modules that are outside the kernel, we've gotten rid of it. We don't support that. So, all we've left is a low-level backup capabilities. So, and inside the kernel, we will have three types of trees, of indexes rather, a bit tree, a hash, and an R tree. And we also don't support persistent storage at this point. We only leave the transient storage, and we only support more safe transaction manager. We don't support MVCC transaction manager at all. So, that's the extent of the current design. We would have to, at some point, to add persistent storage support. And that is because many modern devices, they do have persistent storage. It hasn't been done. It will be. Now, let's talk about real-time transaction schedule. So, real-time database should guarantee the logical consistency, ought to guarantee the logical consistency of the database, and also make sure that transactions meet their deadlines. So, we implement a so-called high priority, earliest deadline, first scheduling algorithms. Transactions are scheduled for execution based on their priority and deadline. Essentially, when you have two transactions, the first thing that happens is we see are they the same priority or their priorities are different. If they're the same priority, we allow to run, we schedule to run transactions that deadlines are closer, shorter. So, if the priority of transactions are different, we first schedule the transaction with a higher priority. Now, we also allow preemption. So, if you have a running transaction, there's certain rules, and they're written here, and that allow us to kick that transaction out. It doesn't happen always, but if there's a higher priority transaction, chances are that the currently running transaction will be kicked out. So, again, is the high priority, earliest deadline, first EDF scheduling, and this is a pretty common scheduling mechanism, but with a kick, we allow preemption. Now, so, how we enforce deadlines through rollback. So, the database kernel, again, firm transaction deadlines are deadlines are enforced through EDF scheduling mechanism. So, we must guarantee that transactions are finished, whether they commit or rollback within their defined deadlines. So, we are able to identify late transactions, we're able to interrupt those transactions, and we're able to initiate the rollback in time to satisfy the transactions deadline. And the key problem here is that we must ensure that when we interrupt the transaction, it's still in a recoverable condition. So, we actually can run a rollback in time and keep the database consistent, logically consistent. Now, the way we do that, the database kernel, the database runtime, reserves enough time out of the given transaction deadline to initiate the rollback. And we can prove, we can mathematically prove that the transaction's rollback time is taking less, is less than the total time of the transaction has spent modifying the database. So, that's the key statement, the key assertion here. So, again, we can guarantee that we reserve enough time out of the given deadline to be able to rollback all the modifications. So, may I ask a question? Sure. Yeah, so, if you say you can prove that rollback time is definitely less than the time spent modifying or searching, does that mean that, say, if the deadline is one second, then at half a second, you have to rollback if you haven't finished everything? Because, I mean, you can only guarantee that the rollback time is, at most, to be the same time you have spent, right? Does that make sense? Right. Yes. Like, for example, if the deadline is a second or an hour for that matter, we can guarantee that we can rollback in half an hour. Yes. So, essentially, if the transaction has not finished all the work within the first half an hour, then, yes. Okay. Thank you. Now, how much time do you have left? How much time? How much about an hour? We are, let's see. You probably need to talk about that more. Okay. Well, give me another... Maybe five minutes. Five minutes, okay. When you want me to start rolling you back, though. Right. So, give me another five minutes. So, here's my key assertion then. So, the time to reverse any modifications to the database made by a transaction up to any point in the transaction, it doesn't exceed the time required to apply those transactions. The rollback time is always less than the time that the transaction took to modify the data. And, as I said, we can prove that. We can prove it mathematically. What I'd like to do, I'd like to illustrate that. It's a pretty obvious statement for read-only transactions because read-only transactions don't actually modify any data. They modify internal structures, right? So, for the read-write transactions, the mechanism that I've described earlier, the page-based recovery, is the crux here. So, since we need to copy pages, but the time that takes to copy a page depends on the size of the page. But this is all it depends on. So, based on that simple fact, again, we can prove that putting pages back during a rollback wouldn't take more time than the original modification. And these two slides, they actually illustrate the process and there's code snippets that show what happens when the transaction runs, when the real-time transaction runs. And this is some statistics that we've collected to demonstrate our key assertion. And, again, it shows the blue line is the workload, the red lines are the rollback, and we've done a lot of research and a lot of experiment and testing, in effect, and that verifies the assertion. I mean, it's not a proof, but it's an illustration rather. Five minutes, did you say? Yeah, exactly. You should wrap up because you have my questions doing it. Okay, yeah, it's not me, it's the baby. Yeah, I understand. So, let me just then emphasize one other thing. So, it is important. And so, we need to be able to verify time. We need to be able to see, okay, do we have time left? So, that means that inside this, inside our kernel, we need to put verification points, points in the code, where we must check the time, whether we have enough time to run, or it's time to roll back the transaction. So, this is a very delicate thing, and this is essentially why we limited our services to the amount of services that were limited. So, and this is probably the most time-consuming and important part of that design. So, obviously, every runtime call needs to have this verification point. Obviously, every loop needs to have a verification point for, on every loop iteration, right? But what's more important, that those time measurements, they depend, they heavily depend on the operating system environment and on the hardware that that operating system is running on. So, what we've done, we've taken several setups that we claim to support, and we've measured the maximum interval between control points on every supported architecture. And then, we made sure that we added control points when necessary, so that we guarantee that the transaction never run past its deadline. So, then there's certain techniques to estimate control point value, to estimate the time, when it's time to interrupt transaction. And again, we assert that half of the deadline is generally safe. Then it goes to methods to enforce deadline, and essentially that too, the database runtime doesn't have a way to measure time itself, it's just a library. So, we either use an application created timer, or we use an application created callback, in the absence of the timer. So, and our API, our real-time API supports both of those methods. Again, we either measure, we either use a timer created by the application, or we use a callback, and the application handles the time. All right, so, Andres, I've got to cut you off, I'm sorry. Right, okay, well, again, so I will applaud on behalf of everyone else, thank you for being here. So, we have time for one question, and you go to the audience. Okay, so I'll ask my question. So, in the very beginning, you showed the example of, especially if you define, it's like an ORM, you define the schema in a speech drop, or speech class, and then you convert that into, you know, C code that you write your application against.  So, I guess my question would be what percentage of your customers are using XtremeDB through like the standard C API versus something like SQL? Well, it depends on the field. Embedded customers, I would say 50, half. Financial, people in financial arena, they of course use SQL, because there's no way not to use it. Our customers who use our distributed designs, all of them, 90% of them use SQL. But in, again, in embedded settings, it's mostly either C or Java, but it's a language called API. Okay. All right. Well, thank you so much for bringing this. We appreciate you spending time with us and explaining that. Happy database system we know we don't see about, so it's super interesting.


brothers, it's good to be with you. It's good to be loved, isn't it? You know, there's a lot of great things we could be or do or accomplish in this life, but really there's nothing that compares to the love of Jesus Christ. Amen?  There really is no nothing further. There's no further that we can go than to be loved by the Savior. Amen? And that's really the root of our identity as sons of God, as the beloved. And St. Paul talks about that when he says, you know, the life I live in the body, I live by faith in the Son of God who loved me and gave himself for me. That's the challenge, I know that's a challenge for me, is to have my identity rooted and grounded in the love of Jesus. That's really, that's all we need to know, just like the apostle John, he could say, you know, I'm the one that Jesus loved. That's who we are. I just want to read a scripture to you that I read this morning before we start. This is from Galatians 1.15. Paul says, God who set me apart from my mother's womb and called me by his grace was pleased to reveal his son and me so that I might preach him among the Gentiles. How many of you know that God set you apart from your mother's womb? He knew your calling before you did. Isn't that amazing? He knew your destiny. He knew plans, he had plans for your life before you were even born. And he called you by his grace. You know, you didn't show up here, you didn't arrive to this point in your life by accident. He called you by his divine empowerment. He enabled you to say yes, he enabled you to walk out your calling. But this is the point I want to highlight. God was pleased to reveal his son in me so that I might preach him among the Gentiles.  And it pleases the Father to reveal Jesus in you. Just take that in. It pleases the Father to reveal his son in you. It brings him pleasure. So we're here this week to identify with the Son, to embrace him and to be conformed to his image and his likeness. This morning I'm going to share with you about what it means to be free in Christ, because it's so fundamental to this ministry and to understanding, you know, why we do what we do is understanding the freedom that Jesus calls us to. So I'm going to talk a little bit about freedom. Just to introduce myself a little bit, I'm a father of five. I'm married. My beautiful wife, Jennifer, she texted me last night, is Bob Rice here? He take off? Okay. I texted my wife, I said I'm here at the conference. She said, tell Bob Rice I love him. So she's a Bob Rice fan. She always comes on these youth retreats. She's a chaperone and she loves Bob Rice. I have five children from ages 16, 14, sorry, 16, 15, 12, 8, and 10 months. And the littlest one is, her name is Liberty Marie. And it's just really a great pleasure to serve the Lord, but most importantly, to be a father. It's one of the greatest graces of my life. I didn't go to Steubenville. My two older brothers did. I came out to visit Steubenville and they were into the party scene and they showed me what was going down on the bottom of the hill. And so I probably didn't get a good representation of what life at Franciscan was really like. I went to my first conference in 1993 and I chaperoned a couple youth conferences over the years and it's always great to be here. So I want to talk about the big picture of what it means to be free in Christ and the mission that we have to proclaim that freedom to others. My friend Dan told me this. He said there's two things I'll never get tired of. The first is hearing a baby laugh. You know that sound? And the second is seeing people set free. I was praying with a woman in Calgary and I'll never forget, you know, she went through the five keys and she experienced this tremendous breakthrough and she looked up with me at me just almost astonished, you know, with these wide eyes and she was just like, I didn't know you could feel this way. I didn't know that this was possible. And for many people it's that awareness of the goodness of the mercy of God. Some people have carried bondages for 40 years, almost their whole life, and they didn't know that the Lord had more for them. Some people have different, there's very different experiences of what freedom might look like. Some people say, you know, I feel lighter. Some people experience like something just kind of lifted off the top of their head. Some people say, I feel like I can breathe more deeply or I can breathe from a deeper place.  And for some people it's an immediate sense, like they experience it right away. And for other people it's the beginning of a process gradually walking out in our freedom. And sometimes we look back on a period of time in our life, maybe a year or two years, and we say, wow, the Lord really did a work in me and set me free. And so there are so many different experiences of freedom. I remember praying with a young woman who experiences so much trauma in her life and a lot of rejection. And so I just had her renounce a lot of that stuff and she forgave the people who had rejected her. And you know, what had happened through the various traumas is she actually lost her voice. She lost her ability to sing. She had a medical condition, but it was also related to a very traumatic event and it had affected her deeply, very spiritually. And I remember asking her for the first time after the session if she would sing. And she sang this just incredibly beautiful song. And the Lord just not only restored her heart, but also her voice. I was praying with a Polish man and he experienced this incredible breakthrough and he actually grabbed, I was standing behind him. He grabbed me by the head and started jumping up and down. I was a little scared, but I thought this is a new expression of freedom. For other people it's like just simple tears of release, just simply falling into the arms of God the Father. Here's a good one. I experienced the freedom to be around my mother-in-law. Many of you might know that one. The freedom to repent more quickly. You know, I do something wrong and instead of justifying I just repent right away. I'm not afraid to name my sin. One of the best compliments we ever get about our conferences is that after people go through these five keys, one Polish priest said, he said, the confessions were frighteningly honest because people in their freedom were not afraid to name their sin for what it was. It could be the freedom to pursue God out of love and not fear. It could be the freedom it could be the freedom to look at your husband, to look at your wife, to look at your children with God's eyes. And so there's been a lot that's been written about freedom and I remember actually being in college. I remember when Father Dave, he did a CD series on Freedom in Christ. Has anybody ever listened to that? It was a good while ago, but this was always on in my parents' car. And I think some of his teaching has really been such a blessing to us. So there's a lot of things that have been written about freedom, but I want to just look at a few scriptures that talk about freedom. And what does it mean to be free in Jesus Christ? The first one is Galatians 5.1. Galatians 5.1 says, it is for freedom that Christ has set us free. We've all been set free from something when we prayed this morning. We've been set free from our enemies. We've been set free from the power of sin. We've been set free from darkness. We've been set free from slavery. We've been set free from the curse of the law. There's so many things that we could say we've been set free from, but there's actually more to freedom than just being set free from something. We've actually been invited into something. And as St. Paul says, it's for freedom Christ set us free. He set us free to live a life of freedom. And freedom is so fundamental to really what it means to be human and what it means to be in Jesus Christ. So if I could summarize, like three views over history, three views of freedom, the first one would be the ancient view of freedom, the second one would be the modern view of freedom, and the third one would be the freedom that Jesus Christ brings. And the one that Jesus brings is really the one that gives us the fullest definition, the fullest understanding of what it means to be free. So if you started with the modern view of freedom, the modern view of freedom typically is that sense of negative, what we call negative liberty. As long as no one tells me what to do, as long as there's no tyranny in my life, as long as there's no oppression in my life, no one coercing me, then I'm free to make choices and that is freedom. In fact, the foundation of the U.S. Constitution is based on that principle, negative liberty to restrict tyranny. But how many of you know you can be without tyranny in your life? You can be without anybody telling you to do and still be a slave to your sin. You could go off and live in a cabin in the woods and no one tells you what to do and still experience a lack of freedom. And so this modern freedom is very, very empty. It offers us choices and that's a good thing. It's good to have choices, but if we don't understand who we are and in whose image we're made, those choices are empty. I choose between Pepsi and Coke. I'm free. I choose between receiving life and embracing life or taking life. It's all the same. That's why Jean-Paul Sartre said man is condemned to freedom. Freedom without meaning is not really freedom. The ancients understood that in order for there to be free and there had to be purpose and so for the ancient world, freedom had to do with living according to your nature, that your nature has potential.  But even the ancients were stuck because that will only take you so far. We'll never truly understand our nature and our potential until we know the God who made us, the Creator who loves us. And we never fully find out who man is until we look at Jesus Christ. Saint John Paul said Jesus Christ reveals man fully to himself. So the third view of freedom, we look to Jesus and in him we find the culmination of those two aspects of freedom, what brings meaning to our choices, but also reveals our nature and who we are called to be. In John 834, Jesus makes it clear to us, he says everyone who sins is a slave to sin. So the nature of sin is slavery. He goes on, he says now a slave has no permanent place in the family, but a son belongs to it forever. So sin equals slavery. Freedom equals what? Sonship. True freedom is found in the life of the Son of God. When we unite ourselves to the Son and we enter into the love of the Trinity and experience the love of the Father for the Son in us, it transforms our identity and gives us new life. What is freedom? Freedom is life in the Son of God. Now for most of us when we encounter Jesus for the first time, we encountered him as the Savior. We experienced his redeeming love, his saving love. He cleanses us of our sin and he gives us a new life. Wouldn't that be enough? But then there's the experience of knowing Jesus as Lord and his Lordship, the longer I walk with him, the more grateful I am for his Lordship. Think about all the decisions we would have made without the Lord's being Lord in our life. And he teaches us a new way and he leads us as his disciples. But many of us still have yet to identify with Jesus as the Son. And it's in the Son that we find our freedom. John 8.36, Jesus continues, he says, But if the Son sets you free, you will be free indeed. Freedom is tied to sonship. What gives meaning to our choices and value and weight to them? What gives us an understanding of who we are and who we're called to be is living life as a Son. It's in that relationship with Father, Son, and Holy Spirit that Jesus is redeeming our humanity.  Now, to a certain degree, all truth helps us be free. All truth liberates in a sense. But the greatest truth that brings freedom is the eternal relationship of the Father and Son in the Holy Spirit. That's the relationship that you have been invited into. It's identifying with Jesus as the Son. Now, we all have a story. We have stories of our life, of the things that we've gone through. Some of them are filled with pleasure and joy, and others filled with torment and sadness and sorrow. And we often perceive who we are. We perceive our identity through the story that we've lived and how we've interpreted that story. We say, this is who I am.  These are the things I have to live with. This is the hand that I have been dealt. And so we choose to live within a story that's small. And what we don't realize is that story, that small story has actually been surrounded and enveloped by a much, much bigger story. And that's the story of the eternal love of the Father for the Son. And you have been invited to break out of the limitations of your small story and into the life of the Son. I live by faith in the Son of God who loved me and gave Himself for me. How many of you know that changes everything? That changes your story, no matter what the limitations. Paul could have gone on and on about his upbringing and his education and how he studied as a Pharisee and all the books that he read. He could have read you an incredible CV of all his accomplishments and the things that he'd done in his life. Instead, he said, it's the grace of God that called me. It's the love of God that defines me. I am His beloved Son. I want to tell you my story because it's my story. It's the only one I've got. I was raised, I was a third of four boys growing up in this house, and I experienced my story as I experienced my identity as being a little bit different than my brothers. There was a unique perspective that I brought to my family, and it was always different than everybody else's. I was very creative and very sensitive, and I often found myself because of that in conflict with one or more of my brothers and my parents kind of trying to sort out the mess. There was what happened, and then there was Matt's version of what happened. Do you have anybody in your family like that? Just see things differently, and because I saw things differently and it created conflict in my family, and even with my parents at times, the enemy began to speak a lie into my heart, and the lie was this. When I was very young, I began to believe this, that no one could ever understand me. That became my reality. That became my small story, and I began to live in that, and in my sinful nature and my flesh, I reacted to that sense of not being understood, not being fully received, not being fully understood and loved. I began to live out of that. One of the ways that it happened would be when I was corrected and anybody came to correct me, I felt like I was being rejected, and I was so afraid of being misunderstood, and so I would try to explain away everything that I did. So one part of my pattern was self-justification and self-righteousness. I had a reason for everything I did. My dad would come in, he tried to correct me, he'd leave thinking it was his fault. I was really that good at arguing. And if I couldn't wiggle my way out of that, if I couldn't explain myself, and part of the conflict was constantly trying to explain myself, so people couldn't understand, if I couldn't do that, I would be dishonest. So I'd lie my way out, or exaggerate my way out. If I didn't think that I could be accepted, if I didn't think I could be understood, you know, particularly around my peers, I would pretend to be somebody else. I would create a false image, you know, someone I thought that people could understand and like. Because of this pattern in my life, it led to other things, you know, isolation, loneliness. Obviously, if you're not allowing people, if you don't trust people, you're not allowing them in, you're not going to experience good relationships. So I experienced a lot of loneliness, a lot of rejection, and ultimately a lot of depression. Thanks be to God, he didn't leave me there. When I was a junior in high school, I heard the gospel in a new way from a group called Young Life.  I began to experience freedom. I remember even as I prayed the prayer, I was thinking, okay, this isn't going to last.  I began to experience, just at first, it was just a complete, just the freedom to be myself, like for the first time, just the ability to be myself and not be so focused on myself, but also to love other people, and I began to love the people in my high school and just to bring them to the Lord and to tell them about Jesus, and my teachers thought I was on drugs, because I was the kid that had his hat pulled down over his eyes, you know, all the time just wouldn't look people in the eye, you know, just kind of like looked miserable and depressed all the time, and here I was smiling and, you know, joking and reaching out to other kids. So that was my first experience of freedom, and like I said, sometimes it's gradual, it's a process, so I first experienced that freedom, but then I had to walk out what it meant to be a disciple, and so as a disciple I learned not to lie, I learned not to exaggerate, I learned, you know, how to be honest and open with my responses, and then when I got to college, I met this amazing, beautiful, wonderful woman, and she became my wife, and while I was dating her I had just experienced someone who did know me and still liked me, like the real me, you know, with all my weaknesses, and so when I was in college I experienced sadness and depression just kind of lifting off my life, and I was free from that, so like Deacon Ralph was saying, I was thinking, man this is as good as it gets, what more do I need, so I was walking with the Lord, I was in ministry, I was serving Him, I was, you know, just experiencing incredible freedom and growing in Him, but I still needed to get set free, because the root of my bondage remained, the lie that no one could understand me, and it was still crippling me in a lot of ways, so it was like 10 years later after I'd given my life to the Lord, and I was about to make a really big life decision, and I did what a lot of people do, I called my dad, and I said, hey dad, what do you think about this decision, and he had some concerns, you ever have one of those conversations with your dad, and you know he was explaining his concerns with me and about the decisions I was making, and that thing in me that felt misunderstood, that always wanted to fight to be understood, just came out, it was ugly, and I just let him have it, like I said some things, I hope there's no tape recording of that in heaven, you know, I just said some really horrible things, I shouted in the phone, then I hung up on him, not my greatest moment, but it was a grace-filled moment, because I experienced the Holy Spirit just making me aware of my heart's response, and in my desperation I was just like, Lord I don't understand, I don't know where this is coming from, I don't know why I'm responding in this way, and so I did what a disciple should do, I called my dad back, and I repented, and I asked his forgiveness, and I said would you pray with me, I don't understand this, you see the problem with our bondage is a lot of time it's tied to deception, and so we're stuck, but we don't know why we're stuck, you know, that's why what makes it deception, and so fortunately for me my dad knew these five keys, you know, he was just developing this ministry, and so he asked me some questions, we talked about what it was like growing up in the family, and I told him about the conflict that I experienced with my brothers, and the experience I had of just always feeling misunderstood, and he took me through the keys, and at first I repented, and then I forgave my brothers, and I forgave my parents, and it's a little awkward to forgive your dad when he's leading you to forgive your dad, but we worked through it, you know, ministry is awkward sometimes, and then we finally got to the renunciations, and when I finally touched on that key lie, and I renounced it as a lie, I said in the name of Jesus, I renounced the lie that no one will ever understand me, it was like the whole thing just broke, and I was free, and I immediately began to hear the father's voice, and the father spoke to my heart, and he said, son, I've always known you, and I've always understood you, and I was free, and I was healed in that moment, I didn't need to go back and do it again, I didn't need another childhood, I didn't need another family, I just needed to know that my father knew me through all that, and I was able to break out of the limitations of my small story and enter into the life of the son, knowing the father's love, knowing my place, knowing that I belong, knowing that I'm understood, here's the thing I want you to take away from this, my primary gifting as I've discovered it, as I've served in the body of Christ, is to be a teacher, to be a communicator, I was a high school teacher for 12 years, I love to teach, I love to communicate, I love to connect with people, I love to share the things that I'm learning, do you see how the enemy would want to rob me of knowing and giving away my gift by speaking that lie to a little boy and saying, no one will ever understand you. I want to suggest that Satan has a plan for your life, and the plan has always been to hide your true identity, to hide your calling, to hide your purpose, I think it was Father Dave, he was saying last night, if you discover your gift, he always wants to take it away, he always wants to keep you from knowing the gift that you are, and from giving it away, and so the Holy Spirit is leading us into all truth, he's leading us, he wants to bring the power of the gospel to the depths of our hearts, not just the surface things, not just our outward obedience, but he wants to reach those dark areas that maybe even you don't want to touch, maybe you might be afraid of your response to some things, maybe you experience that confusion like I did, like I just don't know why I keep doing this, I don't know why, you know, let the Holy Spirit lead you this week, he's so good, he's so faithful, and he's so, he never gives up, he perseveres in us, because the Holy Spirit is not done, he's not satisfied until Jesus is fully revealed in you, he wants Jesus to be fully glorified in your life, and so he's so, he's so good to us, he's so faithful, so that's what it means to be redeemed, so to speak, is to break out of those limitations of your small story and enter into the fuller truth that's been revealed in the Son of God, it means you get one story replaced with another, I remember the years ago there was the story of the Baltimore Orioles, any Orioles fans here, probably not, my brother, stay strong, the Orioles as typical were at the bottom of their division and everything they did failed, they tried hiring a new coach, new players, the season had been a total disaster, they were at the bottom of their division once again, and yet this particular season there was something interesting going on which was the Boston Red Sox who were the best team in baseball, they had the best record and they were expected to win at all, and strangely enough in the last like 12 games the Red Sox just kept losing and losing and losing and losing, and the last game of the season they had to win one game to get into the playoffs, does anybody remember that night, my brother here does, guess who they played, they played the lowly Baltimore Orioles and the game went into extra innings, it was really exciting, people were calling it the most exciting night in baseball and the Baltimore Orioles knocked the Red Sox out of the playoffs, completely changed their story, people could think about that season, think about all the losses, they could think about all the failures, all the things that went wrong, but on that one night everything changed and they became the team that knocked the Red Sox out of the playoffs, beloved that precious thing that changes the meaning of your story has already happened, when Jesus Christ shed His blood for you, when He gave His life for you, it changed the meaning of your story, people say I was told I was worthless, I had no meaning, I had no value, the blood of Jesus tells a better story, says you have inestimable value, 1 John 3 1 says how great is the love the Father has lavished on us, that we should be called children of God, and that is what we are, there's an exclamation point in there, John is astounded at the love of God and how it changes everything, this is our true identity and it's found in the heart of the Father, and so the key to understanding how the enemy works in our life, if you could sum it all up really into one thing, you know you could go and study all about demons, you could learn all about Satan and fallen angels, but really you could sum it up in one line, Jesus said He is the Father of what? It's the Father of lies, so understanding Satan work you need to know that He's the Father of lies, He hates God for having given us this profound identity and He wants to destroy it, the battle began with Adam and Eve, He sought to rob God of His children by deceiving them about His nature, His goodness, and His intentions, the battle began in the garden over the hearts of God's children, and in John 844 Jesus said He was a murderer from the beginning, not holding to the truth for there is no truth in Him, when He lies He speaks His native language for He is a liar and the Father of lies, so what does this counterfeit Father give birth to? What does He bring into existence? He brings deception, He brings lies, how do evil spirits have power in our lives? How do they bring so much destruction? It's primarily through deception, the lies that we have believed empower Him in our lives, if you believe the liar, if you believe the lie you empower the liar, and that was true in the garden, in the garden Adam and Eve were deceived about God's goodness. Did God really say that? The reason God said that is because He doesn't really care for you, He doesn't really love you, and He doesn't want what's best for you. He's not really a good Father, and you can't trust Him. Think about the last time you acted out in sin, wasn't it the same voice? Is there ever a time you didn't sin where there wasn't some version of that deception attached? God's holding out on you, He doesn't really know what's best for you, He doesn't really care. Here's something good, take a hold of it for yourself. And so when Adam and Eve, when they swallowed the fruit, when they ate the fruit, they didn't just swallow fruit, they swallowed the deception, and the deception became living and active in them, it became a power. Much like I experienced, the deception became a power in them that led to slavery, because their perception of God had been distorted. When God came after them, what did they do? They ran from Him who is love. Who does that? Who hides from love? Only someone who's been deceived. It's deception that causes us to run and to hide from love, and it brings fear and insecurity. And in that insecurity, we turn to pride. We grab ahold of whatever we're good at, we grab ahold of whatever tries to sustain us, and ultimately that fails. So after the fall, there was another voice, a counterfeit voice, a counterfeit voice, the father of lies. He had robbed them of their identity, and they could no longer hear the voice of God, no longer be in His company, and they were ashamed. They could no longer see who God was, for God is love. They saw Him only through the lens of their shame. I want to suggest that maybe some of you might be looking at God through the lens of your shame.  You're expecting Him to reject you. You're expecting Him to misunderstand you. You're seeing Him through the power of sin. The good news, brothers, is that Jesus on the cross is the answer to the lie. If the accusation of the enemy, the lie of the enemy is that he's, that's not a good father and he can't be trusted, here's the response.  We see the answer to the lie in the revelation of the love of God in the broken body of Jesus on the cross. I remember I was here probably 17 years ago and I was at a youth conference and I was chaperoning and I was really struggling with an area of sin in my life and I went to one of the priests for confession and just in a moment of being vulnerable, I shared what I did, but then I said, and Father, I just don't think he can forgive me this time. I was immature in my faith. There's a lot I didn't understand, but I just said, I don't think he can forgive me this time. And the priest was really smart. He didn't argue with me because that would have been a mistake. He didn't try to engage with me intellectually. It was kind of like those old Verizon commercials, you know, can you hear me now? You remember those? Can you hear me now? And I said, I just don't believe that he can forgive me this time. And so the priest just kind of turned his chair to the side and behind him was the crucifix and he said, can you believe now? And I looked at the cross and I said, I can't deny it. I cannot deny that he can forgive me, that there is power for me to be forgiven and I receive God's mercy. So the cross is enough to break the bondage. The cross has enough power to break the power of your lie, of your deceptions. We said that prayer this morning. God has raised up a horn of salvation for us in the house of His servant David. That is Jesus. Jesus is the stronghold of our salvation and he saves us from all our enemies. Everybody say all. Did he save you from some of your enemies? All. He saved you from all of your enemies. So deliverance is about breaking the power of the lie so that the voice of the Father who has always been speaking can be clearly heard. The Father is whispering to us about our identity, our purpose, and our destiny. And God's word is alive. When we come to Jesus and His word is released in us, it will come up against strongholds. A stronghold is a house of thoughts. It's a pattern of thinking under the power of sin. And these are strongholds of thoughts that keep us from hearing the Father's whisper. Sometimes we just tolerate what I would call stinking thinking. We have these patterns of thought that we actually think they're helping us. How many of you have ever tried to shame yourself into holiness? How'd that go for you? If I just beat myself up enough, I just tell myself how horrible I am and ultimately what we're doing is agreeing with our accuser. God wants to break those strongholds of thinking.  And God doesn't want us to tolerate these small strongholds. The thoughts that God has about us are the treasure that we seek. He really is that good. His voice, His heart for us, the things that He wants to say to us are good beyond measure. He really does want good for us. He does have plans for us. Jeremiah 29, 11. For I know the thoughts, the translation says, I know the plans I have for you, says the Lord. Plans for your welfare and not for evil to give you a future and a hope. Many of us feel unwanted. We feel rejected. Parents may have said you were a mistake. Maybe when you were ordained, your bishop kind of ignored you. Wasn't the Father that you wanted him to be? We experience these whispers, these limitations in our small story. But the bigger story is that God has always loved you. He's always treasured you. He's always wanted you. And He sent His Son to rescue you. Even when we rejected Him, even when we turned our backs on Him, He never stopped loving us, and He's never stopped speaking to us. Just because the other voices were louder, just because we had those deceptions, kind of like ear plugs in our ears, doesn't mean He wasn't speaking. The work of the enemy is to keep us in that small story. Jesus said, I have come to destroy the devil's work. Jesus came to destroy the devil's work. What was the devil's greatest work? The deception that God is not a good father. You are called to be a minister of the gospel. To proclaim what Jesus has done, you're also called to destroy the devil's work. To tear down the strongholds and pretensions that set themselves up against the knowledge of God. There really are two kingdoms. There's the kingdom of darkness, and in darkness we cannot see. We cannot see clearly. We cannot choose fully, and we choose in the context of deception and bondage. And then there's the kingdom of the beloved Son, where as we gaze at Jesus, we see the love of God the Father. Jesus taught us to pray, Thy kingdom come, Thy will be done on earth as it is in heaven. We are asking for the reign of God here on earth. And when God's kingdom reigns on earth, there's really only two areas where Satan can have authority in our life. One, areas where we have not yielded to Jesus is Jesus' Lord. Have you given him everything? Or is there an area that you're holding where you don't trust him, where you really don't want to give that up? So areas where we have not yielded to Jesus, and second areas where we do not fully trust. Again, Colossians 1.13, we looked at that last night. We have been delivered from the kingdom of darkness into the kingdom of the beloved Son. Baptism. Baptism is a transfer. It's a deliverance. It's an exodus. I know when you see the baby, you think about new life, you think about creation, but it's also a death and a resurrection. Out of the kingdom of darkness and into the kingdom of the beloved Son. I like to think about it like this.  You know what I'm talking about? You put your quarter in and try to win a prize. Never works, does it, right? The skill crane comes down and it plucks a toy out if you're good at it, and it brings it over here, and then it drops it into the bucket, and then you get your toy, right? Baptism plucks us out of the kingdom of darkness and deposits us into the kingdom of the beloved Son. But you were probably raised in the other kingdom. You grew up in the kingdom of darkness. You were surrounded by the kingdom of darkness. You learned the ways of the kingdom of darkness, and now it's time, as Paul said, to put off those ways and to put on Jesus Christ, to put on the life of the Son of God. And so Jesus describes the kingdom of God like yeast working its way through dough. You don't just put the yeast on and walk away, right? You got to knead it. You got to stretch and fold that dough until the yeast, the kingdom of God, works its way through the entire batch of dough. And so renewing our minds in the Holy Spirit, in the Word of God is part of deliverance.  Amen? Jesus is my culture now. Some people say, oh, well, everybody yells in my family. We're Italian, you know? Everybody's angry in my family. We're Irish. That's who we are. Well, that's not... If it doesn't belong to Jesus, then it doesn't belong to you anymore. And if it does belong to Jesus, it does belong to you. That's what being a disciple means. It's monkey see, monkey do. Whatever I see Jesus do, I want to do. And if it's in me and it's not in him, I want to put it aside. And so deliverance in many ways is about unlearning the old ways of the kingdom of darkness and the ways in which we've been shaped and formed and learning new ways. Finally, I just want to close by saying that the mission that Jesus started continues through us. Jesus' mission in Luke 4, verse 17, He says, the Spirit of the Lord is upon me because He's anointed me to preach good news to the poor. He sent me to proclaim freedom for the prisoners, recovery of sight for the blind, and release for the oppressed, to proclaim the year of the Lord's favor. Jesus' mission is now our mission. In the Acts of the Apostles, we see that crowds gathered from the towns, bringing their sick and those tormented by evil spirits, and it says all of them were healed. The purpose of our time together is not just that you will experience freedom, but also that you will be prepared and equipped to give away what you've received. Deliverance from the influence of evil spirits is normal part, a normal part of evangelization. Amen? Too often we've separated everything. We put the proclamation of the gospel up here, and we do a little bit of healing prayer over there, and then we do the deliverance ministry in the base pen. But in Jesus, it was all one. It was proclaiming the kingdom of God. The kingdom of God is right here, and demonstrating that through the healing of the sick and the deliverance of those who were oppressed. It was one message. It was one ministry. We need to understand the authority that we've been given in Mark 16. After Jesus said, as the Father sent me, the Father is sending, I am sending you. That's profound, isn't it? The Father is, Jesus is sending you just as the Father sent him. Mark 16, he says, these signs will accompany those who believe in my name they will drive out demons. It's really important that we understand that Satan gets his power from us. If we don't give him authority, he has none. St. Augustine describes Satan like a chain dog barking madly. All he can do is bark. Can he bite? Only if you begin to walk into his territory. Fear is one of the devil's entryways. We all need to understand our position in Christ, and Satan has no authority unless the door has been opened and we've walked into his territory. How do we walk into the enemy's territory? Two ways. Fear and pride. Fear and pride. And so freedom is the ability to choose the good freely. It's the awareness of who we are and our calling in Christ. We all need to make practical choices to live as a part of the body of Christ, to be vulnerable with others, to be a part of Christian relationships, and to choose to be a blessing to others. But deliverance is an ordinary part of the Christian life. It's seeing your story as the part of the larger story of the life of the Son of God. Freedom is your inheritance as a Son of God. Amen. Let's pray. In the name of the Father and the Son and the Holy Spirit. Heavenly Father, thank you for sending your Son who is the light of the world. In him we see all things. Thank you Father for the gift of your Holy Spirit who's at work in us even now. He is separating every thought at the level of our hearts, helping us to see the difference between your truth and a lie. Jesus, we want to say yes to being your disciples, to allowing our thoughts and our words and our actions to be defined, not by our small story, but by the reality of the Father's love. Holy Spirit, we say yes to your work right now. And Lord, as we learn to use these five keys, we ask that you do a great work in us, that we would be able to say with joy that you have saved us from the hand of all of our enemies, from the hand of those who hate us. Jesus, we give you glory and honor for the victory is yours. In the name of the Father and the Son and the Holy Spirit. Amen.


Hello and welcome to HealthFocus, a production of the Ministry of Health and Wellness. I am Fener Neptune. Today, we have with us the Mental Health Psychiatric Nurse Practitioner, Nurse Alicia Sejiz, who will provide us with information on mental health and mental wellness. Welcome to the programme. Thank you for having me. Before we get into the discussion as it relates to mental health or wellness, perhaps you could tell us what is mental health or mental wellness? According to WHO, it says that mental health is a state of well-being in which the individual realises his or her own abilities, can cope with normal stresses of life, can work productively and fruitfully and is able to make a contribution to their community. So mental health is where you're well-being, you have a balance, you're able to function, you're able to relate to others, you're able to work, you're able to help others. So that will be mental health. Okay, and why is it important for a person to actually maintain their mental health or their wellness?  You'll be able to interact properly, have good relationships, you'll be able to function well at your job, be productive, you will have good self-esteem, it builds up your self-esteem. So in order, if you're mentally healthy, then you'll need a more productive and healthy life. Okay, so would you say that everyone should actually maintain his or her mental health? Yes, we all should, all throughout the lifespan, from infant to adulthood, we should all work on maintaining our mental health. Okay, and what are some of the types of situations that will actually affect a person's mental health?  At one end you have mental health and at the other end you have mental illness. So like we go, day to day we go up and down on the continuum. We just want to stay above the midline. So you have mental health at one end and mental illness at the other end. So things that would affect our mental health, if we don't sleep well, we cannot concentrate. If we extra stress, if we highly stress and we don't relieve our stress, if we sad, we go through a loss, grief, a loss, sadness and we're not able to cope or not able to deal with it, examinations and all of these things will take us a little bit down the continuum in our mental health. But most people are able to bounce back. That's one thing about mental health, able to bounce back towards the healthy side of mental health. Okay. So you're saying that although somebody might go through a period of time where they might be stressed and the mental health might be affected, there is a possibility that they could get back to their normal self? Yes, there is a possibility. Okay. And would you say that anxiety, stress, depression, all of these would contribute, actually contribute to somebody's mental health? Yes. Anxiety, our feelings of anxiety, sadness, depression, all of these would affect our mental health. But the thing with it is that we're able to deal with these situations, these conditions and able to come back to mental health. Okay. Would you say that mental health problems would affect a specific gender or is it something would you say, yes, that it affects everyone? Is it does it go with gender, race, education? What does it, if you could explain a little more in there. Okay. Mental health issues, mental health problems, would affect everyone. But there are certain conditions, like they say depression is more prominent in women, whereas schizophrenia, another mental illness is more prominent in males and the age difference depends on the condition will differ. So depends on the mental condition, these it will differ. Okay. And what are some ways in which persons can actually maintain their mental health? Okay.   Okay. Learn your emotions. So like say, if you know that you're going to get very angry, know what situations cause you to be angry and have a means to deal with these situations or deal with your feelings that you don't go to the extreme where you do something that you may regret later. Also use your words, should be able to talk, use your words how you feel, I feel this way or this is affecting me this way. So use your words. Okay. Healthy body, healthy mind.  Make time for friends and for families. Sometimes we're so busy going about our daily lives. We always have something to do, work, work and we don't take time for our friends and families. So if something happens, these people are supposed to be our support system. If something happens to us, we don't, they are not there because we don't know when last we spoke to Tom or when last we spoke to Jill and we were looking for them to support us. But if we're on our way, we will pull our friends and our families with us, they help us build our foundation with them. If something happened to us, we don't have too far to go because our support system is right there, is right there to help us. Another thing causes a lot of stress is finance. So to avoid that stress, we create a meaningful budget. Sometimes we have needs, we have wants. So we focus on what we need and then our wants, if you have extra, we do what we do our wants. That will help reduce the stress, a lot of stress. Build confidence in yourself, like who you are. We all have our faults, we all have our abilities. We maintain our abilities and we try to work on our faults. Well, we are due for a break so I would definitely want you to hold on to that pot and we'll continue our discussion. Okay, thank you. We'll be back in a moment. Coronavirus? I am worried Gaza is only all people dying from that. Hold up. Being young does not mean being safe. Yes, it's true that the elderly are at higher risk but anyone can get the virus. The fact is even worse if you have a chronic condition like hypotension, heart disease, lung disease and diabetes or weakness in your immune system. If you are living with these conditions, be extra careful. Wash your hands with soap and water. Use hand sanitizer with at least 60% alcohol when hand washing is not possible. Avoid touching your face. Take steps to boost your immunity through proper nutrition, exercise, rest and take your medication as prescribed. Keep it being around people who have through symptoms, even close family members. Our health is in our hands. Together through simple actions, we can stop the spread of coronavirus. This message was brought to you by the Bureau of Health Education of the Ministry of Health and Wellness. Welcome back. We will continue our discussion with nurse Alicia Sejis on mental health or mental wellness. Before we took the break, you were discussing in terms of ways that people can actually maintain their mental health if you can continue this discussion. Okay. Where you left, you're looking at building your confidence. So we have to realize that we cannot do everything and what we can do, we do the best that we can do. Okay. We work on that one. You learn to be at peace with yourself. You practice mind-free less. Like they say, stop and smell the roses. When we're doing something, we're so preoccupied, we say multitasking, we don't stop and see exactly what's going on. So one thing, we can stop, ground ourselves. Let's look at five things that we have here right now. I can hear the birds. I can see the butterflies. Okay. Five things to ground yourself to make sure that you are there, mindfulness. Practice gratitude. Be thankful. In spite of the fact that something is wrong, we still have a lot of things that are right. So if every day we can think of five things that we are grateful for that happen to us for the day, we'll have a more positive attitude, a more positive outlook. Like you say, like another one, it comes up against take connected with others. Call your friend. Call your parents. Stay connected. Stay connected. We are sociable people. We need connection. We need to meet with people. We need to talk. Take connected. Practice your faith. We all want something to believe in. So whether it is whatever you believe in, you practice your faith. Take time off and practice your faith. Volunteer. Doing things to help others just because you can do it gives you a more sense of satisfaction and you do it because it's your work. So take time. Volunteer. Help others. Help others around us when you're able to. And lastly, ask for help. We are sometimes in life, we all need help and we should be able to ask for help. So these are some of the tips if we practice, we'll keep us on the way to keep us mentally healthy. So we can definitely see for somebody who wants to maintain their mental ability, there's a lot of them doing the work with themselves, doing getting involved in different activities as well. Yes. And you mentioned ask for help, one of the things that you mentioned. But for some persons they might feel okay, we've done all of those different things in terms of the exercise and getting involved in certain activities. But they feel that okay, I need more help. What services and does the Ministry of Health have available in the various communities? Okay. First of all, let me just start by saying our team in the community. Presently, we have three mental health psychiatrists practitioners in the community. We serve the island. We have three community mental health nurses and we have four community mental health aides. That is our team. And we provide clinics, one of them we provide clinics at each of the wellness centers. Okay. Anybody can access the services. The services are for free.  If it's an emergency and it is required care, the nurse at the facility will find one of us and we'll get in contact with you. Okay. You don't need to be diagnosed with a mental illness or be a known client of the wellness center. You can come for help. Help is available. Like I say at each health center, including Denry hospital and Surfer hospital, there's a clinic at least once for the month. Some places there's clinic twice for the month, but most places is once for the month. These are the clinics. Okay. And the services we provide, like I said, we have mental health clinics. We have medication management, like persons who are on medication, persons who left the wellness center on medication. We assist with maintenance of the medication. We administer the medication. We do psychoeducation. We educate on the different conditions. We do health promotion, where we talk about the different medical mental conditions and how to maintain your mental health. We do community outreach. We do school outreach. So if you need us to come to talk to you, talk to your workplace, talk to your employees, you just call and make a date. And we come to give the lectures. We also do assessment of the pregnant family, where we look at the coping of the pregnancy, the coping after the pregnancy, so we can alleviate any problems later. We do counseling. We do home visits for persons who cannot come in. We go to the home. We go to do home visits. We do institution visits, like with Cornerstone, St. Lucy's Home, Comfort Bay. We do these visits. We do also street visits. Some of the communities and the streets go out on the streets to the people to give them the medication and to do checkup. Referrals, if we need the situation we cannot handle, we need more. We refer to the wellness center. If you need to refer to the private psychiatrists, if you need to refer to social services to welfare, depend on the problem because the whole thing will not be mentally ill, mental alone. They will have other issues that contribute, other social issues that contribute. So we do the necessary referrals. We also do initial assessments. If somebody is querying, maybe something is wrong, they can come in and we'll do initial assessment. We also do ongoing assessments of non-clients who has been discharged from the hospital. We do that also. So these are the some of the services that we offer. Great. I can definitely see that there are a lot of services available for our mental health awareness. Yes, they are. Thank you so much. Well, it was definitely a pleasure having you on the program today. Thank you so much for coming on. Thank you very much. Well, that's how we come to the end of Health Focus, a production of the Ministry of Health and Wellness. I am Fernan Neptune, on behalf of the entire production team. Thanks for watching. Until next time.


Star formation, star formation is the process by which dense regions within molecular clouds in interstellar space, sometimes referred to as stellar nurseries or star-forming regions collapse and form stars. As a branch of astronomy, star formation includes the study of the interstellar mediumism and giant molecular clouds. GMC has precursors to the star formation process, and the study of protostars and young stellar objects has its immediate products. It is closely related to planet formation, another branch of astronomy. Star formation theory, as well as accounting for the formation of a single star, must also account for the statistics of binary stars and the initial mass function.