So much thank you so much for handing it over to the gyms.  No, we're not. We're just two distributed people working on distributed database and Kubernetes. Welcome everybody to the event. My name is Jim Walker. I'm actually Jim do you want to come on video so that we make this a little bit more personal. Thanks buddy. Good to see you as always. Hello everybody. I'm Jim Walker. I'm principal product evangelist at cockroach labs. My job at cockroach lab is to really kind of help people understand some of the technical underpinnings of what we're doing here and apply them to what they're working on. And I love doing this I've been in the Kubernetes space for really quite some time. I've been in fact the first time I saw cockroach TV was on stage with the CEO core OS demonstrating something that's kind of very similar what we're going to demonstrate here so Jim do you want to just give a quick introduction of yourself as well. Sure. My name is Jim Hatcher and I'm a solutions engineer, which means I get to work with customers and prospective customers and help them work through, you know, the technical aspects of cockroach TV and now recognize if they're a fit for the use case they're that they're choosing. And so it's a really, really fun job and I get to come on webinars occasionally with Jim Walker and do demos of cockroach that's fun. So and, like I said it's just Jim and I, today, that's our band name, you know, we're here to answer any and all questions. As noted, please do don't questions in the QA. I'm going to go through a fair amount up front just to explain kind of what we're doing in cockroach database, but I'm going to try to tie it to kind of distributed systems and the, but I like to call as the distributed mindset. I think in my conversations over the past couple years it's, how do we help people become distributed like because I really do believe that this is the future of kind of all software engineering and all of our systems. And I, you know, I saw the light a couple years ago and so I just like to expose some of the principles that we're using here. I do like to think that cockroach database is a PhD and distributed systems as some of the stuff that we're doing is, it's pretty phenomenal. We have lots of information or documentation if you really want to get into deeper deeper levels. I know we have a sigmod paper that we published. Oh gosh I think mid last year if you look up sigmod and cockroach labs, some really great engineering details there. Before I even started, I would be remiss without thinking, you know, years and years of work on distributed systems and, you know, a lot of the stuff that we do here at cockroach labs is the senate of a lot of the stuff that we've seen come out of Google over the past 15 years if I think anybody who talks about these, these concepts and doesn't think you know Jeff Dean and Sanjay Gemma and many, you know, Eric Brewer, many of the distinguished engineers at Google I think is, you know, it's almost short sided and this is this is the tech that's driving the future of what I feel is happening in the data center and the data center being cloud. And that's really kind of the underpinnings of this conversation so I hope this is valuable. Again, please do ask questions along the way Jim and I love questions and we would love to basically basically try to answer them in line as as we're going along so it'd be great. There's this concept of distributed SQL and this talk is about Kubernetes data and a distributed mindset and that to me the mix between this, you know, what's happening in Kubernetes and what's a reality is that you know when when I was at the US few years back, I always saw companies struggling trying to figure out, you know, stateful week will workloads I think at the beginning of the Kubernetes world was all I had stateless workloads I'm like, What is that even mean. You know the database is such a key component of all of our applications. Well, let's say most of them that you know there needs to be kind of a re architecture rethink of it as a layer of the software development stack. And that's really why you know there is kind of this emerging space around distributed SQL. You know one of our, our partners in the CNCF you know like there's the Vitesse project you'll hear you know how do they, how do you shard my SQL, you know within within a single environment how do you automate that that sort of stuff like, and to me, asking the questions about distributed really comes down to really five questions number one, if you're going to be distributed SQL, is it sequel. Number two, I think a core concept and distributed senses is easing the complexity of scale, because it's kind of a big piece of what we're doing here in the cloud. These things need to be geo replicated, always on and resilient. Again, a core principle of distributed systems, you know architecting for resilience into the system itself. And that's the outlet, you know, technology around the thing, keep it alive, let's let the thing keep it alive. And then if you're talking about SQL and you're talking relational, some sort of level of asset compliance and distributed it's not single node transactions we're talking like truly distributed kind of MapReduce style type, you know distributed transactions. And then, I think, you know, I often have this conversation like I think the biggest concept to understand in distributed systems is, we used to think logically we need to start thinking physically. And the nature of distributed systems, the whole very concept of the word distributed infers that these things happen in various different locations. And so from a data point of view, how do you tie data to a location so that, you know, you can survive failures or you can survive or you can or you can, you know, provide low latency access to data anywhere on the planet and that's something that actually we're doing in we think the database should deal with that. But in your own applications and services, these are all things definitely that that where data lives and and what's happening in your compute is a key concept to actually understand the distributed systems as well. So cockroach was architected with a lot of the same principles as as something distributed like well Kubernetes. And, you know, it's inherent that it has scale and it has resilience. It is multi truly multi master. It's going to guarantee transactions. If you're familiar with something like at CD, I remember when at CD multi master came out. Actually at CD implements raft we also implement raft I'm going to get into a raft a little bit here. So there's what kind of the core concepts of Kubernetes apply here with cockroach like if you, if you kill a pod well the control plan make sure that the pot is up and running again right you you basically set state for Kubernetes and it maintains that we actually show how you can kill a pod and the database going to survive that naturally without loss of data without loss of transactions, and all these different things. We build on top of a lot of the core principles or core concepts and classes in Kubernetes. We can mount volumes locally with source class we can mount whatever PVs you want to actually go out and deal with. And we build on top of stateful sets, and we naturally inherit a lot of the power of Kubernetes. Many people say you know where's your operator you have an operator will funny things about cockroaches. You know when I first got here, I argued with our engineering team to build an operator because well, we kind of are naturally fit for Kubernetes. So how do you do day to operations how do you do rolling upgrades how do you do, you know, certificate controls and whatnot and that's the stuff that we're actually building into our operator. It's kind of the more advanced topics that are going on so my friend Kelsey, you know, he's friends of all of us and just, he's been fantastic for this community. And I can say, you know, cockroach DB is the spanner like Kubernetes is the board and, and, and there's a lot to be said in that statement, you know, I think I'm tremendously for saying that. But I think once you see cockroach and what it can do. Yeah, there's a there's a lot of similarities here. We are a descendant of the spanner white paper so. So we're quickly cockroaches a cloud native database. This is relational database so it implements familiar SQL so if you. You know why are compatible with with Postgres so number one we're going to implement SQL, but scaling a database like this is simply. It's accomplished simply by by spinning up a new node and pointing it at a cluster. The database will redistribute data and and deal with the incorporation of a new node. But what's interesting here is this is not just reads. This is for rights as well every node is a single consistent gateway to the entirety of the database. Often we think about scale in terms of volume. We think about it as in terms of transactions, but we also think about scale. From a geographic point of view, and how do we scale across regions and even clouds if that if that's the case. And so cockroaches very naturally doing this. In fact, I'd say nearly every one of our implementations are large majority of them are multi region. I know on our cockroach cloud product I think, I think 80% of our customers are actually deployed in multiple regions there's lots of reasons you want to be in multiple regions right what if happens if. An entire cluster goes out do I survive that burn entire region goes out do I survive that for us a region can be a cloud provider it can be a region within a cloud, it can be. And then a Kubernetes cluster. We, you know, I think my friend Keith McClellan and I did did a did a demo on a previous Linux foundation webinar, where we talked about deploying a single logical database across multiple different clusters. You know in the Kubernetes world we often talk about how do we federate clusters so that we can have you know one kind of cluster that that is in multiple different regions. That's really difficult to do. Why not to subtract that up to the to the data layers is often the way that we think about that right because we can actually be multi cloud. And we've done this before to we were doing this now. We have a single logical database with data that persists in three different cloud providers, which also is kind of as this unique capability of cockroach you know hybrid multi cloud multi cluster if you will right. And like I said many people do this because they want to be able to survive the failure of whatever failure domain they want to think of is it a, is it a note is it a rack is it a is it an easy is it a region is it an entire data center is it isn't the eastern for that matter or, you know an entire part of the world and you know cockroach is architected to survive those sort of things. It really comes down to implementation details of which you know my friend Jim deals with all the time, helping people optimize their data at the row layer at the row level on how they want to survive a failure how quickly they want data to get to a user. And there's trade offs like it, we're never going to beat the speed of light y'all like that's a that is a physics problem, I would love to be here one day when we do. I don't think it's going to happen in my lifetime or not but you know I think we're dealing with with with software now that is pushing up against these physical limits and there's lots that you can do to get around and and and to optimize for those things but that's that's actually pretty important way that comes out if you think about a single database across, you know three different clusters. If I have some random using at user asking for, I guess this is my CEO's customer table here's Spencer Kimball's data. And he's asking through, you know, through load balancer to any one of the nodes in the US West cluster. And this is smart enough to go find that data, and the raft leader and we'll talk about raft a bit from wherever that lives wherever that resides, and then return that data. Now we do this because, well, you know Spencer lives on the East Coast and he wants fast access to his data. And so we're going to actually go and the raft leader, the authoritative source for his records is going to live on the East Coast because when we write data to cockroach we're actually writing it in tribal kit. That is configurable you can do five times you can do it seven nine some odd number because ultimately transactions are completed via quorum rights, two of three nodes have to actually commit. In this case, I can survive the failure of an entire region because I still have access to that data, right typically you'll put maybe one copy in each, each region. So you can actually still commit and deal with rights right so, but it's an implementation detail and something that's configured by you at before at the real level on each table. So you want fast rights in every region, well, you're going to have copies of that all over the place and you're going to allow for rights to be you know follower reads and we have lots of features that get into these things and and it really comes down to what you want to accomplish with each table, not a database in its in its entirety, which I think is kind of one of those key things but you know being able to access data from any note is just it just keep hard of cockroach. So we also understand you know you need security you need optimization we have a distributed cost base optimizer. When you do backup and restore in a distributed system isn't distributed. You know, and I, you know I'd be remiss without mentioning our documentation again. It's probably some of the best documentation I've seen a piece of software in a long time open source or not. And so I would just start there I think there's some really wonderful details there so. Before Jim gets into the demo I just want to explain a couple things on how we actually accomplished what we're doing. And I think it's in these concepts that will help people understand kind of what the challenges of our distributed systems are. Ultimately cockroach is a database on top of a database at the storage layer and if you think about database database has storage, because well we have to persist data that's the whole point here right. So if you have a language which well we believe that sequel definitely for relational data. I think that the elegance of the sequel model is. And the, you know, sequel data modeling is just, it's apparent of how beautiful and easy that is to mirror business logic. Document models are interesting. What happens when you get to you know 15 documents or 20 or what is that what is the complexity how do you change things. And you know the the elegance of that data models kind of interesting but but in the middle is this distributed execution which sexually really really important. Being truly truly distributed at that layer is also kind of one of those key things but at the lowest layer the storage layer, what we're doing is actually storing data using a KV store. We actually had used some called rocks TV, which is an open source product. We translated that into go and re architected it a bit so that it is a kind of, you know, more optimized for some of the things that we were doing from a global point of view. So it could be a multi tenant KV store, which is stuff that that we're working on right now, something called pebble is what we call that rocks pebble get it. And we do that so in a traditional database what you have a say you have an inventory table you just keep a penny records to the end of that you have an index that points to these records just bunch of pointers and memory. And that's how you kind of store data, right and that's how you store data, right you just keep a penny to the bottom of that table. Well, we had to actually rethink that we redid that so that we can actually gain the value of KV yet still be distributed and this gives us a lot of power. And as I said, every table is a monolithic sorted KV map. All tables have a primary key. And the K in the KV is the name of the table, the index, a key and say a column name, and then the value is going to be the column value the best way to show this to just show you a table. Right. So here's a simple table, it's our dogs table. These are, you know, some office dogs that we have. And there's some entries over on the right hand side we have ID, we have name, and we have weight. When we write these records to cockroach at the storage layer what we're doing is we're taking you know this first record and we're saying let's break it down. It's the dog table, there's the ID, there's the key and then the column name is name, and we're going to store the value car dog 34 weight 10 dot one. Okay, so for the second record for the third record for the fourth record. And what we're doing is if you just look at those keys if you were just to sort those keys like put them into say Excel or sheets, whatever, right. And you sorted them, you this would be in some monolithic kind of lexographical key like storage right like it would be completely kind of sorted correctly. So we know exactly where to insert records now this allows us to do some really really cool things. And let me show you kind of how we use that then. In in cockroach we have basically a concept of a range right a range is basically it's arbitrary that it's not actually arbitrary. What we do is we break down each table into these contiguous chunks. Think about this as a shark. We're using 512 megabits it allows us to kind of amortize indexing it allow it's small enough for us to move some things around. So look at this table we've we've ordered everything and now we've created ranges and these ranges are now ordered. Right. And so what we do is we well if you're going to do this you actually have to find these ranges and this distributed system so we actually implemented index. If you're familiar with a be tree it works very very similar to that. But what we do is we then if we want to insert a record and say we're going to insert sunny into this table we go through that index we go look at that range and we say hey range do you have enough space. Yes the red range has space. Great let's insert that record let's move on. Okay. Cool. Great. Well what happens in the case that I want to insert another record say I want to insert Rudy. Come on slides what do you do to me today. Jim, you know your demo is the thing that's supposed to have problems not my likes, you know Google slides right. Oh man I went too fast. There we go. So let's say I want to insert Rudy into this range. Well, the range is smart enough to say hey I don't have enough space I'm hitting my 512 limit. What it does is it splits the range and inserts the record. What we've done is just completely automated charting there's no like user interaction to do this there's no like manual charting in place there's no like rethinking through the data. We're basically just doing this all under the covers in real time. Now we aren't going to split a range in real time. We're going to let people, you know, go a little bit past the limit and then you know clean up things in the background when a range is going to be used right so that we don't affect performance of access or whatever that is right and so, but we're doing this all automatically. And if you think about a production database, there's hundreds and thousands of ranges of which you know database like cockroaches will basically manage and maintain and understand kind of what's going on this is just happening all the time throughout the entire system. If ranges get too small it'll contract things as well in cockroach to optimize you know efficiency for searching and that sort of thing so there's lots of efficiencies that are going on. But ultimately I think the key part here is this is kind of automation of really the sharding of the database itself so this is that natural scale that we talked about in terms of kind of one of those core requirements. Now, we use something in cockroach called raft and if you aren't familiar with raft and you want to learn about distributed systems I would highly suggest going out and reading about it in fact, there's this really great website called the secret lives of data. If you want to go check it out, there's a great, there's a really, really great description of raft and how this works. You know, for our purpose, you know, this is how we kind of atomic rights and consistent reads across all of our data. Raft is implemented really as an odd number of replicas. So on the right hand side you see it's blue. This is that blue range. I forget which dogs, I'm pretty sure and buddies in that range that's my dog right. But we have three copies of this data, and that represents a raft group. Now this, the protocols is is chatty was gossip going on. And there's a kind of these coalesce heartbeats to make sure everybody kind of is in sync at all times now. There's a concept in raft called a raft leader, a leader is elected across the three of them, and it coordinates all rights, it promotes commands to the others and ultimately it's going to be able to serve an authority up to date. So it's a great record for for what you actually want to access. It is actually key key concept, and it is really what allows us to get this kind of atomic replication of commands if I just asked the raft leader to do this, and it can go on off work with all the other replicas and say great two of three have actually committed the raft leader knows this I can say hey I've done this and so this distributed consensus is such a key piece of distributed systems. So it's a little bit of a raft. That's what we chose to implement there's another one called Paxos, which is, which is popular with with with some others as well. But to me I think these are you know key key concepts to actually understand the distributed systems. We use it a lot within cockroach, and it's really kind of core what we're doing here. What are we putting this data in a cluster and how do we survive these sort of things before we get into this is kind of how it works basically what we do when we write data to a cluster here's a four node cluster. When I write the first range and when I write the first range blue range and when I write the red range. And we've basically distributed this data evenly from just a volume point of view across this cluster. And remember this is millions and millions or hundreds of thousands of ranges that we're doing this for we can also do things we take heuristics on workload so say there's a range that has you know really heavy access to it. How do we actually segment that off onto a particular node.  You can use things like sequential IDs in cockroach.  You want to use some sort of random number like a UU ID something like that like there's a lot of best practices that come into play here. When you set the database up right. But think about from a distributed mindset as well when you're dealing with distributed database. Do you want to insert 10,000 records in one commander do you want to do 10 inserts of 1000 records. Right. And so this kind of distributed thinking comes about when you start to design the data and then how you interact with it as well which is kind of a key thing. Right. So you don't have these kind of overloaded nodes for a particular transaction whatnot. And also to something that's really interesting night and I talked about this at the very beginning, you know this this concept geo partitioning. You know, can we overload the key to sort the data in this in this KV store, so that, you know, we can insert say a location to this, because when we deploy cockroach we basically just say hey each node is assigned a region or a location if you will. We can set that location and now tie it at the row level. So there's a country code for EU well everything that has a country code EU, EU is now part of that key. Right. You know that the key for the first dog was 34 will it is EU 34. Now all that is sorted now when my sort happens on KV. Everything is in order where things should live. And now I can say everything that has keys from you know EU blah blah blah blah that's stored in Europe. This is the database to tie data to a location so that really three reasons this happens. Number one resilience, I want to make sure I have copies in three different regions based on what it is. Number two speed of access I want records that are in the EU to be located in the EU. Often we see people use this from a data compliance and privacy point of view I want to actually just tie data to say German users on German servers only. All right, and so this is all configurable via some simple, very, very simple DDL within the database itself to actually take care of these things so developer can actually configure this on the fly right. We also rebalance things so on a scale okay great I added a new node the database is smart enough to actually redistribute the data so grab just scaled for for volume but I've also scaled for transactions as well right because any one of these can do this. I can survive the loss of a note. If I lose these ranges that are on node three. Well the raft leaders which kind of have that dark thing around it knows that one of the replicas is gone right because I have to have a complete replica set of three replicas. And it'll just make a new copy on another node the database is just surviving this naturally. We can also survive kind of temporary failure say the database, you know, you lose a node for say a minute or something, we can actually replay logs and get that thing back right All of this is happening completely automated unbeknownst to you spin the cluster up all this isn't there just there happening in the background. And without any real configuration I mean the geolocation stuff for sure but this stuff is all very, very natural so. All right, so I just wanted to give a quick kind of like high level understanding of some of the core concepts that are happening underneath covers now. So Jim is going to come and show is you know, how is this aligned then with Kubernetes because if we can scale the loss of a node and Kubernetes can kind of ingest the loss of a pod. What if we're deployed on Kubernetes how do we survive that sort of thing how do we scale how do we just put up a new pod right so Jim I'm going to leave it off to you. I hope that was good valuable baseline information for everybody but let's go into the demo itself Jim. Yeah thanks Jim. Other Jim. Other Jim, hold on a second, how do I stop sharing now I think zoom actually, oh there we go. Zoom hasn't changed I've changed it. Yeah. Now you're still the same wonderful person you always were. I'm Jim one your Jim to that's right Jim. Yeah. Okay. Yeah, so I stood up a cockroach cluster. In GCP. And I did it using, I just followed the some some documents that we have on the cockroach labs.com website. If you kind of navigate to our docs page and then look under deploy orchestrated Kubernetes single cluster deployment, I went through these steps. And once I had stood that up. This is the DB console we call this kind of administrative tool that you can use to monitor what's going on and cockroach. And so you can see that we have, we have three nodes here, they're called cockroach DB zero and cockroach DB one cockroach DB two. And so this is actually running in Kubernetes Kubernetes. I mentioned that the cockroach runs very well and Kubernetes we can kind of. I would say we both embrace that distributed mindset that Jim's talking about, and kind of a cloud native approach to to doing things so I'll just show you real quick we have a run and get pods command. I have, I have the three cockroach nodes running. Zero one and two. Also have another pod running, which is my client that I just kind of used to run some commands so. So, let me, let me demonstrate a couple, couple quick things. One thing I'm going to do is just run. I'm going to run a command here against my, my client pod.  Mover is like a ride sharing app that we use to kind of demo capabilities. So if I kick that off and Jim just really quick in the cockroach DB binary are several different workloads that you can just run. Part and parcel of the binary you can run TPCC there's wide BSEV there's the mover workload which is a fake app that we created but a lot of people do this just to demonstrate or just test things out but but it isn't like you had to create that Jim it's just part of the binary itself that's an important point there. Right. And I think that's with the cockroach binary. That's one of the reasons we're, we're really, we work well in Kubernetes is because when you launch cockroaches, you literally download one single binary. And when you do that contains the code to run the engine contains the code to run this monitoring interface and all the workload code and the client code. And it's it's a nice way to bundle things that works well in Kubernetes so. So back over here I clicked the metrics link over here on the left and on this main metric screen. There are two, you know, kind of the two things we tend to look at when we're running loads is this how many, how many statements are running right now. And you can see that that that ramped up a little bit when I kicked off that workload. So this kind of tells us our throughput. And then the other thing that we see here is our latency so this is showing the 99th percentile of our SQL latency. So you can see it's about, you know, seven, eight, eight milliseconds so. So we have a, we have a workload running. Now, what we can do over here in Kubernetes. I'll just remind us what pods we have. I can kind of simulate if a pod went down or a node went down. I can just delete a pod. I'll just delete that cockroach DB two. And so we'll see that gets deleted.  A couple things happen. One is that we see that we have three nodes, but when two of those are live and one of those is gone to a not good state. And then we have this other metric that we see called under replicated ranges. Walker mentioned earlier that by default data and cockroaches replicated three times. So when we get into an under replicated state what we're saying is we're supposed to have three replicas and right now we have two replicas. So it's just kind of a warning it's not like a, like a down condition that because we have two of the three we're still able to to read and write. And in fact, we can see that this workload is still running still cranking away. And then our, our metrics, you know, we're still seeing the throughput and we're still seeing latency is about the same. Now, in the, in the couple seconds it took me to explain what was happening with the under replicated ranges. We can see that this node has come back. And that's because Kubernetes brought that node back. I have this setup in Kubernetes in a stateful set. So, you know, we, we, we declare, you know, the kind of this declarative syntax that we want to we want to stateful set that's running three pods. And so, even though I deleted this cockroach to pod Kubernetes saw that that that wasn't there anymore. And Kubernetes brought it back. And because it's a stateful set. When it brings back a new pod, it connects it to the same persistent volume that was there before. And that, and that hardware that it brings up in place for compute, you know, it's connected to the, to the same data. And so we have, you know, Kubernetes kind of brings brings brings things back to a consistent state at the infrastructure level. And so, you know, I think that's, this is a cool illustration of how cockroach kind of takes care of replication and availability at the data level database level. And Kubernetes is watching things at the, you know, at the infrastructure level and making sure that we have the high availability there. And if, if that had stayed in a, in a dead state for, for five minutes cockroach will kind of go into an auto healing mechanism where it says hey I've got these under replicated ranges. You know, I should have three, three replicas but I've only got two, and it'll wait, wait five minutes for that node to come back up, but if it doesn't come back up cockroach will say okay I'm going to, I'm going to recreate that third range. I'm going to put those on other nodes in the cluster. So that's a cool, cool feature so anyway so we can see that our workload kept kept chugging during that time and our, our latencies are, you know about the same. So, another thing I'll do here is just kind of demonstrate how we can scale out the cluster. Jim, Jim mentioned on some of the slides that, you know, we can span, we're distributed database and we can span multiple regions multiple clouds.  It means we don't have that scale ceiling where we can always scale up up up and then we kind of hit a certain size and we can't get any bigger. We can scale horizontally so to do that in Kubernetes what we can do is. This command to say, let's scale our stateful set, let's spell that out. This is clear. Cockroach DB, and then we can say the number of replicas we want is four. So, you know, currently we have, we have three replicas, which are represented here. I run this command. We can see that the stateful set says that it's scaled. And if I run this get pods command. We now have a cockroach DB three, that's in a container creating state. And so, if we keep watching that we'll see that this moves into a running state and goes into a ready state here. But let me watch the dashboard. What we should see here is that cockroach will automatically see the presence of that new node and we should see a fourth live node show up here. And a fourth node show up down here. See how we're doing. So we're, we're, we're in a running state, we're waiting to go into a ready state second. So one of the things we can, we can look at to kind of monitor this is that there, there, there's a, there's a graph here we can look at that shows us the number of replicas per node. And we can see that right now we have three, three nodes, and then they're each got have 66 replicas per node. Which makes sense. And when we see this other node ad we should see node for show up. Let's see what's going on with this pod. Okay, looks like when I started this, it hit that failed our readiness probe so me. I'll just delete that pod to start again. So, you're just basically restarting the pod you killed it and Kubernetes is restarting it right. Yeah. I started this pod and there are a couple of probes that happen in Kubernetes one is this. The ready readiness probe another one is a live in this probe. And so when you get in. When, when you, you have to pass the readiness probe they have to pass the live probe so let's, let's see if it will be passed at this time. Well, Jim, you know that's the way it's got to work if my slides went awry, you know, yeah. I mean the point is basically you just you now just scaled and the database is going to automatically kind of redistribute data it's going to take care of these things right so Jim and you know you knew this had to happen today for us. Yeah, I know. Yeah, but what I expect to see is you'd see another node show up here, and then these replicas would balance, you know, that we would see this fourth node, and cockroach cockroach say hey I can move some of these 60 ranges that are on existing nodes and push them over to this other three balance everything and what you've done you've not just scaled the volume of the database you scale the transactional volume as well, which is such a key thing to I think one of the things that Jim noted as well. This is a single binary, any node and cockroach can serve as a reader right, any node can take a transaction the database is smart enough to actually understand what it is I think another one, another kind of core concept of distributed convergence is that basic ability. If you can avoid having two different types of nodes or two different types of binary. Now I've seen other databases where they have transaction pods or they have storage pods, it gets real complex on how you actually have to configure those things cockroaches takes care of all that through a single binary. One thing that's really interesting is this, this concept of having the, the UI that Jim that Jim's talking about here which we're connecting to what 34 140 whatever that IP address. That's just any one of the nodes, any one of the nodes is going to service up this UI. And it and that's kind of one of these other innate concepts within distributed systems I think is really really important, you know have a self contained, you know, binary which is that's the atomic unit of scale. So it's kind of a complex topic but I think one of these things it's really important to understand distributed systems if you, if you can treat your, your unit of scale down to single binary do it. Avoid the complexity of having to configure on the back end and let, let the system itself actually deal with that sort of thing I think it was, those are one of the that's definitely one of those big concepts and distributed systems I definitely adhere to and I think it's extremely important, because it's going to reduce complexity, right. So the question about, you know, different multiple environments, like if I have, you know, prod dev stage test, blah, blah, blah, right and so when we start to, you know, deal with these things I think a lot of people are looking at you know, moving data around between these different environments, how do how do people typically accomplish that using cockroach and, you know, avoiding storage costs in multiple different ways to right like, how are you seeing people deal with that. I see some folks that want to take like a, an image of prod and like move it back into like a UAT environment, like once a month or something just to kind of have like, you know, production like data and other environments so you can use like backup backup and restore to do that. A good way to do that. And I think it's one of those things to Jim it's that you know, like if you're doing backup restore in a single system. That's interesting. You know for us backup and restore had to be distributed. Because if I'm just doing backup restore of a single database well yeah I can create a new file and it's on a local like box or with some attached storage or whatever. But what if we are doing geo replication of data maybe we don't want to actually incur egress costs because you know we don't all the data to flow from one region into another right. So distributed backup or restore something that we actually had to implement. It's all the stuff that's around your system and has to be distributed as well. And these things are not easy to do, but but it allows you to do this sort of thing. When I think about different environments. It's really, you know, configurable on what you want to do. Typically Michael. I'm having a hard time reading I took my glasses off. It is it is backup and restore that's how people are actually doing with this you know shave it down. You know do you have smaller production instances and whatnot and then you know manually dealing with that so. So I also love this community Jim because of course somebody's trying to help us you know troubleshoot which is like so perfect of you know CNCF and Linux foundation right like, hey let's all help each other. So I somebody was saying you can, you can restart Docker and the cubelet should fix the readiness probe but I don't know if you I don't know if you fixed it or not but I just love that somebody had the, the, the confidence in our demo that yep there was something wrong underneath it wasn't us it wasn't our software was something else right like. Yeah, so I haven't fixed that I'm not quite brave enough to try to debug it all and get working on the fly but I will say that. I mean we. We, you know, we have customers around us and gcp and any ks and other other Kubernetes based environments and. Yeah, it, it, it works well unless you try to demo it. Oh, come on. Tim, have you set up cockroach on top of you know multiple Kubernetes clusters or I've done that with Keith before what are the complications there I think that's a interesting concept for me for sure. Yeah, if you, if you, if you do run cockroach across multi regions like in your slides Jim you're talking about if you ran one and Google one and Amazon one and Azure or something.  And then you make sure that there's, you know, network connectivity between those you'd set up like a, you know, VPC peering between those environments. And then, you know, you have to use like a CNI container network interface that knows how to talk between them so you know that the cockroach cluster actually, you know, doesn't isn't really aware of the underlying infrastructure just knows, hey there's other, there's these other running in other places. So, you know, I think the Kubernetes community as a whole hasn't hasn't really solved this issue or there's a like a read upon way to solve this with the kind of federation of Kubernetes cluster so the way we do that is we just have three separate clusters. And so you end up having like three, three separate control planes so like I guess one complication. If you want to call it that is that, you know, if you wanted to scale from three nodes to four nodes in each one of those clusters, you know you need to do it in each one of those control planes. But yeah, it works well. I mean, I think that's a that's an issue that over time we'll see an answer to where we can do it in one one control plane across, you know, one like federated Kubernetes cluster but Yeah. Yeah, I think there's a lot of movement there I mean if you look what's going on in the cross playing community if anybody's not familiar with that like just having some control plan across multiple different clusters that sort of stuff I think the, the work that team done has done is is phenomenal. If you look at what Sillium has done to help kind of with the networking problem. Also very interesting, a customer of ours called form three is actually deploying us across multiple providers in production. So I think form three has, I think it's millions of transactions per day at this point they're like a clearing house for for financial transactions in England. And they need to mitigate the risk of a cloud provider going away at any moment and so they're actually using us, and they're using Sillium to solve that networking problem because I think that's the big problem right Jim I think the networking is the piece that when you start to go across clusters you go across clouds. That's that that's the big complexity I think so. Yeah. The nice thing about Kubernetes is it's a consistent interface, so that you know the, you know, the fact it's not like everybody's kind of run their own, you know wildly different version of Kubernetes it's, it's just making sure that everything, everything's talking to each other in a consistent way. That's right. Well and the other part about the Kubernetes community is projects pop up to solve problems. You know we were using open tracing to do some sort of you know to root cause issues and performance of cross queries. We're now implementing open telemetry if you're not familiar with the open telemetry project another one super super interesting. And I think the second most popular project in the CNCF now so, but we're using all those things and I think it just part and parcel of the overall community so Jim I'm going to round this off with with one last kind of part of this If there are any other questions, please y'all do dump them into the QA Jim just interrupt me if there's something that's interesting comes through I'm going to kind of have one screen today so. So, so just real quickly, we talked a little bit about this, just just visually, this is the way things used to work when I used to code an app server at a database, often this was just Fox bro running on my laptop. I'm joking. It was just a database somewhere there was a server there was my app. The problem with these these things is these round trip times. If you think about somebody in New York accessing the database that's a cloud in South Carolina or wherever that is and US East. Well, the speed of light is no joke. You know we're talking about a 70 millisecond round trip time between the West Coast and back. From a human point of view, what's what's real discernible is real time is somewhere around 100 milliseconds concept of the 100 millisecond rule which actually the Google team thought of as they were doing Gmail. But what happens if I have a transaction that takes multiple trips back and forth right consumers don't have the patience and further you know you have timeouts you have a bunch of different issues that can go wrong here. Also the way that we backed up our systems well we had to actually use this kind of asynchronous replication so you have these kind of like active passive systems. What we're talking about with the distributed database is just active active, everything's active all the time everything can serve as a query. I could lose a note and it's and it's completely fine. If you lose your primary and you have to back up to a secondary what's your RPO and RTO in those situations. How do you remediate when you know the secondary when the primary is ready to come back online and you have a bunch of transactions that happened in the secondary. What if it's hundreds of thousands transactions in that five minutes or, or in that hour or whatever that is how do you remediate these two, like what what is the right state of your data. There's lots of issues this has worked for a long time for all of us. Now we've proposed just a concept of active active have multiple different nodes I mean this is just a better way of thinking about not just latency, but also survivability. I have users say on the East Coast and the West Coast say of Phoenix is accessing US West. It's a seven milliseconds back and forth to LA, and it's 24 milliseconds for rights right seven millisecond round trip time. Well what happens if US West goes down, and I'm just simply going up to the US West. I have copies of that data there I've basically I have the quality in my latency it's actually the same amount of time I didn't even have to hop through that thing. Before I was hopping seven milliseconds to LA and then another 24 to get up the coast right those. What is that do my math is 31 right. What if that just went away and it was just a simple 31 milliseconds from you know say Phoenix to there I have now the same thing. I completely survived the failure. There's lots of different ways to configure a database to actually deal with these things. And finally, as Jim was talking about, and I talked about, don't federate clusters distribute the data. I find this to be a very interesting approach to kind of the multi cluster thing. You know maybe you still have to manage two clusters but you don't have to manage it from a data point of view and the application layer can actually just deal with it as it's a single cluster. Because this is a single logical database that's spanning multiple different Kubernetes clusters right I think that's a kind of one of these unique capabilities of Congress DB. We have a Kubernetes operator, as I, as I said, it's kind of handling a lot of the day two operations were continuously working on this. You know, and if we have continuously releasing things, you know to help you kind of deploy manage do rolling upgrades, the same way you do rolling upgrades across pods well you can imagine and cockroach spin down and oh it's been a note back up with a new version. I think we're backwards compatible to Jim is it two major versions or three I think it's two major versions right. Yeah. Yeah, so that'll be a whole year so and then survive pop failure so you know where we've been at this for a while. You know we feel we do have kind of this kind of cloud native database that is kind of purpose built for Kubernetes. If anybody's interested in learning more our documentation is amazing. There's also cockroach University we are building lots of courses, adding new courses regularly. If you want to learn about cockroach I think we have some basically general purpose SQL stuff distributed systems, but a great resource, but our docs is really great and if you want to get started today you want to try this out. You know cockroach DB in the cloud is just a service you can get up and running minutes. So we have a serverless version of this which will completely automate scale. We believe will change kind of the face of database and what this what this completely is because you don't have to deal with any of this kind of back in configuration but you know this is us running cockroach DB on Kubernetes. Our car our cockroach cloud is actually all Kubernetes underneath so we've learned a lot about this stuff over the past couple years and you know we're ready to share this with with anybody. Okay, well that's I think all I had Jim anything else before we take off I don't think there was anything else in the QA was there. I don't think there's one other question but I answered that. Okay. Kubernetes keeps up with IP addresses and. Okay. Oh cool. Everybody thank you for joining. I hope this was valuable. Yeah, Jim and I you know we love talking about this stuff. I hope it comes out and the way that we speak about it. You know Jim and I are happy to answer any questions that anybody has I'm, I'm Jim at cockroach lesson Jim what are you, I'm Jim one so I'm just Jim cockroach what did you end up being within it with an email is Jim H. I'm Hatcher my last name Hatcher. We're the gyms though so engage us in our slack channel reach out download it use it go check out our docs I think is the best way but you know lots of information of how to do this on Kubernetes you know we just do feel this is the right database for that environment so thank you everybody for joining and back to the Linux Foundation to wrap things up. Thank you so much, Jim and Jim for your time today, and thank you to everyone for joining us. As just a quick reminder this reporting will be available on the Linux Foundation's YouTube page later today. Okay we hope you will join us for future webinars thank you so much again and have a wonderful day.


Ejoko Ejoko Ejoko Ejoko ejoko ejoko ejoko მლჟ჉ whispery ღოლთ ფვ჋ ეიე გლ჌ the Deputy Governor of Oregon State and our Leader Baban Aremu Olushevun Oshoba. The Deputy Governor of Oregon State, Dr. Noemot Salakor Oyehdele, the Right Honorable Speaker of Oregon State House of Assembly, the Right Honorable Kunle Oluwamo, the Chairman of the APC in Oregon State, Chiviyemi Sanusi, and Oregon State APC Membership Validation and Registration Exercise, the Honorable Ademori Kuye, members of the Oregon State House of Assembly President. My Leader, APC Ward 1 Chairman, Prince Shegun Awomusi, leaders of our great party in the state, all members who have just joined us, from the PDP, from the ADC, from the APM who have now joined our great party, the APC, I welcome you very warmly. As a matter of fact, we now have 22 members of the House of Assembly in Oregon State out of 26, 22 are APC members. And we are expecting the others to repent very soon and join the great party. So we are expecting them many times soon. I also bring you the very warm greetings and felicitations of Mr. President, the President of the Federal Republic of Nigeria, President Mohamadou Buhari. I am extremely pleased to be here, extremely pleased to be here to participate in the registration and re-validation exercise of our great party. But first, permit me to welcome you all to Ikena, my hometown, but more importantly, the hometown of Papa of Bahfemiahuoloa, the father and progenitor of the great movement that we call the progressive movement today. It is on the broad shoulders of our great party and broad shoulders of the social democratic philosophy of the maximum happiness and well-being of all the people that we in our great party, the APC, stand firmly and confidently today. And so we must situate this exercise, this registration and re-validation exercise in that ideological context. Party registration and re-validation is important because it is an opportunity to have a credible role of our members such that we are able to reach our members from the polling booth level all the way to the world's local government and federal constituencies. Why do we want to reach our people? The people are the party, and the party is the people. There is no party without the people. The people are the party. That is why we must reach them. Our, the APC, is a grassroots party, a party of the people. Our focus is on the welfare, prosperity and well-being of our people. Party members must understand their importance in the scheme of things. They must fully understand the party's philosophy and programs. They must actively be mobilized to participate and propagate and support government policies and programs. But I must say to you, and I'm sure you know it, you don't need to be told, that we are in government today at a most challenging time in the history of our country and perhaps even in the history of the world. This is one of the most challenging times. The coronavirus, the COVID-19 pandemic, has made matters worse. And we have also had, as you know, security challenges that have stretched our law enforcement capacities all over the country. But we will remain the best party, the best people to solve these problems. Let us not be in any doubt about that. Because of our grassroots orientation, we have and continue to put in place the best programs for the welfare of our people. Our focus on jobs for our young people is a resolute commitment of our party. Aside from the various micro-credit schemes that we are putting in place, our payroll support program, the M-Power and now 774,000 jobs program, 1,000 in every local government. We also have the mass housing scheme where we hope that every Nigerian that can pay 8,000 to 10,000 a month can own a home of his own. The mass agriculture scheme, solar systems deployed in 5 million homes. All of these things are programs and policies of the progressive party. You may not immediately see the opportunities, you may not immediately see the effects, but you can be sure that every day and every night, the thinking of the leadership of the MPC, the thinking of the government of President Obama is how can we make life better for the citizens of this country. And I must tell you, it is not without these challenges. There are many, many challenges. The security challenges that we have before us today are not insurmountable. They are not insurmountable. We must ensure and there are few things which we are doing and which we must continue to do. The first is that we must ensure the prosecution of all those who have been arrested for kidnapping, for banditry and for all manner of criminal activities in this land. There must be evidence that justice is being done. And this is achievable by the stronger collaboration between the police, the state ministries of justice and the federal ministry of justice. We can make this happen and we continue to work at ensuring that this is done. The second opportunity that we have is that with the new service chiefs that Mr. President and Dr. appointed, we have a fresh set of eyes, intellect and skills and a fresh look at strategies against the insurgencies in the Northeast and against banditry and kidnapping elsewhere. In this new approach, as you will see you will find that much greater emphasis will be placed on local policing and then on technology, especially for surveillance, for intelligence gathering and even for attacking these villains and criminals. The third thing is that ultimately we must put in place effective community policing. We have argued and many of us are in support of a state police structure. Meanwhile, we must speed up and strengthen all the community police instructors that there are and these are and we must in the states we must continually train, educate and formalize local security structures that are already there so that they can complement the federal law enforcement agencies. Policing must be a collective effort from the local government to the state government all the way up to the federal government. The fourth is that we must resist any attempt to destroy the unity of our country. Our people have lived together for decades, even centuries. While we must attend to the cries of communities and the cries of our people for justice for equity, for fairness, we can do so within this same union. We can address the questions of justice, the questions of equity, the questions of balance, fairness within this union. Ultimately, we are stronger together than apart. I'm pleased to note that the exercise, this revalidation and registration exercise has been very smooth in the whole state. Materials have been distributed and the processes have been followed very closely. I must say that we must make the further step of ensuring that we are able to put all of this information on an electronic platform for transparency and for access by all of us to the information that is contained therein. Finally, let me urge all who want progress, prosperity, abundance and justice to register as members of the APC today. This great party is the vehicle and the platform for all of us to realize everything that we want. The goodness of this nation, the welfare of our people's education, healthcare, everything that we want, we can get on this platform of our party, the APC. God bless the APC, God bless the open state and God bless the Federal Republic of Nigeria. APC! APC!


Hello and welcome to the session. I am Shashi and I am going to help you with the following question. Question says, A drinking glass is in the shape of a frustum of a cone of height 14 cm. The diameter of its two circular ends are 4 cm and 2 cm. Find the capacity of the glass. First of all, let us understand that volume of the frustum of a cone whose height is h and r1 and r2 are radii of two circular ends is equal to 1 upon 3 pi h multiplied by r1 square plus r2 square plus r1 r2. Now we will use this formula as our key idea to solve the given question. Let us now start with the solution. Now we are given that height of the glass which is in the shape of a frustum of cone is equal to 14 cm. So we can write height of given glass that is h is equal to 14 cm and we are also given that diameter of its two circular ends is equal to 4 cm and 2 cm. So we can write diameter of one circular end is equal to 4 cm. Now this implies radius of this circular end that is r1 is equal to half of 4 cm which is further equal to 2 cm. We know radius is equal to half of diameter. Similarly we can write diameter of other circular end is equal to 2 cm. Now this implies radius of other circular end that is r2 is equal to half of 2 cm that is 1 cm. Now we have to find capacity of the glass. We know capacity of the glass is equal to volume of the glass. It is equal to 1 upon 3 pi h multiplied by square of r1 plus square of r2 plus r1 r2. We know glass is in the shape of frustum of a cone and from key idea we know volume of frustum of a cone is equal to this expression. Now we will substitute corresponding value of h r1 and r2 in this expression. Now we get capacity of glass is equal to 1 upon 3 multiplied by 22 upon 7. We know value of pi is equal to 22 upon 7, h is equal to 14 cm, value of r1 is 2 cm and r2 is equal to 1 cm.  Now this is further equal to 44 upon 3 multiplied by 7 cm cube. Adding these three terms we get 7. Now multiplying these two terms we get 308 upon 3 cm cube. Now this is further equal to 102 2 upon 3 cm cube. So we get capacity of glass is equal to 102 2 upon 3 cm cube. So this is our required answer. This completes the session. Hope you understood the solution. Take care and keep smiling.


Hello, and welcome to this presentation in which I'll talk about open source instrumentation with the Digilent OpenScope MZ. First of all, who am I? My name is Janka Tuna. I'm an engineer doing hardware and software design at Digilent in Romania. I previously worked at National Instruments Romania, and I have a master's degree in integrated circuits and systems. I'm really passionate about embedded development, FPGAs, and design for instrumentation. You can contact me at this email address. Now, a few words about our company. Digilent Inc. is the world leader in academic and research technology solutions. And we manufacture embedded development tools, test and measurement devices for rapid prototyping and for training purposes. Our revenue in 2014 was $13 million, and our main locations are in the state of Washington, in the US, in Pullman, in Seattle. We also have offices in Shanghai, in China, the sales and application engineering, and we also have an R&D center and sales office inclusion in Romania. Back in 2012, Digilent was bought by National Instruments, and since then it has expanded. This is a view of most of the product lines that Digilent has. In the center part of the picture you see the FPGA and the zinc system on chip boards. To the left, you can see the instrumentation boards. To the right, the microcontroller boards. And to the lower part of the picture, there are the P-mods. The peripheral module line. Now, we believe in open source. For most of our products we publish the schematics and we share our code. We share it on GitHub. Some of the product lines that Digilent has that are open source are the PIC32 microcontroller line. You may have heard about them in their previous name called Chipkit. The P-mod peripheral module line and the open source instrumentation. Now, first of all, what is instrumentation? A ruler is a measuring instrument. A scale is a measuring instrument. A voltmeter and oscilloscope are also measuring instrument. What we call an instrument is a tool that we use to interact with the project, with the product that we have in order to make it work, in order to complete it. And that our company at Digilent, since we are interested in electronics instrumentation, we are focused on measuring certain parameters in electronic circuits. There are many tools in electronics engineering. For example, there are prototyping tools like soldering irons, breadboards, and so on. There are sources like power supplies, waveform generators. There are meters like analog, digital, voltmeters, and so on. And we also have scopes. There are also scopes like oscilloscopes and logic analyzers, and so on. Our open source instrument is the OpenScope MZ. You can see it here. And it started with a successful Kickstarter campaign. We had more than 1,000 backers and we had tremendous support throughout. You may have heard about this campaign. The OpenScope MZ is a completely open source project. It's case design, it's schematic design, it's software and firmware are all freely available. At the heart of the OpenScope MZ, there is a PIC32 MZ microcontroller, hence the MZ ending in the name. And the most important features that the OpenScope has are the oscilloscope, a two-channel oscilloscope with 12-bit resolution and two megahertz bandwidth, a function generator with 10 mega samples per second, logic analyzer, 10-bit logic analyzer, two programmable power supplies, and an upcoming feature is a data logger. What the OpenScope also has for connectivity is a non-board Wi-Fi module. You can see it here. And the USB connection. It's user interface is web-based. You can access it from a browser or from an app on your mobile phone. We have iOS and Android apps. And this picture shows an interesting use case for the OpenScope MZ. You can see that it's connected via USB to a power bank, and that's just for powering it up.  So basically there is no wire connection between the phone and the OpenScope, such that you can either go to another room to do the measurements, or you can install the OpenScope platform, like on robot. And our current preorder price is $89. This is the user interface. It's freely accessible at waveformslive.com. And we just added the boat plot feature to it. Now, this is still in beta phase. So any feedback that you have on this user interface is welcome. And it will shape the release of this interface. And if you don't have yet an OpenScope MZ, you don't need to worry. You can still test this interface without an actual hardware. You can use what we call the Simulate OpenScope MZ mode. So you can enter this webpage, add a simulated OpenScope MZ and test the interface without any problem. And what I like to highlight is that OpenScope MZ is open source. From a harder point of view, the schematic and mechanical files, for example, if you want to print a case for it, these are freely available. The firmware on the PIC32 MZ is also freely available. You can compile it with Arduino IDE or MPLABX. The waveformslive user interface, again freely available. We also have the native iOS and Android app. And we also have what we call the Digilent agent. Now, Digilent agent is a desktop software that you can download it from the Digilent website, install it on your computer. It's necessary for initial setup to update the firmware on the OpenScope to calibrate it, to set up the connection to the wireless network that you want. And then, if you want to use Wi-Fi to connect to the OpenScope MZ, you don't need the Digilent agent anymore. If you want to continue using the OpenScope with USB connection, then you will continue to use the Digilent agent. If you want to find out more information, you can access at any time digilent.com slash OpenScope and from that point select the resource center button. And all the information that you need is there. There are links also to the software source code which is published on GitHub. Now, a few words about licensing. The hardware is released under Creative Commons, the schematic and the mechanical files. The firmware is either BSD2 or MIT. In the source files where you see the BSD2 license specifically stated, that's the license for those files. All the others have the MIT license. It's a similar thing with Waveforms Live. There are some of the files that are Apache 2.0 license. All the others are MIT. Digilent agent is licensed under GPL3. And also it is important to know that you can always contribute to this project. We welcome any feedback on the existing product, hardware and software. We have a special section in our forum, in a Digilent forum. We have a section for Waveforms Live in OpenScope.mz. You can post there any problems, any feedback you have. And also at the same location we would like to receive any requests for future features for this product, either hardware or software. What do you like to see, in this product? Also you can add your own features, if you like. You can add any hardware features or software features. For example you can add a new measurement type or analysis type in Waveforms Live. You can define a new instrument in the OpenScope.mz. Thermal, for example. And also you don't necessarily need to have an internet connection to access Waveforms Live. You can also access an offline version of it. For example if you install a Digilent agent you would get the offline version of Waveforms Live. Alternatively you can also connect an SD card to the back of the OpenScope.mz. And you can put there an offline version of the Waveforms Live. So you don't necessarily need an internet connection to access the user interface. And we would like to hear from you. If you have any feedback, if you did any update, any change please let us know. Publish them and let us know.


This video is sponsored by AminoApps. Hey guys, Jake here. I wanted to let you all know about the SCP Foundation Amino. Amino is an app where fans can get together and share their enthusiasm for their respective fan bases. They can do this by creating discussions, fan art, polls, and even quizzes. For the new year, we're hosting an AMA exclusively on Amino, where for 48 hours, we'll answer any and all of your questions. Joining the SCP community on Amino is quick and easy. Just click the link in the description of the video or the pinned comment and follow the prompts to download the free Amino app on iOS or Android. You can also find Amino on the App Store. Once you're in, search for the SCP Foundation and join. Make sure to follow us on Amino by searching for our username for Lorne Foundry. That said, please enjoy the video. I can't move my torso or my arms. I'm surrounded by rock and dirt on all sides and I can't move forward. Get me out of here. We're gonna try. Can you see anything? Anything at all? No, I told you it's too dark to see anything. Look, I'm kind of freaking out right now.  So get me out of here. Unfortunately, your safety line was severed when you disappeared, so we can't pull you out. We'll try to figure out another way to retrieve you. For now, just stay calm and keep talking to me. I don't know how much more of this I can handle. Please stay calm. We'll have you out of there as soon as we can. My head hit something. What did you hit? I think it's a shoe. It's small. Jesus. What's wrong? Get me out of here, doctor. Get me out of here now. Calm down. We'll get you out of there as soon as possible. God. Are you still in there, D24-45? Please. Please. I don't want to be in here anymore. We're gonna send someone in to pull you out. It started talking. What started talking? The little boy did, but it didn't make any sense. Tell me what he said. He just kept asking me where he was. I told him I didn't know. It didn't seem like he was talking to me. He wasn't responding to my voice. And he told me to stop crying, but I was actually being calm. What else? Was he moving at all during this? I don't think so. No. He just kept screaming and crying and asking for his mommy. I told him to shut up, but he just kept screaming. And then he finally stopped, and that's when you guys contacted me again. Please get me out of here. Okay. We're sending someone in. Don't panic if you hear or hear something behind you. My chest. D-Class personnel is ready to proceed. D-8600? Can you hear me? Yeah, I can hear you, doctor. What's your situation? I'm in some sort of cave or tunnel. It's very cramped. It's very dark in here. Are you able to move? Well, I can't really put my arm in front of me, but I can wiggle myself forward a little bit. Oh, hang on. D-8600? I think I see a body. It's not moving, though. That could be D-2445. Davies, try D-2445's radio. I hear the radio, I think. I hear Davies' voice. D-2445 isn't responding, and we're not picking up Davies' voice on your radio through our end. Yes, doctor. I can hear you. Davies, turn that off. I can hear him through D-8600. Okay, don't worry. D-2445, listen to me. D-8600 is behind you and is there to help get you out. We're coming. We're here to get you out. Don't worry. Just relax. Just calm down. We're working on it. We're here to pull you out. No, I told you. It's too dark to see anything. I'm kind of freaking out right now. I'm not normally... No, don't freak out. Don't freak out. Everything's under control. We'll take it from here. D-8600, stop talking. Something just isn't right here. D-2445 is just repeating everything she said to me when we initially made radio contact with her. Much more of this I can handle. Just calm down. Doc, I think they're just freaking out. I'm gonna try to pull my arm forward. No, she's literally repeating his side of the conversation word for word. Did she actually move at all like she just said she did? I don't think so. But we're ready to get pulled out. We can't pull you out. I'm sorry. What? What do you mean you can't pull us out? You know how creepy it is in here? Doctor! D-8600, unfortunately the rope we tied to you was severed as soon as you vanished. We didn't realize that would happen.  Okay. Okay, I'm gonna try to inch my way back alone. Good luck, D-8600. We'll stay in contact with you for the time being. Okay. You just have to ask me where I was. You seemed like you was talking to me.  I don't actually feel at all. I just kept screaming and crying. Oh my god. Asking for his mommy.   Are you making any progress? Not really. She's just laying there. The air's getting thin. I think she stopped talking.  What is it? D-8600? Are you still there? What happened?


And in black, I am very happy to step over from the sound stage of suspense. Stand in for my fellow scaremaster of ceremonies. Mr. Lawrie had to attend a special conclave of the International Association of Witches, Goons and Creeps, of which he is a charter member. So I am here in his place, opening the doors of the Mystery Playhouse. Tonight the Mystery Playhouse has been fortunate enough to secure the services of that light-hearted raconteur of murder, horror and the supernatural, the laughing boy of the inner sanctum, Raymond. Raymond's been telling about the horrible things that happened to other people for a long time now and getting a huge bang out of it. But tonight the tables are turned and he finds himself on the receiving end, which seems like poetic justice to see. I think it might prove interesting to find out how Raymond's much-vaunted sense of humor survives the acid test. So follow me to the home of the squeaking door, little house of a thousand horrors, the inner sanctum. This is your host, Raymond. Welcome to the squeaking door of the inner sanctum. For those of you who write in to find out why our door squeaks so much, I guess now's a good time as any to explain that the hinges are rusty with dry blood. Through that door past the most beautiful ghouls in the world. Won't you come in? Friends, are you ready? Good.  You know, you don't need dark old houses or murky graveyards to feel the chilly presence of beings from the other world. Last week, just after I completed my broadcast, I was called to the telephone and I picked up a receiver I heard. Hello, is that you, Raymond? Yes. Are you going to be at home tonight? Yes, why do you ask? Because I'm going to drop by, so to be alone. Who are you? Don't you remember me? The voice is familiar, but I can't quite place it. There's nothing unusual about a call like that. You've got one thing. Ten years ago, my friend, Gideon Blake, was killed. I'm sure of that call, it's some joke. I remember laughing about it back down in my living room with sandwits and bad-sweet milk, but later that night, I looked at those dogs. I remember being awakened by the tower clock shining. It was midnight, somewhere a cat howled against the morning wind that had sprung up. Dreams chilled, and it shutters from my bed at the front door, Mr. Blonofin. I went to see. Standing there was Gideon Blake. Good evening, Raymond. Blake. You shouldn't be so surprised. I told you I was coming. Yes, you've changed so. It's been a long time, more than ten years, I believe. But I don't understand. You were burned to death. How on earth did you come back? There are many things which you will never understand while you're alive and on this earth. Why did you come here? To give you this piece of paper. Huh? What's on it? The names of four persons. They are alive now. In the short time, they will all be dead. I looked at them carefully as we talked. You look hideous. Ugly with horrible burns on his face. The man had a look. Touched a very smell of death. Good night, Raymond. I left it a slip of paper my friend Gideon had given me. There were four names. Stalemar. First three names I didn't know. The last was very familiar to me. It was my own name. Sit down. Thanks. Thank you. No, thanks. What about that piece of paper I gave you? How'd you get it? I told you. Look, I'm a cop, Raymond. But I believe a story like that one. You can call the little men on the white coat. Oh. No, I'm sorry. I bothered you in specter. Let's forget it. I can't forget it. Why? Because Blake wrote that note. Are you sure? We checked the handwriting. It says some of the fingerprints we found on it. How do you figure it? I don't yet. I am waiting for you to tell me everything. Say, wait a minute. Maybe Blake's really alive. He got burned to death 10 years ago. Are you sure? Positive. We checked every angle of his death at that time because we thought he might have been murdered. Murdered? I never heard about that. Oh, Blake was with the department. You remember? Working on a homicide case. The Lawyer Wilcox case. You remember? Oh, dig me. We figured someone might have polished him off, but nobody did. It was a accident. Was this Wilcox murder ever solved? Well, no. Maybe those names I gave you had something to do with the Wilcox case. Wanted to check one. I did. None of your names figure. These people never heard of the Wilcox murder. Hey, Inspector. Yeah, where they went, Gibson? And weren't you interested with some information about a game named Delamano? Yeah. He was the first name on that list you gave me, Ray. What about it? I just came through on the ticket. Delamano was found dead. Murdered. Murdered. Murdered. Murdered. Murdered. This is Inspector Doyle. We're trying to get you all day. I just got in. I've been down to police library setting the file on the Wilcox. All right. Forget about that. Now, listen. I want you to lock your door and all the windows. I'm sending down a red-headed cop to guard you. What? Don't let any dark-haired guy into your house, even if he's your own best friend. What's this all about? We're dealing with a homicidal maniac. The body of Delamano was dismembered. Membered. Tell my man to call me at headquarters when he arrives. Goodbye. Good night. After I hung up the phone, I noticed a little black box on the living room table. I've got her. I don't know. It's because my house was locked all day. I undid the black ribbon. I opened it. I saw inside. That's when it ignored me. With a human hand. It doesn't get thought-cricked in my mind. I recognize something on me. This is Ray Johnson. Yeah, what is it? Did you ever find out what happened to Stella Wilcox? She's the stepdaughter of the murdered Laura Wilcox. Why do you want to know? Well, she was suspected of the murder for a time. Listen, will you drop that angle? Will you just answer one or two questions? Did the killer dismember the whole body of the Delamano murder? Just the hands. Fine. Did he have on a large diamond ring the third finger on the left hand? Yes. Fine, but how do you... I've got it here. Someone sent me a hand with a ring on it. What? And get this. There's a name engraved inside the ring. The name is Laura Wilcox. What? There's a scar on the thumb. There was a scar on the left thumb of Stella Wilcox's print in your file. I took a fingerprint. The prints on the hand and the fingerprints of Stella Wilcox are identical. Are you sure? Yes. Stella Marlowe and Stella Wilcox are the same person. Did you find anything else there? Yes. Black hair on the fingernails. I'm coming down to your place as fast as I can get there. Goodbye. Goodbye.  I turned around. Coming toward me was a man with jet black hair. You know, I can say sudden horrible death when it happens to other people, but when it happened to me, well, the man with the jet black hair looked quietly at me. I'm Robert Lane. You're Raymond Edward Johnson, I believe. Yes. I think a bell spoke to me about you. Can I sit down? What do you make of all this? I don't know what to make of it. I heard what happened to Stella Marlowe. Yes. Do you know that's not her real name? Yes. She was the stepdadder of Laura Wilcox. But I do know. I think I know more about this than you imagine. Is your name really Robert Lane's wife? There was a chauffeur in the Wilcox home, a man named Lowry. I wonder, there's no harm in telling him now. Yeah, I'm that chauffeur. And Amelia Cartley? She was Mrs. Wilcox's maid. Well, Johnson, the murder of Stella didn't come exactly as a surprise to me. Why? She poisoned her stepmother with the help of the maid of Amelia Cartley. That's why I'm involved in all this. Not fool each other. Somehow you discovered that Stella murdered her stepmother. But after 10 years you can't pick up any evidence and you know it. So you invent this wild story about Gideon Blake. Just the right sort of psychological scare to frighten the two women into making a move that will give them away. Very close at the moment. What color is the hair of Amelia Cartley? Brown. Pretty shade of blonde in fact. Very attractive girl 10 years ago. What's in the box? I advise you not to look. I rarely follow the advice of other people. I... Oh. Which get this? Some of the left is here this evening. That ring. Old lady Wilcox gave that to Stella on her 18th birthday. That... The hand of Stella. I understand why you asked about the hair, John. The hair under the fingernails is black. Just like mine. Mmm. I wouldn't be surprised if an analysis showed that it was mine. Can you clear this? The point is that I don't intend to give up my life on you and your little crime hobby. What do you mean? You're going to learn about crime, Raymond, for a direct personal experience. That's going to be nice. He was a powerful man. His blade gave me. I struck my head against the furniture. I lay down for a day. Like a slow motion picture I saw a lean approach. He leaned over me. A long knife in his hand. How funny it is. His only desire was powerless. He was driving the knife down. I heard him scream. Someone had a door slammed. And I blacked out. Hey, get up there. You're okay now.  What happened here? He found you on the floor, out like a ray. There was Lane, a Wilcox chauffeur. He tried to kill me. Lane? Lane's dead. There's the body. Huh? Did you kill him, Ray? No. Where does Amelia Cardway live? A few words from her words. We've got to get over there right away. She killed her own lady and she might have killed Stella, too. Amelia Cardway could have done it. Maybe you'll tell me next that Gideon Blake did it. I don't know. Gideon Blake didn't have a hair on his head. Besides, he's dead. I never arrested dead man for the crime of murder. They haven't got confessions on him. Perhaps Lane did go to see Stella shortly before she was killed. They were all in this together. Yeah? They told you they didn't know each other. They suspect themselves. Now, that still doesn't explain how the hand got to your place or why Gideon Blake came back from the dead or why we found those black hairs under the fingernails. They have got an idea about the hand. I think it was dismembered so that you would never know that Stella Marlowe was Stella Wilcox. Huh? She changed her appearance but she couldn't change her fingerprint. Well, then who left her at your place? And why? And why should you be on the murder list? Don't remind me of that, please. Well, it's immediately called waste cottage. There we'll get some of the answers here. Come on. What? Inspector. Gideon? Yeah, yeah. Come on, follow me, right? Inspector Doyle had his gun out and was running into the house. I followed a few steps behind. In a moment I was in the living room. Doyle was standing there. Well, what happened? Why did you scream for help? In an old chair, a cat putt was once in the track of a woman. The blonde hair was streaked with gray but the face was a mask of terror. I recognized her from the picture in the police style. She was the former mayor of Law Wilcox. I mean, you can't wait. Yes, Mrs. Wilcox. In just a minute. Come on, Mrs. Wilcox. What's the matter with her? She's cracked her delirious. She just keeps sitting there like that. He can't live with secrets. Someone will find out. I'm glad. Glad they found out. Now she'll never come to see me again. Yeah, well, who came to see you? Mrs. Wilcox. I didn't want to give her that medicine. I knew it was poison, but Stella made me. She made me. And so did me, the trooper. Getting out of the chair, Inspector. Look, there's a knife in her back. This card will... Up in the stairs. Mrs. Wilcox. Well, at the top of the stairs, Inspector, look, it's Laura Wilcox. I'll tell everything, Mrs. Wilcox. We were all in on this together. So I love the chauffeur and me. I didn't want to do this, so give me some... You look after her, right? The one where he reached the bottom steps, Mrs. Wilcox disappeared. I stooped over the card with one. She was dead. A person with a pistol fire came from the upstairs part of the house. A moment later, Inspector Del came tumbling down the stairs. He was on his hand. He was unconscious. I looked up. At the top of the stairs stood Mrs. Laura Wilcox. She said nothing, but calmly came down, holding the poker she had struck the inspector with. She bent down, took out the knife from the body of a dead immediate card. Right in the room. Suddenly, the woman took off her hat. Awake. And there stood Gideon Blake. You better go now, Raymond. I don't understand that disguise. Look there. The entrance to the dining room. Fire? Yes, fire. You better leave it once. Those flames are spreading rapidly. They can stick a door with your blade. There's the last name on my list, you know. He didn't have to say any more. I dragged the inspector through the door. Gideon Blake turned, smiled at me, and walked directly into the flames. That was the last I ever saw of him. I found the missing pieces of the Jake Saw puzzle. Well, Wilcox was a twin sister of Gideon Blake. We dug up the birth records. So that's why she looked so familiar. And that's why he murdered the three people. Because they killed his sister. He fit his own death in order to carry out justice himself. But that still doesn't explain why I was brought into it. That's simple. He wanted us to know what was going on so that we didn't hold some innocent person. Just one more question. Yeah, go ahead. How did Blake fake his own death? Well, now we don't know exactly, but he must have done it. Did you find his body in the ashes of Amelia Conway's cottage? Well, I guess they're there, but it's impossible to identify them positively. That leaves one other explanation. For, sir, that Gideon Blake actually died ten years ago. A word of advice, naturally. When you get killed, don't let your murderer slice your hand off. Then you can never put the finger on it. Good night. Pleasant dream. You have been listening to an inner sanctum mystery starring Raymond Edward Johnson, tonight's presentation in the Mystery Playhouse. At this point in our program, Peter Laurie tells me we usually go to the green room for a preview performance of our next Mystery Playhouse attraction.


Hey Psych2Goers and welcome back to another video! Before we start, we'd like to give you a huge thanks for all of the love and support that you've given us. Psych2Go's mission is to make psychology more accessible to everyone, and you help us do that. Now, let's continue. Have you ever wondered why we flirt? Well, according to the Social Issues Research Center, anthropological research shows that flirting is a universal and essential part of human interaction. But if it is instinctive to all of us on some level, then why do we sometimes get it wrong? If you clicked on this video looking for a guide to help you flirt better, you're not alone. Because like many other social norms, much of the do's and don'ts of flirting are dictated by unwritten laws of etiquette that we generally obey without even realizing it. This is the Social Issues Research Center. With that said, here are six common psychology-backed flirting mistakes that may be keeping you single. Keeping it cool. According to psychology professor Dr. Aaron Benzieve, although playing hard to get it is a common flirting tactic, a lot of people swear by, it can actually hurt more than help your romantic chances. By pretending we're not interested in someone it creates insecurity and uncertainty early on in the relationship, which can lead to more deception and emotional manipulation. Playing such superficial games may also attract the wrong kind of person, says Dr. Benzieve. Waiting too long. Another common flirting mistake, especially among women, is never making the first move. You may think that all the subtle signs you're giving like making prolonged eye contact, smiling and casually touching them, or liking their posts online, is enough for them to take the hint, but it also leaves a lot of room for miscommunication. If you want to date someone, says dating expert and self-help author John Berger, it's better to make the first move instead of just waiting around for them because it's a way of taking control of your relationships and being more intentional about the partners you choose. Stay light. According to Dr. James Wadley, psychologist and chair of the counseling and human services department at Lincoln University, bringing your pent up frustrations with you on a date or while flirting with someone is a big no-no. Why? Because although it might seem like a natural and easy conversation starter, showing too much of a disagreeable attitude early on in a potential relationship is a turn off for a lot of people. So when you're flirting, Dr. Wadley suggests, it's best to keep things lighthearted and positive for now. Similar to our earlier point, don't make the mistake of thinking it's okay to talk too much about why you're single or worse, how much you hate it. Seeing singlehood as a problem, says psychologist Dr. Karen Anderson, can paint us in a bad light, both to ourselves and others. We may start to see and present ourselves as being too picky or too needy and that there's something undesirable about us as a partner and that we can't see our own self-worth without one. For romanticizing, according to relationship and well-being psychologist Dr. Amy M. Gordon, we need to be careful of having high expectations of potential partners because while having high expectations can be good, like when it increases commitment and helps us behave more positively towards one another, it can easily turn bad if we over-romanticize our perfect type. Having unrealistically high standards can make us miss out on someone great because it only sets them up for failure. Over-romanticizing crushes can quickly lead to relationship dissatisfaction. The moment they inevitably make a mistake or fail to live up to the perfect version we have of them in our heads. Hiding your heart.  Why? Because although it might seem terrifying to confess your true feelings to someone, never letting them in or showing them your true feelings will only discourage them from pursuing you and getting to know the real you. According to a Healthline article reviewed by therapist Dr. Jennifer Littner, by hiding your emotions, you prevent clear communication with the people in your life and that's not something you want to make a habit of when starting a relationship with someone. So can you relate to any of the things we've mentioned here? Did this list make you realize some of the flirting mistakes that are keeping you single? And if the answer is yes, don't worry. Flirting doesn't come easily to everyone and it's not a skill that's ever explicitly taught to us, so it's understandable to make mistakes sometimes. What matters most is that you become aware of your missteps and all the other ways you may be unconsciously holding yourself back from finding love. What are some other common flirting mistakes we've missed? Let us know in the comments down below. Till next time Psych2Goers, thanks for watching and remember, you matter.  Get your very own Psy. The lovable plushie is here to brighten your days. It embodies the spirit of Psych2Go and it serves as a reminder to prioritize your mental well-being. Its green leaf symbolizes growth, renewal, and the importance of self-care, whether it's for yourself or as a thoughtful gift for a loved one. Psy is ready to be your snuggly friend through all of life's ups and downs. Buy your Psy plushie today. Link is listed in the description box.