When we get started, we're talking about functional vision loss today. So just kind of some introduction to this. Your first job, when you have a patient come in and you kind of suspect this doesn't all add up, it seems like it might be functional, is to make sure that you exclude any organic causes of vision loss. That should be kind of like primary thing that you're trying to figure out is could there be something organic going on, is there something really subtle? And then always keep in mind that patients that have organic disease may also have some superimposed non-organic behavior, and this is about like 15% of functional vision loss. So that can be really hard to tease apart. So maybe even if their story doesn't completely make sense, there is something going on, but not all of it is organic. And then page into things like, you know, does the patient sign into the reception desk? Do they walk into the room and sit in the chair for supposed to be NLP? If you outstress your hand to shake their hand and don't like give them any verbal cues, do they shake your hand? And so just be aware of their story and any secondary gain features. Malingering is willful feigning, which is sometimes different than functional vision loss or like a conversion disorder. And then munchausen syndrome is creating a real disease by self-inflection. So that's not really, truly functional. I think Dr. Shakur had an example of like a lady who was using laser pointers and pointing them at her macula. So that would be like an example of munchausen syndrome. And then conversion disorder prevalence is 11 to 300 per, should be 100,000, and they occur in both children and adults, but they're more common in women than men. And the mean age of children with functional vision or with conversion disorders is about 10 years old. And then in about 65% of people, both eyes are involved. And then in the bilateral cases, both eyes are usually affected to the same degree. And in the unilateral cases, usually the vision loss in that one eye is worse than the vision loss in that it would be in a bilateral case. And then decreased visual acuity and constructed visual fields are the most common symptoms or complaints with functional vision loss. And a strong indicator of organic disease is if you see a central scatoma on visual field testing. So that's kind of like a red flag and rethink things if you see that. What are some organic vision loss causes that may be really subtle early on and could be mistaken for functional vision loss? Can you think of anything? Yeah, good. What did you say? What about other macular pathologies maybe that are even common? What's that? Yeah. Or think about a young person. CSCR. Yeah. So CSCR can be like, if you're just looking in, sometimes it can be hard to see if you don't get an OCT or if you're not looking for it. Like that syndrome? Yeah. Good. B-R-A-O. What's that? B-R-A-O. Yeah. B-R-A-O. Yeah. If you're not looking for it. What's that? Stargard. Yeah. Stargard, especially early on. You might not be able to see a lot of changes. So it's also important to like ask about family history and things like that. So we'll go through these. So idiopathic big blind spot syndrome or acute zonal occlu outer retinopathy they're kind of on the same spectrum.  And then oftentimes on their macocee teeth and kind of see this like stippling of the ellipsoid zone where it's disrupted, especially near the optic nerve. Bilateral retrochiasmal disease can, you know, you're not going to see anything really on exam. And so be aware that, you know, to look for that, especially if there's anything in their history that might suggest that to be the case. And then chiasmal disease without optic atrophy like craniopharyngeoma, conorad distrophy like Sarov said, later on their macula is going to look abnormal, but especially if it's like early on and you're just not looking that closely, you're not looking for it, it might be hard to tell. Really keratoconus or any type of a regular astigmatism where they're not going to, you know, refract to 2020. But if you don't, they're not going to refract and especially like if maybe you can get them to pinhole better, but you can't get the refraction better. Think about getting a topography. Or if it's keratoconus that's progressed enough, then it could cause enough problems that they may not even have best corrected visual acuity to 2020. And then early PSC cataracts. And PSC cataracts are something that a lot of times people will just like notice all of a sudden, especially I feel like I've seen a lot of patients at the VA where it's like they have sudden onset vision loss and they just have this PSC cataract that's like probably crept into their visual axis and but a lot of times people, it's like one day they notice it and then levers maculopathy like CSCR or an ERM and then perineoplastic retinopathy, especially if the history fits retinitis pigmentosus in pigmento. So you would still expect to have some of the other findings like arterial narrowing and they're going to have you know, outer retinal loss paraphobeally, but that can be a lot harder to see if they don't have the classic bone spicules. So you can see this patient, they don't really have the classic bone spicules, but they still have the outer retinal loss on OCT. And then retro bolvar optic neuropathy and then stark heart disease, especially if they don't look like this to start with, it can be subtle to start with. So if a patient is bilateral NLP, there's some tests that you can do. This is probably the easiest one to figure out whether they really can't see anything at all because you're just looking for any type of vision. So there's the finger touching tests where you ask the patient to touch the fingertips of each hand together, and this is an appropriate reception test in opposition. So if they act like they can't do it, a bilateral NLP patient should still be able to touch their fingers too. And then pupillary reactions, a normal pupillary reaction suggests that the anterior visual pathways are attacked, but obviously doesn't roll out some types of organic disease that are retro, that are optic radiations and oxybital lobe and so forth. You can test OK and drum, so you slowly rotate the OK and drum in front of the patient and you look for eye movement. And this, similar to the mirror tests where you slowly rotate the mirror from side to side in front of the patient and look for eye movement. And then electrophysiologic testing, flash and pattern reversal VEPs. We think of this as more of an objective test, but just bear in mind that you can still willfully suppress VEP by not being attention to it or kind of defocusing on the stimuli from the screen. And it can still give you false positive and false negatives, it's not a perfect test, but it's just kind of another thing that can add to whatever the overall picture is. So how does that work for the EUA's and VEPs? Yeah, they put the contact lens on and that's why they cover the other eye, because it's like a flash. Or not the contact lens, it's a goggle. Right, this one is like the black and white randomly changing ocular random patterns. But yeah, I guess that one is more objective because it's not awake. But even so with that one, I've seen it like not correlate to the last one or just, you know, sometimes there's a limit to how much you can tell you. Okay, the next section is monocular reduced vision. It's kind of, it's a little bit harder to tease out. Someone is, there's two types of reduced vision right there. Someone who says they can't see anything at all in one eye and those people who say their vision is decreased in one eye. No vision in one eye is a little bit easier to tease out versus just decreased vision in one eye. So the first thing that I always look for when someone says they can't see out of one eye is look for an APD. It's really, really substantially increases but does not confirm the likelihood of non-organic vision loss. So it's just a lot less light, it's a lot more likely to be non-organic if they don't have an RAPD. And just in case anyone doesn't remember how to check an APD, flashlight test there. So another test you can do is the base out prism test. So use a four sixth after prism, place it in front of the bad eye with a base out. So make sure you know what GIA is, you know, the problem I, and then, so the normal response is that normal eye will flick in and you'll get the stochotic correction or it's kind of this convergence. So you'll see, basically you'll see the eye that's covered move. If there's any movement of that eye, they're seeing something out of that eye because the brain wouldn't refix it through the prism if they weren't seeing anything. So just a quick way to put up there and see what happens to that eye. Then vertical prism association, this one relies a little bit more on the patient, you know, telling you what they see. So you put the four prism base down in front of the good eye this time and so normal vision would see two readable lines. And if they're really not seeing out of one eye, then they'll only see the one line of that line will be blurred. So that one again requires the patient to cooperate a little more. So then there's these things we call confusion tests. So the key to confusion tests is patient, they must be unaware which eye is being tested and they also have to think it's part of the normal exam. If you tip them off that this is something kind of unique and we're doing just to see if you really see it, these are easy to kind of fake. It's, you know, kind of say something even if it's wrong but just to kind of fake it depending or even if it's a subconscious faking. I don't know if that's the right word, but to not acknowledge what they're actually seeing. So the first one I'm going to go over all these fogging tests, the duochrome test, the polarized lens test, and the stereopsis testing.  There's a lot of very different ways to do this. This is the one BCFC suggested. So you put the, let me show the picture here, make it make sense.  So they're basically canceling each other out. And I think it's probably useful to put another lens in the other eye since you are trying to sort of go with this, we're testing both eyes idea. And then as you have them start reading the lines, you slowly rotate one of the lenses so that you're inducing a lot of stigmatism. So it should get, by the end of it, it's going to be a 12 after spread, which is really hard to read through. So if they continue to read without any problems, then it indicates that they're seeing well. So you have as you read the good eye, sorry you're fogging the good eye. I should clarify that as you're doing this so that you can see if they're still reading with the bad eye. The key breathing means here she has some vision out of the bad eye. Next one is the duochrome test. So you get the red green glasses that we use for like the worth four dot test. You put the red lens over the bad eye. That's how we can remember because red is bad. You put on the red green filter on the snow on chart. And the green lens over the good eye, so Gigi helps you remember which eye I keep it straight, prevents the patient from reading the red letters because of the way the lights filter. So if she can read, here she can read the letters on the green side, the patient is seeing out of the bad eye because that's the red eye, red covered eye. So this is what they would see with both eyes.  They would only see the red side, I say that right. So then polarized lens test. So before you put polarized lens on the patient, you have to check and make sure you know which one is blocking the light. Because the polarized lens test we use for a clinic, they have one as polarized vertically, one as polarized horizontally. So you should want to make sure you know which one is which. Because most screens will send the light polarized, including our snow and charts upstairs on the computers. So you can test this yourself sometime and put it on. And it will walk, one eye will walk the polarized light in the correct orientation. So place the polarized lens over the patient's face, walk the bad eye, and you project the chart. So you gotta know ahead of time which one's which or else it's just gonna confuse you. And then so you project the light and then again, just having to read. If they can read the chart with both eyes open and you're blocking the good eye, then you know they can see. And stereopsis testing, this one's kind of obvious. If there's, to have stereovision, you have to use both eyes. So if they have any stereopsis, then they are seeing out of both eyes. One thing though is that there's some tables and some ideas of how this correlates, like how much stereopsis they have that correlates to actual visual acuity. It's okay, it's not really great though. You can't kind of hang your hat on and say, they saw 300 arcs of stereo, so therefore they have 20 X vision. Just keep that in mind. It's not really good to correlate those things. And then I just want to re-emphasize the fact that if you need to kind of some trickery and some magic and confidence and sort of, okay, now we're gonna do this and make it seem all normal. So they gotta take you seriously. The last couple of slides, I'll talk about binocular reduced vision. So a couple of things, so when somebody has binocular reduced vision, the question is, what can you do to bring out a possible non-organic cause? This is a test that if you haven't rotated neurophomology out for the residents, you'll see this done quite a lot. I've seen this done by Dr. Crumb, Dr. Katz, Dr. Degree. I've done it myself. I think it's a really useful, easy test. So the scenarios of a patient comes in, I can't see in both eyes. I can only see maybe the E on top line, or at least can see some letters. And so what you would do is start with a show them the 2010 line and tell them, can you see any of these letters and say, no, no, I can't really see it. And you could ask them, how many dots are there or how many letters are there? And say, no, no, I really can't. I really can't, I said, all right, and then you can continue encouraging them. Maybe the first letter is a little easier, keep going and say, no, no, no, I really can't, and then go to the 2015 line and do this again. And then if they can't read it, say, this is double the size already. Maybe the next line will triple, quadruple the size, it'll be harder. And then you give them a 2020 line and they say, I think I can see now I see five letters. All right, can you see the first letter, I still can't. Really try this is bigger and then 2025 line they can read. So I've seen that happen all, so it's a really good test. And again, reading better than the previous exam suggests a non-organic component. So it's a really quite useful test. So that's the first test bottom up acuity. This is something that we don't use in the neurophomology a lot. I've never seen this, but this isn't a BCIC, I just want to go through everything. But some people say, I can't read letters. Okay, we can use a tumbling E-chart, see if they can read those. You can use chart with numbers. The other thing that just reminded me is some people say, I can only read a top line. So give them a Stelen chart that has a top line with 2050 and all of a sudden they can read it. So those are some maybe useful tricks. There's also other things that you can do, visual aids. You can give a trial frame that you just put basically multiple lenses, but equals what their correct prescription. And you can give suggestions that these are special, magnifying lenses and see if you can get them to see a little better. A potential acuity meter can also, you can tell them that this can bypass the visual block and see if they can have any improvement in vision. Okay, it's a kind of a pinhole test. So these are other tests that are not in the BCSC that I just wanted to let you know that there's other tests and I've also learned a couple of new things. First, near vision testing, near vision testing and distance vision doesn't really correlate. Okay, but if there's a large discrepancy of what somebody can see near and at distance, that may suggest a non-organic disease. Okay, second, stereopsis. You know, we show them the circles to show them, you know, the animals. But, and this is something new to me, but there is, you know, a paper actually that correlates, you know, the circles, how much one could see with circles with visual acuity. So for example, nine out of nine circles is approximated to 20-20 vision. Six out of seven or five out of nine circles, I can see there, about 20-70 vision. So again, remember that stereopsis is a binocular function. This is not a monocular function. So some stereopsis may suggest that one may be seeing a little better. So again, these are not, these are, these are tests. These are not, this is not proof that they have a non-organic disease but this can have a, suggest that somebody has non-organic disease. Second thing is a size consistency test, you know, are cell-encharged and at least in our, in our clinics it's in the TV and they're at 20 feet. But if you move it to 10, you know, if you have a manual cell-encharged, if you move the patient closer to about 10 feet, the patient should be able to read the letters, at least half the size of the letters that they can at full distance. So that's easy to do in most other clinics, you know, Fort Street clinic, we have that. So I think these are all good, easy tests as well. All right, now visual field defects. I have some cases for you guys, so pay attention. So let's see, it doesn't show one by one. I'll just kind of say this. So this is a 12-year-old girl. This is a real case. I got it from this paper. But a 12-year-old girl that's, you know, all of a sudden presented with left temporal visual field defect, you know, went to an outside optometrist, got a visual field and showed, you know, the top, the top figure right there. And then went to an ophthalmologist and also did a visual field and also had this test.  There was no APD, vision was 2020. They did, so in figure C, you see that left temporal defect in the left eye. And then they did a manual, like a Goldman visual field test and also show that it matches up. But the neurophthalmologist, what they've done is they've repeated the Humphrey visual test with both eyes open and so saw the defect up above. Okay, so, so, so, so, and again, you know, the third line, persistence of hemianopsia during binocular visual field testing. And without an APD, distinguishes this from an organic, ideologies are non-organic. So if you have both eyes open, one of the eyes, the right eye, should be able to compensate for the temporal defect. And still she was not, she was still having this dense defect. So this is an example of how an automated primary like Humphrey visual field testing that we have here can show, can support a non-organic visual field defect. Also non-organic visual field loss occurs in about one to 5% of pediatric patients in general ophthalmology. So it's not, it's not, it's not rare. Other tests that we can do for non-organic are confrontation visual fields. So, you know, we all do this, but when you're doing this, what you can do is map out where the, if it's a dense visual field defect that a patient says, you know, really map it out. Let's say it's in this area. Can you see this? No. Can you see this? No, no.   Can you look my thumb? All right, look at my nose, look at my thumb. Great, look at my nose, look at my thumb in the area of the visual field. If they have correct saccades, that's just that they can see in that area. That's another way to say that they, that it's non-organic. The second test is the kind of, again, counting fingers, telling them, you know, can you see, tell you none if they don't see fingers. So, see fingers here? No, or can you see fingers? Yes, two, two, and then you go here and they say none. Okay, so that suggests that they also see, seeing in that area. So these are easy tests to do in the clinic. All right, my first case, I'm sorry, it's not going one by one, but who has non-organic visual field loss? A or B? So in A, this is the tangent screen test. A, the top pictures are at one meter, and the bottom picture is in two meters. Who has a non-organic, likely non-organic visual loss? A or B? A, okay, so let me talk about the tangent screen. For those of you who have not done this. So the tangent screen you test at one, I'm sorry, not one millimeter, that's one meter. So one, one meter.  And when they go from one meter to two meter, that field should expand. And you can see that in figure B, that the visual field expands. If it doesn't expand, or what is called a tubular or a gun barrel field, like it just stays like that, you know, people with non-organic visual field says, you know, they don't know that normally it expands, so they must see where they saw before and just remain there. So if it's a tubular or gun barrel field, that suggests a non-organic visual field. This is a test that we do quite often in the neurophymology clinic, pretty easy to do as well. All right, case, what visual field suggests a non-organic visual field loss? Anybody?  So anybody can guess? This is sort of a trick. Yeah, first one, correct. All of them, okay. So let's go all of them. We know why all of them are non-organic. This is classic for OCAP. So the first, the one on top left is, you know, a spiraling isopters. That when you can see some spiraling, but also most important is crossing. And the third one is a study that I found is called a target visual field. So for the ones that haven't rotated neurophymology, let me just go over Goldman visual field testing. So, you know, there's several stimuli for Goldman visual field. So the size goes from zero to five, zero is the smallest, five is the largest. So this is a target size, okay? So it's a light. Intensity goes one to four, one is the dimus, four is the brightest. Intensity is A to E, A is the dimus, E is the brightest. So in this example, the blue is one, four, okay? So it's a small size, intensity four. And then in the red one is, I think, a five, four. So it's a one, three, okay? But the point is the red one has a larger size than the smaller one. So as the stimuli is getting larger, you know, you should be able to have it, you know, a larger area that you can see, okay? So this is normal, okay? So, and again, you know, just I just want to make sure that everybody understands this, but when somebody's, you know, when somebody's like, to draw the circle, it's not really a circle, somebody points, you know, can you see this, this, no, no, no, no. And then when they hit this and they put an X and that's the place where somebody's seeing it. So that's a point in here. And then there's multiple points and they just connect that dots to make that circle, okay? So in the first case, we have spiraling. So in spiraling, so concentrate on the red one first. So with the same stimuli, you know, as the test progresses, okay? So somebody can see first maybe outside in top line. And then when you go to this, when you go here, they say, oh, and now it's a little bit more constricted. And then when somebody is looking, and then the next, the third point is here. So it becomes progressively smaller and smaller. So that becomes why it spirals, okay? And then you do the next, the next, you know, larger stimuli like the black one, and again, very similar. So a spiraling isopter suggests a non-organic visual field loss. The second one is the crossing isopters. So I've seen as the stimuli size gets larger, they shouldn't really cross each other. And in this case, you're seeing, you know, the green is crossing with a blue and that suggests a non-organic visual field loss. The last visual field test and these two things, I've seen this in some questions for OCAPs. That's why I'm, and sometimes when I first saw this, you know, you can memorize it, but you know, I want you to understand it really. And then the last thing is this target visual field. So as you can see, there are, you know, several colors, red, blue and green. The protocol for this, so this was published in 2010, is that they started with a size 3, 4 E. So they go to, so they map out the red first, okay? And then they go to a larger size 5, 4 E, which is the blue, which you can see already is a crossing over. So that suggests non-organic visual field loss already, but they do a repeat 3, 4 E again. And then once they repeat the stimuli, the first stimuli, they even get it even smaller than the first one, which doesn't make sense. It should be the same size as the red, but because the red, I'm sorry, this should be green. The red and the green should be the same, but it's not. So that's why it's called a target visual field. 91% of like 50 patients that they've had a previous diagnosis of non-organic visual loss had a target pattern, while no eyes in the control group showed a target pattern. And this is something that I've learned. We don't do this, but this can be done in 10 to 15 minutes and this is something maybe we can try as well. So those are, that's it.


Nihajafanya kasiwe, piskosa yos hajia uwa, wuna kituni na amini, wuna a god of a second chance, na atamutua. Nadi wuna nikiwa na muhi, sababu mugu wanyani na amini, bi atamutua. He is like Joseph. Joseph wadi durumi wa hili, na mugu bade ademutua. Before anybody else and being a mother, I think we give our chance to say something because of the relationship that mothers have with their sons. So, can you remember who you can be? This is a short one. Thank you. Miye bili, my son in England na atamu na mingsasa atamutua waka tu wa mugu bifiga. Nihajafanya. We won't say much. But of course the sentence has been passed. We were expecting something close, we are not shocked. And let me wet your appetite. I think all of you remember those words. Those are not my words. Those are the words of the horrible Lady Justice and at the court of appeal, we will be vindicated. The notice of appeal is ready. We were just waiting for a little time to maybe further discuss before we proceed. But one thing is clear, the Honorable Justice built a mountain out of the clouds the Joy War especially those brown khaki shorts. She had to build a mountain on those shorts. Why? Because those are the only things that she had that would link Joy to the death of Monika Kibani. Paportedly because a drop of blood was found with Monika's DNA on those shorts. That was the only link. Apart from all the rubbish circumstantial evidence that was the only link that this court had to lay its case on. But then, were those the same shorts the Joy War? The defense was adamant that those shorts which were exhibited in court were not the same shorts the Joy War. The prosecution's own witness said that the shorts that Joy had on had side pockets and were brown khaki. The shorts that were brought into court Paportedly with DNA did not have side pockets. These were different shorts. On three occasions when Justice Wakiyaga was handling the matter, he asked the prosecution to bring evidence of the pictures of the shorts that he took while they picked those shorts from Jacqui Mariba's house. The pictures that were taken with Joy holding onto the shorts clearly showing the side pockets. Three times, the prosecution refused to bring those shorts, those pictures into evidence. Three times, why? During his evidence, the DNA expert claimed that he took pictures of those shorts through the whole process. But when asked to bring the pictures of those shorts to court, again refused. Why? It is rather obvious. Our courts have always held that where the prosecution refuses to bring evidence before court in their own possession, which might prove to be ex-calcutary evidence, there can only be one reason why they have refused to bring that evidence because it points to the innocence of the accused. Joy, Joseph Irumbu is innocent and we shall prove it.


We're here at the IPE-Tech booth here at the Mobile World Congress, so who are you? Frank Xu, I'm the CEO of Global IPE-Tech Corporation. So you're the founder CEO of IPE-Tech, right? Yes, yes. And you're the leader in small PICO projectors, basically. PICO Mobile Projection Solutions. And this is a very small one, a new one? Yes. What is this? This is the world's smallest wireless projector. It's about 130 grand, about four and a half ounce. And this wireless projector provides a mirror projection for your iPhone, iPad, Android phone, Android pad, without the needs of a straight connect. So this is Miracast and the Airplay? Yes, both. Yes. Let's go on this side over here. It seems very bright for this size. Yeah, we recommend this product. Although it's a very small on a 130 gram, it will give you about a 14-inch display from one meter distance. So it's a very soft floor machine. This is beautiful, and is this affordable? Yes, yes. It just happened in the American Yvonne TV Shopping. It's about $270 retail. So you've just been shown in the TV shop, so people can buy it. $270 retail price for a very small like this. How long is battery life? The battery lasts for about 80 to 90 minutes. It depends on your application. And the name is? The name is the I-70. I-70. I-70. And let's look over here. You have this one also? This one is a different kind of category. This is part of our Apex series as an entry level. I call this a Super Verso Tile and Affordable Projector. It's a 100-lumen projector. It has an Android system viewing. Basically, I want to encourage the consumer to buy. It's the first Android projector. Yeah. And you got an Android system so you can access YouTube without the need of using another device. And you also got a mirror capability. You can mirror your iPhone or Android phone at the same time. So it's very versatile. So it's basically a full computer projector, 100-lumen. And you can input the content. Yeah, that's an SD card slot you can reach. SD card, USB? USB for really charging your phone. And then wireless? Wireless. Yes. Mostly for the content is wireless? Yes. This is a full Android operating system viewing product. All right. So, yeah. Let's check over here. Then you have that one. And then we have another product under our move series called I-120. And I-120 is a very versatile product. This device not only support, not only iOS and Android but also support Windows, Notebook, Windows PC on wireless basis. How? We just have a software built-in allow you to run the app from your Windows Notebook. You can wireless transmission your screen to the projector. And is the battery powered? Yes. All after power are battery powered. And then let's check the screen there. Yes. So what's the lumen? This is 120 lumen. And this product have very good feature too. In addition to the wireless, this product also support HDMI connection. Plus, this have a special feature can turn your TV become a smart TV through the HDMI output. This unique HDMI output is unique in the market. There's no second projector allow you to do this. So wait a second. You can have, in the living room, you can have a projector. Android, right? Is Android running here? No. This one is a competent projector. It does not have Android system. But how do you make it smart? What do you mean? Okay. This HDMI output feature, you can put a cable, connect the HDMI output port to your home TV. So your phone through wireless connection to this projector. So your screen will be on the TV. And as an iPhone user, you don't need to buy Apple TV. As a Samsung phone or Android phone user, you don't need to buy Chromecast. So this is a special feature we put into an i120. And turn your home TV become a smart TV. All right. So you add the Miracast and AirPlay to your TV through the projector. Yes. Yes. All right. Spot on. And then this one, this looks really cool. This is a special... This is a product we call IBM Block. This is the product we have a pattern. And it's a WordPress. This is a WordPress stackable, configurable, window projection computing system. The bottom part is a battery. The middle part is a HD quality projector, 400 lumens. The top part is window 10 tablet. Okay. Window 10 tablet. So you can see from the screen size here, it is using a TI, a very good technology called TRP Pixel. And people may be confused about what is TRP? 99% of projector in the marketplace deliver a message called Diamond Pixel. So it's a kind of diamond shape. So when you come to the Word or Excel, you know those are especially that need a very fine print. You really can see about detail. This projector is in TRP Pixel. So you can see the picture here, extremely clear on the text and Word Excel. So this is great for using it as a computer display. Yes. This is excellent for business people when they're on the move. They really don't need to carry a notebook because this is a window 10 capability with full access from your cloud. This is the most innovative projector ever made. What is going on here? There's a lot of things going on. And you have the tablet on top? Yes. It's all cordless, intuitive. So consumer doesn't really know anything. This is a high-developed product inspired by Lego Toy Block. Okay. Oh. And the HUD is connected with the Pogo Paint. It's using spatial Pogo Paint pattern, Pogo Paint high-speed HDMI signal transmission. That's awesome. So where are you company-based? We are a Taiwanese-based multinational. We operate from Taiwan, China, US, and Europe in Germany headquarters. And you're the leader in technology and also in quantity, right? Yes. Nobody has sell more part of the projector. We are the biggest player in the Pico projection technology. So we also call it a mobile projection solution. And this product is a winner of I've Design Award, just awarded last month. And where can people buy it? Oh, it's available from Amazon. All the major retailers in Germany, UK, US, in Dubai, in Taiwan. Sound, speaker. Is the speaker built-in, right? Yes. Your speaker built-in, yes. And is this 720p? 720p native. And what is the lumen? The lumen is a 400 lumen. But the more important I keep to highlight is the TRP pixel. Give you very clear picture in Microsoft Office presentation. So that should be a favorite for the really James Bond type of people. Yes. People want lots of things built-in. Yes. And what are you looking at here? This one is our flagship product called PA100. It is a first tablet. We call it a boombox projector. It is a tablet combined with an 800 lumen DLP projector with HD quality plus professional audio solution. You know, most of the projector doesn't really have a very nice sound. And this projector is built-in with a 360 degree speaker with a subwoofer. Can we hear a sample? Yes, yes. I guarantee you will be surprised at what kind of sound quality we get in. We have the screen right there. So it's an all touch panel. Okay. Be careful. I'm playing a movie trailer here. Yeah. You ready big guy? Yeah. I'm like totally ready.  This stage is about to explode with major piggy power. What do you want? You're really funny. That was not even the maximum. That's really cool. So that's what people take out in the garden. And then a four hour battery. Four. Four hours battery. You can watch two football matches in the garden. Yes. Take it out. Yes. And just go somewhere. Yes. So you can give you a display from three meter distance, 120 inch display. So just make sure you have enough size of wall. Do you sell the screens? Unfortunately we cannot find 150 inch screen. We have to use your wall. What's the solution? It's the WXGA which is HD quality. HD quality. But I mean what's the... That's 1280 by 800. But the solution for... For making a huge screen. We need some... Just take your bed sheets. The white sheet. Yes. Hang it on the tree. Tree. Yes. Give you 150 inch from 3.2 meter. And then invite all the neighbors and you have cinema... Outdoor cinema. Outdoor and excellent for social party. Excellent. And professional. Quality all built in. Yeah. And bear in mind, it give you RMS 40 watt. Makes my 80 watt output with a subwoofer quality. What's the... Is the ARM solution right? All of these except that one. Everything is ARM CPU right? Yes. This is actually Samsung Note 5 CPU and GPU. So it's Exynos? No. Yes. Wow. So I want to highlight is Note 7. Okay. It's a Note 5 CPU and GPU. Yeah. Note 5. Note 7. Nice. That's really cool. So even you play game, GPU can handle your game very well. Yeah. This is also built in video game machine right there. Yeah. So... What are we looking at here? Okay. This one is a WordPress mobile interactive projector. Okay. We can operate as an interactive interactive solution. Yeah. Let me try. Let me try to... So basically with this... ARM. Yeah. Yeah. You can click on the wall. Yes. You calibrate the first. I need the calibrate first. That stick. Yeah. Actually by... by mass production we shouldn't be do the calibration. At the moment. Automatic calibration. Because it's still a prototype. So... It gives me... I need to do the calibration first. So basically directly on the wall. Yeah. You're able to do some touching directly. Yeah. Yeah. Maybe go... Maybe launch the software. Yeah. So you can turn any surface become a... become a so-called virtual touch. So... It's up to two points of interactive production. You can put two together. Yeah. So there's an IR camera right there. Yes. Yes. It can recognize the IR stick that you have right there. Yes. Actually I don't need it to touch. Just close by. Yeah. You can point to it. Point it. Yeah. Just point it. So this is potentially perfect for the school. This classroom? Yeah. I can use it too actually. For the business meeting rooms. Presentation. You can point towards your presentations like that. Okay. That's cool. So this is under... Actually it's a full Android computer. It's actually under Android. There are more than 10,000 entertainment education software for free. So we want to market this kind of all-round. All-rounder. For family. Useful for business. Entertainment. And education. Together. This will be the world-first mobile interactive projector. This is what I call M500VT. Virtual touch. All these products are really awesome. So it's got to be very nice atmosphere in your headquarters, right? Yes. Yes. You have the best engineers in mobile projector. Yeah. All DLP? Yeah. So far it's all DLP. All LED base. All battery power. Yeah. DLP is the best quality for projector, right? Yes. Best colors. We have been aligned with Texas Instruments in America to produce mobile projector since 2008. As a matter of fact, we were the pioneer of this mobile projection technology. So it's a collaboration with TI to get the most out of their chips. Yes. Yes. We are also actually associated with a very strong engine maker to launch a product even more bright, more shorter of short throw and smaller and better. And do you have one more here? Can you show this one? Yeah. This one is a mobility with this kind of screen. You know, from 2 meters at 80-inch display such as small device. Yeah. This is called I400. It's also battery power and with a 4, 2 meters. Give you about 80-inch display. Yeah. Did you click on something? Yeah. Power button. Yeah. I need to turn on. So this does, what do you say, 400 lumens? 400 lumens and with HD quality with wireless presentation. This product will be our first product can present, this will be our first product to present with wireless, with all device, iOS, Android, Windows, plus USB projection. So there's USB projection. What is, how does that work? Yeah. USB projection means, you know, whether it's good but sometimes when you want to watch a movie, you don't really want to consume too much power for your phone. So through your charge line, you know, remember, every iPhone user got a USB connect to lightning. Through the lightning, USB or your Android phone from micro USB to USB, you can connect to our USB here. You can through the USB port, it can just mirror, mirror your screen. Do you need a special app to run on Android? Yes. Unfortunately, Android have some limitation on transmission of the audio. They only got images. So from Android, we need to run an app. It's an app. Yeah. Just for iOS, Apple, no need. No need. iOS, Apple, no need. Because that's the lightning standard and you have a chip that supports it over the USB. Yes. Yes.  You know, because the traditional projector, we all know, run on HDMI, VGA, you know, that is, but today mobile device, there's no VGA. Not many mobile device have HDMI output. Only notebook, right? All the mobile device, tablet or phone, no one have an HDMI output. But if you do have, then there's HDMI right here. So any HDMI source will work and project in them. Your camera, 720 native. Yes, 720 native. Yes. All right. So I did a video at the DLP booth and they were announcing 4K. Are you, are you excited about potentially maybe in the future? Yeah, we probably, because we are very concerned about the size, size matter, right? If you can make a 4K projector on, on the projector. You make 4K like this? Yeah, 4K with this size when we are, probably if we can make 4K like this size, I would say maybe it will happen in 2000, late 2018. You can make a 4K projector like this size and that will happen on the, on the up-tap brand. But that's soon. That's very soon. We will start 4HD first. 4HD is already in the first grade. Yeah, 4HD in this size. That will happen in, from our company maybe end of this year. Because TI launched a new 1080p P-Code .33. That's the one you need, right? That is a product. Okay. Now we come to the story again. Yeah.  It is, allow us to have an infinite possibility. We are developing a new TI .33 4HD native resolution on this I-Beam Block. So you will see I-Beam Block have a, I-Beam Block enhanced version with a 4HD native resolution, 500 lumens. At the moment, it's a 400 with HD quality. That's awesome. How do you, how do you engineer, engineer product to get more brightness? How does it work? There's a light engine. I guess, I guess it's a, it's a combined effort between DLP efficiency, LED from OSRAM. I think that LD, OSRAM continues to drive the efficiency of the LED performance and plus our, the way we designed the thermal and the way we designed the circuitry, right? So it's a, it's a combination of effort and the resource and the performance of all, many, many different party. And are you considering getting over to trying to use laser? Yeah, we are looking to have a, because when, when the product come to a more like a short throw, some customer in education and corporate, they really want a short throw with about, we talk about 1.5, 2000 lumens. And that time, laser source, we are looking to have a 0.8 TR with a 2000 lumens laser source that we are looking at that. But again, it would be like like a portable, not really as a as a size that what you see today. Because laser works with GLP, right? Yeah, that's a source. Yeah, yeah. And OSRAM is a company doing LED OSRAM. Actually all the LED projector under TI and all LED is OSRAM. I think OSRAM is now is a source supplier, I think. And they provide a 30,000 hour use. Right? That's only quality I think we most of it. All of it? Yeah. There's no need to change a light bulb on anything here. No lamp, no lamp. You never have a light bulb change in all your company's history? Since we, since 2008, I haven't heard about this. You never need to change a light bulb on all your products. Because we're talking about guarantee 20,000 operating hours. Consumer only maybe use about between 1,000 hours to 1.5,000 hours a year. We're talking about 10, 20 years. You know, we're talking about that. So get one of these boxes running Android and then get popcorn time or get the Amazon video app, the Netflix app or the YouTube and all these contents and bit torrent and everything. And then you have one solution. Connect the hard drive, get thousands of videos and movies, cinema, enjoy, good sound and use external surround sound. Yes, yes. Audio out. Audio out. So that's how everybody needs a projector. And I think your market is growing, right? Yes. We see the market accelerated more than 40% quarter to quarter now.


Hello everybody. Yes, this is the last official talk but I'm not sure what Srikanth has in store for you guys. Yeah, more is always good. So I'm just going to start with a quick recap on how I got here and I'm talking to you guys. So Srikanth and I spoke about two or three weeks back about rootconf and he was explaining me all the cool stuff that you guys that all the sessions had in store and all the DevOps audience and the developers audience and the more he explained to me it resonated with what we are dealing with on a day-to-day, more on an enterprise side, SMB side and I requested him to give me the audience to just talk about some of the challenges that we are seeing in the field about scaling databases. So Srikanth was okay with the, you know, letting me talk but he asked me for one thing that the proposal that I had sent had this title and he said this is not catchy and I was too geeky. So he said can you come up with something more cooler? I did not. That's why they're still on the official conference but hopefully databases, the unsung heroes, that's what I have come up with. This is the best I could do to generally talk about databases and how, what are the scalability challenges there and what are we trying to do there? So let's set the stage. I think that's, I'm going to be just introducing you guys to the problem. I think over the last two days I've heard a lot of discussion around scalability which is great which just proves the point that there is a need or there is a problem out there about scaling and there are multiple solutions. I'm just going to propose one alternate architecture and I'll take you through a quick data center evolution as I see it and where databases stand and what are the limitations in current architectures. Then we'll talk a little bit into details about the specific problems as such and try to relate to you guys on why a DevOps guy care about this problem, why even a developer care about this problem. So we'll try to relate these couple of things. And the solution that I have is more presented in a generic form and there are multiple solutions coming out from some open source communities, some more commercial. So I'm just going to present you a quick landscape so that you guys are aware of them. It's possible that some of them are being used by you guys. So just quickly do a summary of what's out there.  And that is where the majority of the technical discussion would lie. And I like to sort of brainstorm with you if any of those use cases resonate with you what you're doing in your infrastructures. Similarly you guys are the gatekeepers of everything in the data center. And then we will do the Q&A. So let's start with a quick personal experience. So back in around January or February of this year I got this email from a very famous airline in India saying oh there is a big sale out there for tickets go buy it what rupee one or something that's what they claim. So I got very excited. I said okay I need to fly to Delhi anyway so let me just go to their site and book my tickets. Let's see what I get. And this is what I got. And literally this was the email must have hit my inbox. I clicked right away. The site was down. What's the point? I mean you're doing a lot of advertising. You're doing a lot of marketing around all of these things that you're trying to sell. But your application, your website are not ready to handle that kind of load. So my reaction to this whole thing. Why can't we test our application, our site for scale. And well it's easier said than done. There are lots of parameters out there in the play. As we all understand application is not just one piece in itself. It's everybody is deploying multi-tiered applications. You have web servers to deal with. You have some solution to scale your web servers. Then you frontend those web servers with some sort of load balancer. Looks good. You add some sort of a caching. Yeah, your web servers are looking good now. What about your app servers? App servers have to be written in a way that they can scale. So we have some interesting solutions there. You have solutions like Hadoop and what not coming in to break down your data sets, your computation into smaller pieces that they can be executed. But at the end, when you go and your app tries to do some data access, it still goes to the database. So that's the part where most of your business logic data is living. And I'm here to just focus on one aspect of this, which is the databases. The things go wrong when your application is scaling at the database layer itself. And that's what I primarily want to deal with. So let's start with a quick recap on what I thought has been happening in the data center. So we started off by IED craftsmanship. That's where we started the data center in a way that it's meeting a one-off departmental need. You're provisioning your data center in a more efficient way.  But then the IT revolution said, okay, no, we need to develop this as a service. This has to be a self-service model where I will give you the tools as a DevOps guy. I'll give you the technology and you go serve your own business. And the third one that we are seeing now is, yes, there is a lot going on. Yes, we have all the cool tools to automate our DevOps. But how do we extract business value from it? I mean, the CIOs of the company are saying, fine, you're using these cluster databases, these cluster compute nodes. Show me something that I can take and improve my business. Do I want to invest more money on app A or app B? Because ultimately, everything should be serving the business. So that's the sort of trend that we've been seeing and started, like I said, with efficiency and now moving towards data. But I personally feel that databases are still stuck in the IT craftsmanship era. I mean, it has not come out of it yet. If you look at the biggest database vendors in the world, MySQL, SQL Server, Oracle, they're doing a lot of innovation in the databases itself to make them faster, more efficient, and whatnot. But they're not paying as much attention to the trends that are coming up. The self-service models, the self-healing models, the models where the data itself talks back to the user, may it be a developer or a DevOps guy or a CIO of the company. So that is where I think the gap is in terms of the database technology and the rest of the things that we are seeing in the industry. So let's get a little bit geeky and then let's see what are the challenges in the database tier today. So on the right, I drew a quick diagram of how a web server to database connectivity exists today. You see a bunch of web servers on top and have a mesh of connections to the database layer. And they are all one-on-one, one-to-one connections. When you're writing an app, you're creating a connection string to say, I want to go to database A or database B. That kind of programming is what we are doing. So as you see that this kind of architecture is hard to scale up. As your databases will start filling up, you will have to add more and more nodes. As you add more nodes, how do you tell your application that a new node has come around in your infrastructure? So it's a problem where every time you scale up, you have to do some modifications into your application stack for it to be useful. No SQL is trying to address that problem and saying, OK, we are transparently scale out system. You don't care about how many nodes you have in the back. Your data is going to get scaled efficiently, which is right. I mean, that's one way of solving that problem. But what you're essentially trying to say to the existing app developers that if you want scaling, then you have to rewrite your applications to now no SQL, which is not always the right approach. I mean, you sometimes the applications are not suitable for a no SQL like a data store. And sometimes it's just not practical. So there are all sorts of challenges there. And what I am trying to propose is there is an alternate to moving to no SQL to solve your scalability challenges. We can do that in a different way. Yeah, some of the other challenges is hard to maintain availability. So a database server goes down. What do you do now? I mean, you saw that initially the error message, error connecting to the database. I am not sure, but I assume that a lot of people have seen this error because a physical server goes down. You can't do anything about it.  And in the meantime, whatever applications have been using that database, you have to go change their connection strings to make them point to the other database node. So so that challenge exists. And it's hard to diagnose also. I mean, there is no visibility in the in the database layer as far as I see it. I mean, in fact, yesterday it was very interesting because one of the Microsoft guys have were showing a tool where they were trying to pinpoint the problem in the infrastructure down to the level of the SQL query. They were saying, OK, this is, you know, this is your multi stack environment. Hey, look at this query, which is causing your databases to slow down because the response time is very high. That's exactly the kind of point that I'm trying to make here that is very difficult to diagnose what's going on in your data database here, where the problem lies, whether it's in the app, because the app has is writing crappy queries or in the network, the latency is very high or on the database because maybe the tables are not indexed properly and your joints are very expensive or your, you know, disks are slower. So the visibility of the problem is is also a big challenge and in today's database here. So anyway, so that so this problem exists and there is a lot of people trying to solve it in a lot of different ways. So some of the interesting projects that have that I would just like to share with you guys is first starting with a white paper by another not a white paper actually a research paper by Google called Spanner. So as you all know, Google wrote the big table paper and then in a lot of no SQL solutions are based out of it. So recently they released another paper called Spanner where they are developing a geographically distributed database. So their use cases for the for the Google AdSense application where all these databases are replicated geographically across the world and you can write application out to query these databases and these are relational databases. And in the paper they actually point out that hey, we introduced you guys to the big table world. It's great for some some applications, but we are feeling that that's not enough. That's not the right thing for a certain application, especially AdSense. So we are going to propose this relational model back again, but we're going to improve that for scale. We're going to improve that for availability because we can't afford that a certain data center goes down because of, you know, hurricanes and, you know, Houston and then it affects all my Google AdWords. So it's completely distributed. They do replication on the back and also second requirement that they had was transactions. They wanted asset properties back. They didn't think that moving the requirement of consistency to application is the right thing. So they are doing something very creative. Very recently about maybe a couple of months back Facebook announced another project called Web Scale SQL, which is actually a branch of the community edition of MySQL where they are solving some of the scale problems. I mean, if you look at Facebook, Twitter, and LinkedIn, and actually Google also, these are the four main contributors to this project, and they have a large deployment of MySQL clusters and they are suffering from the same problem that I'm sort of trying to share with you guys how to solve scalability. So they are making some improvements in the database tier itself to address it. MySQL has had certain solutions out. Some of them, like MySQL proxy, have been around for a while, which is the closest to what I will be talking about. It's basically a proxy server which lives between your web servers and application servers and your databases, and then it basically load balances and controls all the traffic. That's the architecture called the data access layer that I'm talking about. So they have some solutions out there in the open source world, and Postgres also has a tool called PG pool, which does something very similar. In the commercial world, we have, like I said, the database vendors are coming out with some solutions. Oracle has Oracle Rack, which tries to address some of these things. There are companies like SkySQL who are coming up and branching off MySQL and then trying to solve this problem in a commercial way. The dedicated data access layers like my company, Scalark, there are other companies like that, which are trying to solve the same problem in a similar way. And there are ADC vendors, people who don't understand SQL as well, but are in the space of optimization, content delivery. So they are trying to solve that by just partially helping the problem by TCP load balancing, by caching of certain kinds and whatnot. But I don't think that's... I don't think they go deep enough to really address the problem. So let's look at what this data access layer can do for you. So if you guys remember the slide before that, where there was a big mesh of connections, now this is the proposed architecture. All your web servers and application servers are now directly connecting to a single entity, what we're calling as data access layer. And then the data access layer then multiplexes these connections to the server, the database form that you have. So think of it, what does it mean to the application? So you can have n number of app servers and you first of all have to only configure them to a single endpoint. So think of it as a single IP address and a port, which says go here for all your database queries. You don't have to know about which one is a read, which one is a write. You don't have to worry about when a server goes down, how do I recover? It's a single endpoint. Always go there, send your queries, send all your queries there. And what this data access layer does then is as it receives connections from all these web servers and app servers, it can efficiently multiplex them. It can efficiently send reads to certain read servers, write to certain write servers, can measure what is the replication lag between all of them. And we'll talk about those use cases in a minute, but that's a place now for you to do these, to solve these scalability issues. You can add transparently a new node into your architecture. And then you start sending traffic to it, application servers are agnostic to it. They don't know, they don't care if a node comes up, comes or goes down. One more use case that this layer opens up is the real-time visibility of the traffic. So as you can see that this layer is accepting all the traffic, all the SQL queries from the application servers, it can now do aggregation on your queries and can drive business intelligence from it. This goes back to the diagram I was showing you where databases were stuck in the first layer, but they're not serving the business, is because they were not able to assess what, how an application is using the queries. But using this data access layer, now you can get some very useful statistics. Think of an example, you have an application which is sending a lot of selects, a lot of joins. The basic thing that you can know now is how many queries per second am I running? How many queries are going to table A versus table B? What is the average response time of my query? You make a change to your app, you add a new join there and then you start seeing it in this in this access layer and is the business intelligence that can come out of it is, oh now you have a new query that is running and the latency is very high and a developer or a DevOps can then show it to the developer to say, did you just make a modification to the app? Because now it's showing that your join is taking a lot more time. So directly correlating whatever application changes you are making to the database tier. Let's change this view a little bit. So what if you have multiple applications going through this database, data access to your database? And you want to know which of my app is being used more? Where should I invest more money? Whether it's app A or app B. So because of the fact that now you can analyze all this data, you can generate very intelligent decisions from it based on how your app is behaving and how is it using data. So that's another use case that I think this offers. Instant scalability and higher availability we discussed. The transparent cache is something I want to talk about a little bit. So one more thing that this data access layer does is is caching for you. And we've heard of no SQL as a means to serve data from in memory. It has a key value lookup. That's the reason it is faster. You don't have to go to the desk all the time. You can apply similar principle over here. So how it works is you get a query, a read query like a select. And let's say your application is such that it sends a lot of these select queries. Typical example is on ecommerce website when you go to the page, it loads the basic front page which has a lot of items that you display that you're trying to sell. Now this is a static query because it's not changing often unless you go and change your inventory in the back. So you can assume that every select query that you're making every time somebody logs in is going to the database. You can choose to then cache this into this layer where the query will come to the data access layer and return back. And we'll talk more about that. So it sort of eases the pressure on the database tier and takes the complexity to itself and lets it do the more complex operations like transactions which is what databases are good at. Security is another interesting area which gets addressed by this layer. So how many of you've heard of SQL injection attacks? I mean we're all aware of them. This is a very nice place to stop the SQL injection attacks because think of it that if this layer is seeing all the traffic all the time and it can also intelligently find out if a new kind of query comes through. It can just compare it with the traditional traffic that it is sending and it can send an alarm that I'm seeing this brand new query that I've never seen before. Have you made an application change or is this something unusual? And then the administrator can go in and says okay these are the common SQL injection attacks that are being that I'm seeing or this layer can learn itself and can automatically protect that. Okay if I'm seeing some sort of a script embedded inside a query I'm going to block that. I'm just not going to let it go to the database because that's where they're trying to steal the data from. So it does very interesting things with the security as well. So I would like to pause here for a minute and try to see if all this is making sense. Do you guys have any basic questions before I go a little bit deeper into some of the use cases that I was talking about? All clear? Crystal? Will this need any kind of change as far as connection pooling is concerned from the application side? So let me come to connection pooling in a second because that's one of the use cases I'll be talking about but it will enable connection pooling even though your application is not doing it. Even if you have a non-connection pool application you can now do connection pooling using this architecture. But if you do have connection pooling on your application it will work hand-in-hand with it so it does not affect that it actually makes it better. All right. There's a question there in the corner. You talk about the security right? So it's possible for the XSS attack what about the in case of CSRF requests? In case of what? CSRF cross-site reference for injections like that. Right so the way, well there are multiple ways to solve it and ultimately if you can parse a request out of, I guess ultimately this is a network proxy so it is reading all the data that is coming in in a request. You can as a system admin go in there and train the system with rules to say these are the kind of attacks that I want to block. Scripting block is another the kind of you're talking about is could be another one. So it's basically a learning engine. The more rules you create on it given your experience in the past it will do what it what you tell it to do. It is looking at every packet at a packet by packet level and then can stop that. But it has been disaster has been disaster right? Attacker can get through it. After get through it only we can make it a set of the rules. Yeah the good point. So what's the point of blocking somebody something when things have happened already? But I mean that's a more of a business use case. There are some things that it can learn over time. I mean it's not that every time a new attack comes in. Typically some sort of vulnerability gets introduced and then it gets propagated. What is more important is you don't suffer from something which is already known. That's a bigger mistake that you're making. So valid point. Thank you. So my question is regarding the cash use case example which you shared. So why would I want my request to actually go through my application server and reach my database abstraction layer? Shouldn't I actually cash even before my application server? So do you have any other use case which probably is like more useful? Let me understand the question. Actually I'll come to caching in just a second. But let me try to see if I understand your question. You're saying why cash at the database? Because I can cash the page even before the request comes to the application layer. Absolutely. Yeah. So it's not sort of changing the caching that happens at the HTTP layer or the web layer. It is talking about whatever you could not cash there and even if you're sending your select queries to the database you can still do another level of caching there. Because if all things that are read only could be cached at the web tier, then databases should only have been used for transactions. But that's not the case. And I'll show you these cases where you've gone into environments where 90% of the traffic was read. The other question is regarding a transaction. So does the layer also handles transactions which is distributed across different shards or like however you split? So I'll come to that in just a second. Let me just go through that. So I think okay, let me just walk you through this. So it's a very simple architecture.  There are three databases. The one on the left is the primary server. This is the right server. And the other two are the read servers. We're calling them secondary servers. So given what we discussed so far, this is the new architecture that looks like. So let's talk about connection multiplexing. It's a very simple use case. We already discussed that all the web servers, all the app servers are opening hundreds of connections to this layer. But those hundreds of connections doesn't need to be directly open one on one to one to the databases because as some of you might know, databases suffer from the limitation on how many connections they can open at a time. That's one of the very big limitations of databases. And if you're out of connections, then you can't serve the web server. So here, given that you know you can have n number of connections coming in from the app, you can only open m connections to the databases where you know m is what it can sustain. So help in reducing the number of connection errors that the apps can see. Caching is what we talked about. Let's say a web server does a query. It goes to the secondary. The results are sent. And then in the process, the data access layer saved a copy of this response. A similar query comes in from another server. It directly serves it from its cache. Now this is an in memory cache. That's why the lookups are extremely fast and you can control at what time do you want to do the invalidation of the cache. Some data administrator might want to say I want to do invalidation based on time because I know when my tables are going to get updated. Some might say that okay this is this layer might has to have to be more intelligent and whenever a write comes or an update comes to this particular table invalidate my cache. So that's a different sort of complexity that it adds. But very simply it can do an in memory cache for your reads which if you can I mean I'll share some links with you where you can look up the performance and it actually does very, very high scale for reads. If you have an application which has a lot of reads. Was there a question there? Given a SQL query that let's say there are five tables involved in the query and one of those tables are more than one table gets written in a concurrent right. So what happens in that case? Right. So like I said I don't want to go into a lot of detail on the solution but like couple of them I said if you can predictively know that your application is not going to do writes on this particular table you can do a TTL on this cache and say just expire after five minutes and it's okay even if for five minutes you serve me stale data that's okay. Think of the example of a inventory find it gets refreshed after five minutes. But if you want more consistency then you would write something like okay make read all the inserts and updates make sure if you're touching any of the tables that you have cache you invalidate them. If you do such a thing then of course you're adding more extra complexity and you know this optimization performance would actually be affected. So will it still make sense to use your data abstraction layer when such a scenario is correct? Absolutely. So we've seen deployments where this kind of requirements have come in where you know we needed exact consistency and we have configured the system in a way that we have auto invalidation. A write goes in to the database and immediately the cache gets invalidated through APIs and it has worked fine. There's another technique that we incorporate.  Just before that if you just call in the invalidation API that would hit our layer first invalidate the cache and then the write would execute. So there are many ways to actually solve that. Okay the next interesting use I want to talk about is search protection. So this is a case where one of the server goes down and it happens to be your right server. Now it could be just down for maintenance or it could be a real event. But during this time what happens to the queries that come in. So in this layer you can actually have a search queue where you're just caching or you're just holding all the rights till your right server is coming back of course to a limited time. And when your right server comes back in you're going to get forward it. So the clients will get delayed response but they will not get errors. So this is very very useful and we've seen this multiple use cases of this in the field where somebody is trying to do patches or upgrades on their right servers and they want zero time maintenance. They just don't want their applications to see errors. You can definitely make use of this feature. Read right split a very simple example of how load balancing can happen. You have reads and writes. You have one right server. You have multiple read servers. Why do you want to tax your right server with read queries. You might just want to spread them around on the read servers only. And it can intelligently do it by monitoring what is the load on these servers. If you have one server lying vacant send it more load. If you have server which is busy back off don't send a lot of data to it. Replication of where load balancing another very interesting use case. So you all understand the databases if you have a cluster of them they are replicating in the back end right. Somebody was talking about journals before that in a cluster file system context. Databases do something very similar. You write to a particular database to the right server and then they ship their logs across to the read replicas where the read replicas are going to apply those logs and that's how these two servers are in sync. But there is always a delay right and especially if you're writing a lot to one of the servers there is going to be a delay on this on the secondary. Now if you get into a situation where one of your slave servers are is lagging behind. And the reason of its lagging behind could be because it is processing a lot of queries. Do you think it's wise to send more traffic to this server and make it continue to lag behind or would it be better if I just throttle back and say OK I will let you I'll give you time and resources to catch up while I serve this traffic to the rest of the to the databases. So that's what I mean by replication aware load balancing where you are aware of what's happening in your database. How is the replication working on different nodes and then you optimize your traffic accordingly. Query routing another one. You can write rules to say send certain queries only to certain kinds of servers. Maybe you have one of the server which is you know more powerful does more reporting. You write queries and you write rules on the data access layer saying just send these kind of queries to this server enables the query routing feature. This is the last one sharding. I think how many of you have heard of sharding in databases. Wow a lot of them a lot of you guys right. So sharding is a very good technique to distribute your load from the database and you have a table with a million rows. You split them up you know 500,000 on one 500,000 on the other one so that as the query comes you can now submit from two different data stores may most likely parallel. But when you do sharding how do you tell your application about it. Your application still thinks the data look lives on the in a contiguous data store. So what you would have to do is make your application aware of the shard. You have to write intelligence in your app to say okay if you're querying you know indexes from this range go to database A. If you're sending queries to indexes from this range send it to database B. Why touch your application when you now you can easily do it in the data access layer by just creating rules. This thing is anywhere reading your queries, reading indexes and then transparently sending the data to the appropriate servers. So in a nutshell I'm just going to skip this interest of time. Yeah so in a nutshell what I was just trying to show is there are many use cases which affects the performance and scalability of databases that can be solved by this architecture and we don't have to rewrite our apps to no sequel. We can use our current architectures our current infrastructures of databases use the relational model but still can achieve scalability. I'm just going to skip this. Just these were certain sample use cases that Scalark had solved. So dell.com is deployed us during the Black Friday onslaught.  You can imagine millions of customers logging in and getting the database connection errors. So they deployed Scalark solution and they could help sustain the peak. Activision which is the studio behind call of duty. When call of duty three went live they did a sample test by just sending a certain percentage of the signed up users that they can go and try and they saw that even that small percentage of users was not able to sustain I mean their infrastructure was not able to sustain that. Imagine when they would have opened it up to the entire world what hell would have broken loose. So they could also help they could also use our solution to solve some of these things and another company quick and also did that. So that's about it. I think if you want to get in touch with me and sort of learn more about what we are doing or about this particular space please get in touch with me. I coordinates are over here and I would also love to connect with you guys in any way and learn from all the people who have shared very interesting things about DevOps and in exchange ideas on what we are doing in our IT to keep up with it as you can imagine with what we are doing our footprint of or the matrix of things that we deal with is very very large. All the different applications that users and different kinds of databases deployments and cloud deployments and physical infrastructure. So you'd love to bounce ideas with that that's it. Thank you everybody. I can take more questions. Yes. Your data access layer what kind of database technologies are the best suited for this layer? I didn't catch the last part. So the database technologies, right? You showed this initial slide of comparison. There's Oracle. There's MySQL. So what do we support? Yeah. What is the best suited? You think? Oh, what's, okay. So that's a hard one to answer because there are there's multiple attributes over there. I mean you can buy, I mean Oracle definitely serves the the fattest the biggest the most expensive database. MySQL is an open source free database that you can deploy. SQL Server comes around as another database. What is important here is that this layer has capability to now work with multiple databases at a time. And in our experience, what we support is right now MySQL, SQL Server and Oracle all three different kinds of databases. And given that a lot of these databases are closed like Oracle is a completely closed database. You don't have any access to how they're doing what is on the on the wire. We had to do a lot of reverse engineering to understand what they're doing. That's where the intelligence of this layer comes about because in order to do what we are doing you have to read and understand a lot about SQL which they don't expose. MySQL on the other hand is the most friendly because you have the entire source code and you can understand how they're parsing queries what kind of queries they are. So that's where the complexity lies.  How big is the cache that we maintain? And I don't want to make this discussion about scale arc. I want to make it generic to anything. But this could be a implementation where you can have memcache D doing caching for you. And how big memcache D can scale? I mean, we all understand, right? It's not something that will affect the solution. The solution only says I have a query and as long as you can tell me that you can take the result from the cache I can keep putting it in the cache depending on how big my RAM is. And based on that I can scale how much ever I want. We've seen cache, 64 GB cache and 128 GB cache is being used and so of millions of queries. Thank you. Maybe I missed it, but what do I have to do from my code side to basically make a connection to this? Very good point. Actually I missed that part. So from the code side you don't have to do any changes. That's the beauty of it. Because all you are trying to change or maybe one change that you do is change your connection string. Okay, so it will work with JDBC and all that. Right. So it will work your existing JDBC.NET, ODBC drivers. You're just saying that, okay, now my connection string goes to a different endpoint. And I mean, just a follow up question. Do you have like something like a MySQL client has so that I can run a few queries from a shell script? I mean, without writing any custom code for that, anything like that? You can use your existing tools to work with this directly.  Instead of that, you can give the host name of the database access layer and then you can see the query going through this machine.  And you can say what query you fired, how long it took, which server did it go to, and all the details. All right, cool. Thanks. Yeah. Yes. Three questions. Wow. First, whether your layer is a single point of failure. Secondly, is it based on popular proxies like HAProxy or Varnish? And third, how is the pricing? Okay, I'm not gonna talk about pricing because this is not about our solution. This is a generic solution. And yes, this approach has the limitation of being a single point of failure, which you would have to address by means, such as deploying an active pair or some sort of a high availability in this layer itself. That's how you address it. And what was the third question? Is it built on proxies like HAProxy or Varnish? Is it based on proxy? No, it is not based on them, but we all understand that this has to be a very fast network proxy that also has to deal with a lot of application traffic. So it is an event-based, high-speed proxy, and we all understand the proxy architectures. And it's deployed on normal Linux machines or ASN appliance? It ships, again, Scalark software ships as a software appliance. There are RPMs available. You can just download them on any CentOS-based system. All right, one last question. I think, yes, we are reaching the top of the hour. How do you horizontally scale your database access layer? I mean, would you make multiple of them and put a database access layer, access layer on top of that? That's a very good question. Actually, somewhere I heard this quote that I can solve any computing problem or any computer science problem by adding another layer. If you think about it, it's true. And I've seen hundreds of examples of that. So, yes, you can actually put another load balancer of some sort on in front of us to solve the scalability problem of our machine if there is, or this particular layer. And we have real world deployments of that.  So, yes, you can do that, absolutely. Great. Thank you, everybody. That's wonderful. And I would just take one more second and can we have a round of applause to all the organizers? This was a fabulous event. Thank you.


So, and all this all, 28 plus 31 equals 59. That means she paid $59. $59 for a pair of shirts and a pair of pants.


What I find amazing is that to me it's the first time that is actually like that all the AI community is actually gathered on an impact subject meaning that we go into technical details on where we are today with AI in order to see what we can do now to adapt the future of different issues and See how we can actually choose the future we want to build Thanks to AI What has been completely great to me is to see that all of these different goals that we have with the SDGs from the UN can actually be tackled through AI Yeah, so we've been working on the future of work Related to AI in order to understand how we could actually adapt Population today due to the rapid change of the labor markets and actually picture that the future we want to get in With AI and to make sure that we can actually live in a world In which our future work makes sense in which we can actually be comfortable with the rise of machines What has been amazing is that we've seen So many different people actually targeting positive future for the future actually of work and It is a specific topic in which we hear a lot of dystopias. Let's say I believe it might be one of the topic in which people actually most afraid of To see that they get like they lose their job To see that it's really difficult to know what new job will actually come out of this generation But in the end, I think that this optimistic view that we had and realistic on the other hand Is one of the best way to make sure that we have a proper roadmap in order to prepare for these rapid changes So as an AI XPRISE ambassador, I've been selecting teams actually in my region, so Europe and mostly Paris, France In order to find teams that could actually impact a billion lives through an AI application What has been completely great is that most of Like research labs and actually startups in Paris and France and Europe actually work on very great deal Work on very great projects related to AI But what we bring with the XPRISE is the opportunity to tackle a May challenge to go for a major impact And it has been great because we have seen so many teams Actually wanting to go further than their own first objectives as a private lab or a research lab or a company and Now they have like this objective for 2020 To just go and disrupt their entire industry and have a major positive impact for the world I think what is great about the region in France is that we have Amazing talent in AI What we bring with the XPRISE is the possibility the opportunity to have a major challenge to have something that actually Make them want to impact the world even more So it's kind of a great ambition for them and I know that because French people are great competitors They just want to win it