PGCon 2019 - Lightning Talks
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Subtitle |
| |
Title of Series | ||
Number of Parts | 35 | |
Author | ||
License | CC Attribution 3.0 Unported: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/48282 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
PGCon 201917 / 35
1
3
4
10
12
13
16
17
19
20
24
28
29
33
34
35
00:00
Meeting/InterviewComputer animation
04:49
Computer animation
06:31
Computer animation
09:43
Computer animation
10:48
Computer animation
11:48
Computer animation
13:17
Computer animation
14:28
Computer animation
15:16
Computer animation
18:10
Computer animation
20:51
Computer animation
21:46
Computer animation
24:59
Computer animation
26:06
Computer animation
26:58
Computer animation
28:06
Computer animation
29:25
Computer animation
30:10
Computer animation
31:47
Computer animation
32:29
Computer animation
33:13
Computer animation
34:05
Computer animation
34:57
Computer animation
37:16
Computer animation
39:52
Computer animation
44:28
Computer animation
45:18
Computer animation
49:25
Diagram
51:17
Computer animation
Transcript: English(auto-generated)
00:05
Hi, so I work for Oracle last year. I was here working for Microsoft You know actually that that isn't the sentiment that I that I had gleaned about Microsoft today, actually
00:20
I mean everyone loves Amazon because Amazon's sponsoring the party tonight and Everyone's pretty much okay with Google having access to all of our data But for some reason people don't seem to like Oracle all that much here You're catching on all right, so Oracle's a big company 137,000 employees 180 billion dollars of market capitalization. I can't even visualize 180 billion dollars. That's just ridiculous. Oh
00:47
Good for you, but Oracle's not just a big company. It's a cloud company. We don't just do a database We don't have a hundred and thirty seven thousand people working on the database And our competitors the people who who I thought you're all happy about they have their own databases to
01:02
Microsoft of course is MS SQL Amazon have nine different databases on their cloud RDS or Aurora redshift more Some of them are based on Postgres, but Amazon's not exactly a big contributor back to Postgres yet I went to look at Stephen Stephen Frost's
01:20
GitHub repository with all the Amazon patches, and there's none in there, so you know I don't know that's accurate, but Google's got at least five And including some no SQL options like BigQuery, but competition is good right I mean competition drives innovation
01:40
you know if if My speaker weren't around you guys to be nowhere without them driving you to to be better and actually keep hold of people's data The important thing is that competitors can collaborate Just just because the Oracle database competes with Postgres does not mean that we're enemies We're competitors
02:01
right and And the important thing about competition is you know you kindly need a level playing field and for us really that's equal right we all implement a slightly different variation certain dialect of sequel, but at least Everyone who implements equal is a competitor. We can compete for people you can migrate from one database to another with
02:23
Minor adjustments to people's code All right, you're laughing, but it's a lot easier than going to a no SQL model, right You know the Bruins and the Blues are literally trading punches on the ice But they're all members of the NFL players union
02:43
And yesterday an Oracle employee Loned an HP HDMI adapter to an Amazon employee who plugged into his Apple laptop to give a presentation now That's a standard right that that's goodness right we all benefit from having those kinds of
03:03
collaborations and So I don't actually work on the database myself Obviously, I'm a Linux kernel guy and it turns out there's about 150 people in Oracle's Linux kernel team And we work on all kinds of things which benefit Linux broadly we have our own internal projects of course, but you know we do we do QA on Linux kernel
03:22
Which just helps everybody I mean I suspect most of you work on Linux based systems, I know there's a couple of FreeBSD people in here, but By and large most people are using Linux today We have security people we do RDMA stuff, which is very important to some databases less so to others
03:42
Personally my thing at the moment is memory management I swore I would never do memory management, but here I am breaking my breaking my own promises So what I'm working on right now is huge pages If you're not Into the low-level details of kernels and micro architectures you probably don't know a whole lot about them, but
04:04
Postgres has had support for huge pages using something like huge TLBFS or shm get or something for a couple years now but what I'm working on is Transparent file back pages, and we're going to see a two to six percent performance improvement and
04:20
You guys are gonna get that for free right? You're not doing anything for that. We're doing it We're doing it not for you. I mean there's nobody's Oracle who wakes up the morning and says I'm gonna make Postgres two to six percent faster today, but we do say we do wake up in the morning and say hmm How can I improve? Oracle database performance, and then you guys get the benefit of it for yourselves, so
04:41
Thank you for coming. Please don't kill me And if you are going to pour your drink over me the official Canadian way is to have me open my mouth lay Down my back and pour it very very slowly a few milliliters at a time. Thank you. Sorry
05:31
Hi, so I'll start right in the middle I want to talk about pgbouncer wrapper
05:43
Sql izing pgbouncer Who all has used pgbouncer before okay who loves that console Okay, there's there's always a few Not everybody does and I wanted to
06:01
Give some alternatives But for those that haven't always used pgbouncer one of its awesome properties is that it can pause a Postgres database it sort of just gives you a way to Do things in the background without necessarily taking an outage and violating your SLA
06:23
That is pretty nice This is not Anybody remember anybody seen something like this it's a show users on a busy pgbouncer and It's a little hard to deal with and it's a little hard to scroll through and there's just not a whole lot of
06:45
They're there or I should say there's way too much. They're there and there's not a lot of usable information so It's just too much So this is where I go to the live demo
07:09
Here we go So, thanks So, thank you
07:22
So, let's let's have a quick look at some of the things that we could do from pgbouncer wrapper that you really can't do from pgbouncer itself, so Here I'm doing a little SQL on these table like things and up comes
07:42
Up comes the The actual thing that you wanted Even though in the original table like thing this information wasn't there so you can do joins all that kind of fun stuff I don't think I need to convince anybody here that SQL is fun to play with Let's see what else we can do. Oh
08:03
Just that this is just a bunch of views laid atop of the show commands and if you were wondering about the rest of the verbs Here they are
08:22
There was There there's a disable and an enable and a kill and a pause and all these things and you can call them from SQL and The end of the live demo
08:44
Alrighty Does anybody want to hear about the history of PG bouncer too bad it comes from Skype They made sky tools of which
09:01
PGQ Londista wall manager and of course PG bouncer are Parts I'd like to thank them for being able to do this. I'd also like to thank my employer one login I'd also like to thank Joe Conway for DB link
09:26
And I'd like to thank you for your patience Thanks so much
10:01
Thank you Hi everyone, my name is Jonathan Cass as Magnus said and today we're going to tell MD 5 to scram in New York We tell MD 5 to do something else, but then it's not as funny in this context So first before we start let's have a be a brief history of Postgres password management because today we're gonna be talking about password-based
10:20
Authentication which is something we do every day So before Postgres 10 there were two methods what was called password which stored the password as plain text in the database and this is totally fine if you basically trust a lot of different people who are interacting with your system and Of course we all do and of course you never repeat your passwords ever
10:41
and there actually was a legitimate reason to use this method which was that your You know your your driver your library did not support the MD 5 method But this is no longer relevant because we do not support this method anymore But we do still support MD 5 and this was a very popular Well, yeah, it was a very popular way to do password-based authentication in older Postgres
11:02
Which basically you took a password then you took a salt which happened to be your username you threw it in I call it Postgres MD 5 which is the MD 5 hashing algorithm with MD 5 pre-pended to it And that was it and that's how you stored it. And you know, this is all in all and well and
11:21
Then when you said like hey, I want to connect to Postgres Postgres would say alright Well, I got I got you know to challenge you So here's a random four byte salt which basically what you would do is you take that MD 5 password and pre compute it Attach the salt put it through the Postgres MD 5 again And then the Postgres server would do the same exact thing and say alright cool
11:41
But the problem is is that that kind of salt had like almost like no randomness because if you use the same username and Password for everything you basically have like the same salt for everything Sorry the same MD 5 hash for everything but it's not like you can get that very easily because there's no way that information could be you know given to you and
12:02
You know, you probably couldn't just like take the authentic image authentication method and use it, you know anywhere so it's totally secure Good So MD 5 needs to scram Or as you say in New York something else, but scram seems it seems kind of rude, but it's not
12:20
It's actually the salted challenge response authentication method And it's a standard and it's a very well-defined standard and what's also cool is it's actually pretty easy to implement as evidence because I've Implemented it independently The thing that's so cool about it is that defines a way that your client and server can authenticate with each other Without ever sharing the password
12:42
Really, all you need to do is you need to store something like this or this is what Postgres stores Which is the digest you want to use the hashing algorithm The number of iterations you put your password through the hashing algorithm using an HMAC based signing The initial salt that you want to use because we always need a salt and then you have something called the stored key in a server
13:04
Key, which you'll touch on but the client can be blissfully unaware of this except for when you do any initial generation So, how do we scram let's see if I could do this in 1 minute 58 seconds client says I want to Connect Postgres is like alright, but you got a scram So I'm gonna send you the the the hashing digest for you to figure that out
13:23
The client is like well the client can either say well I don't actually support this method and goodbye which is now far less of a problem than it used to be or The client can say great. Well, let me send you some channel binding information, which we'll touch on later The username which Postgres completely ignores because it already knows your username and then announce, you know a single one-time randomly generated
13:43
piece of garbage The server is like, okay, so you really want to scram it's great So I'm gonna actually append to that nonce so that way, you know, we know that we're communicating with each other I'm gonna send you back the salt and the number of iterations. You need to put your plaintext password into well We've already get we've supplied the plaintext password on the client side, but we don't ever want to send that over
14:05
So basically we do some hashing magic to generate what we call a client proof And because you can all read this very quickly You can see that we can generate this client proof and you have to trust me when I say that We're never sending the password over we basically just send back the nonce and
14:20
How we get the client proof The server then says alright Well, let me validate if you can actually know if the proof you sent to me is valid and the idea is that both Of them, you know effectively derive the stored key and they both derive the same stored key then they're likely valid But of course, you know, there's a few other things that we check But the server now knows at this point the client is valid
14:42
But the client doesn't not necessarily know like the server is valid and the server has the correct stored key So the server has to send back a signature for the client to validate to say like hey, everything is okay So there's a method to upgrade to scram basically set password encryption to scramshot 256
15:00
You leave empty five based off enabled in pghba.conf until everyone's rehashed their passwords There's channel binding it helps prevent man-in-the-middle attacks and we did that in five minutes
15:38
Hello, can you all hear me
15:40
All right. So this short presentation is going to be about high-go software incorporated in Canada Just wanted to take this opportunity to announce that we are creating a small team For post SQL community development and that team is going to be based in multiple multiple geographical locations
16:01
So the primary function of that team is going to be working doing community development So they'll be working on new features and other community activities Okay, so who am I? My name is S.N. Hadi. I've recently taken on a job of VP of development with high ego software
16:22
Prior to that. I was working for enterprise DB for about 15 years as a senior director of product development Okay, so Can I get a show of hands of people who have heard about high-go software before this presentation? Okay, so we've got a few there So high-go software incorporated in Canada is a subsidiary of high-go software. That's based out of China
16:45
that's our parent company and high-go software is The biggest postgres shop in China. They've got about 300 employees and You know, they are the biggest, you know, they're just kind of leading the postgres kill development and promotion of postgres in that region
17:04
There are some couple of other random pictures of high-go China, but one more slide here, so this is all high-go China Alright so high-go China, you know, they're also a core part of postgres kill Association in China Which is made under
17:22
Kupu which is a China open source software Promotion union so you can see a list of all the other members that are part of that association I can only read a few from there. So I guess you probably do the same So this is another flyer of China postgres kill Association that you can read
17:41
Okay, there is the high-go high-go software China has done some work, you know some open source work Couple of tools out there It's a tool for a wall parsing then there is a PG light tool, which is a light lightweight backup tool These tools are still kind of work in progress
18:01
So there's more work to be done before we get them to production quality But they're all available on github and they've been done by the high-go China team So this is a high-go software incorporated China Canada office So we've got we've got a few employees in our Canada office This is another picture of our office in Canada
18:23
Then this is a high-go software incorporated office in Pakistan We don't actually own the whole building. We just have a small office in that building But one day we hope that you know, we can have a building like that. So I think to some people's surprise You know high-go the postgres is also very popular in Pakistan
18:41
We've got at least four companies in Pakistan postgres companies Pakistan that have their development office And you know postgres is also very popular in the government sector The national identity card is basically You know, they're using postgres and you know, every citizen of Pakistan is supposed to have a national identity card
19:00
So postgres is actually getting very popular in Pakistan and they also have Development is happening there as well So in terms of you know what we plan to do as part of this team that we are putting together You know for postgres community development, you know, obviously want to start with things like patch reviews
19:20
Blogging, you know maintenance bug fixing obviously translations, you know appearing and talking in conferences That's kind of our you know short term plan In the long or medium term, you know, we are looking at doing some development in areas like backup performance Scalability, you know horizontal scalability vertical scalability
19:42
We also want to do some work in the security area and there are also some projects that we plan to undertake under the R&D banner, so That's kind of our medium long-term plans. Obviously the areas that I've talked about We are not restricted to work in just those areas. So, you know, there are suggestions from the community members
20:01
We are welcome to those suggestions and you can want to contact us Okay, so this is the last slide we have HIGO is also hosting a postgreSQL conference in China in Beijing in July and we're expecting around two to three hundred people and We would just encourage everybody to end that conference. It's gonna be a great conference and my friend Grant here who's
20:24
Organizing it can give you all the details and if you don't find that enticing enough There's going to be a trip to one of the mountains in in Beijing as well Thank you very much Does that work?
20:58
So, yes, I'm Chapman Flack and for a few years now I have been maintaining the PL Java
21:08
Extension there's a story behind that. Let me touch on it this way If you picture sort of the design of a typical PL extension You've got Postgres here on one side of it. There are some constraints. It has certain APIs it exports
21:26
And you know, you don't get to change SQL You've got your programming language over here that you're going to use you don't get to change its spec You do get to design all of this stuff in the middle how you're going to embed this thing
21:41
What you're going to do what PL types you're going to use for what SQL types how you convert from one to the other The easiest answer is probably well, I'll use the simplest PL types around maybe I'll use strings I will call the Postgres data type in out routines and you know done 40 lines
22:02
PL Java is a funny case because even this stuff in the middle is pinned down by formal specs So SQL part 13 tells you what these details have to look like It tells you how you're going to do the data type mapping which has to be the same way. It's done in JDBC
22:22
Which is more than 40 lines and That's It makes it convenient for using PL Java. You've got these nice Java types. They have useful behaviors. You get them without much work For hacking on PL Java, it turns it into this game where you're trying to satisfy four different specs at the same time
22:46
And that was the same sort of thing that got me my unofficial title in a lab in grad school of the glue Meister And That might be why when I started sending, you know early patches to Thomas Holgren for PL Java
23:01
he was ready to spend his next 10 years doing something else and He said, oh look here's the right kind of weirdo and So here I am and I've done a few releases since then focused on Not breaking things while getting enough familiarity to jump into more ambitious changes and
23:24
Some of those are forced by JDBC as it continues to evolve PL Java originally kind of has assumed that in the C code. It knows what data type transformations It's going to need to make it can have those all teed up before the Java code needs them
23:42
Meanwhile JDBC keeps adding support for new Java types some of them as Alternate mappings of the same SQL types So it no longer makes sense to assume you know what to tee up in advance That took some hammering and bending in PL Java 1.5.2
24:02
And we'll get some more work in a major release down the road I Promised I would say something about Graal VM, which is this Oracle labs ETH Zurich Quest that they've had for several years and it just 11 days ago had its first non pre-release release
24:25
They don't do it for us, but competitors can collaborate and It's a polyglot VM. It runs Java JavaScript R Python Ruby LLVM bitcode you can compile stuff from C other
24:42
JVM languages and it does all this with very little cost for interlanguage calls and actually interlanguage data accesses And beneath all of that It is still a JVM If you have PL Java installed in your database You can change the setting of lib JVM location to where you've downloaded
25:03
Graal VM the next session that starts up with PL Java will be running on Graal VM You can create Java functions the same way you're used to and now these functions can use the polyglot API and Do stuff in other languages what you can't do at this point is
25:25
Create language create function in those other languages and use those directly from SQL for that you're going to want me to finish the changes on the data type mapping that I alluded to earlier and If anyone has questions in 18 seconds
25:44
Thank you
26:08
Hey Yes, so I'm Erskine I'm with Microsoft slash site of Stata and today I'm going to talk about PG auto failover a postgres solution for automated failover and high availability
26:25
And it was actually Lucas who was going to present this talk, but his flight got cancelled He got stuck in New York, and he called me up and said hey, I was going can you present in my place? And I asked I told him hey, oh sure. What do you want me to do? He said you just open source this extension and that pg-con is a critical audience, so I'd like to
26:44
I'd like for you to talk about it and under promise and overdo like we over deliver later So keep it modest, and I said sure Lucas. I decided to go ballistic so PG auto failover is the best HA solution. There is ever not just for postgres for any
27:03
Database really and if you don't like the framing Lucas is flying here. He'll be here in about an hour or so Please share your feedback with them, and if you can't find him. He's the tall Austrian guy I have a son number two and on a more serious not PG auto failover is an auto failover solution for postgres and
27:24
Why another auto failover solution high availability solution? It's the combination of three things that make PG auto failover unique It's simple first and foremost robust and open source and when I say simple Like no external dependencies you can download this thing without anything else set it up and run in eight steps
27:44
It's robust fairly well tested, and there's a finite state machine that manages state transitions and We recently open sourced it under the postgres license It's very new and then the primary reason I'm presenting here is to gather your feedback into the extension and solution
28:03
Here's a simple architecture diagram basically, you have the primary that does the streaming replication to the secondary and now we have a monitoring node in there and the monitoring node is The author like authoritative node that manages the state and on state transitions between the primary and the secondary So in this picture if your primary fails the monitor does health checks regularly and at some point decides to promote the secondary
28:26
If your secondary fails the monitor node again Intervenes and then does the right thing and if the monitor node fails Then as long as you have a healthy primary and secondary the cluster keeps being operational So the architecture is very simple in that sense, too
28:42
As long as you have two out of three of the instances running your cluster will always be operational and Then here's the other side of it basically PG auto failover sports postgres versions 10 and upwards So you have your client application connecting over lip EQ 10 plus after afterwards and
29:04
In the connection string you specify. Hey, here are the machines that I want to connect to and If the primary fails and on the secondary gets promoted basically the application at the psql layer is going to detect that and then automatically failover to the secondary in
29:22
Summary in short to PG auto failover is a very simple way to set up auto failover on HA for postgres The first version is just stopped and then we actually do take HA very seriously and we'd love your feedback we have the github repo here in case you'd like to take a look at it and
29:40
This actually a site to state is the first project that we open sourced As part of the Microsoft family and you can read more about the announcement in here. Thank you
30:26
Yes Yes, yeah, yeah, I needed this to be reusable so Yeah so Bad code is like swearing around children Robin Williams had a special back in the 80s called live at the Met
30:43
wherein he was talking about being a new father and driving around Los Angeles and someone cut him off in traffic and he said a bad word and In the backseat was his three-year-old son who heard that bad word and then spent the rest of the day repeating it
31:05
using it in sentences Conjugating it and That what I want to impress upon you today. Is that bad code is like swearing around children Some of the code you have written is bad. You should feel bad about this. Shame is important
31:25
It could be like this or this non optimal piece of code Or this
31:46
People new to programming newer than you will see what you do because They know you you're smart. You're here today. You must be pretty smart doesn't mean you're wise
32:00
Those newer programmers will look up to you and assume That what you have done Must have been a good thing Because you're smart so They can't copy your code if they can't find your code so
32:21
You don't want newer programmers stumbling across you know a script like this because when they see that it empties a table, they might try to quit out of it and You commented out the transaction and now you just lost a production table
32:42
You definitely don't want them seeing your college error code Don't don't show them. Yeah, I always wanted to write my own in Chef riser. This is the closest I got But you wrote the code you put effort into it it works it's still good Why let it go to waste we should leave that wisdom around
33:03
Consider these two little bits of code this the first one you wrote and The second one you wrote later possibly with the same function name But it's more optimal If one of these children sees these the at least the first one they're going to use it
33:22
Because you're smart, you know what you were doing when you wrote that Dead code code you're not using it's wasting your time in compiling and Refactoring it in your unit tests and it just is being laid around where somebody who doesn't know what to do with it
33:41
Could find it I just finished a Python 2 to 3 upgrade at one of my clients and A whole lot of the code we went through Doesn't get run. I Actually uses there are ways to make this better
34:04
Don't comment out code Delete it deleted code is debugged code. It's still in github. You've you've got it. You can get it back Just don't leave it around So delete that function, you know Make a comment about why it was a bad thing
34:21
But don't leave it in the source file When you're doing examples for other people Add in the days today's date and the versions of all the tools you're using because time Continues on after you write the post And the what you wrote in that post may not be relevant in the future
34:44
You can't predict whether it will be or not So put in a marker like this that helps people understand where you were when you made this advice when you are deleting a code or when you can't Get rid of things or when you can't
35:03
Make the update that you want to make because there isn't time at least record your regrets in an issue tracker of some sort So that somebody can get around to it In summary bad code is like swearing around children if you don't pay attention to what you're letting them see they'll just say
35:21
Fuck it
35:57
Yes, a very short talk so how many of you
36:01
Type things into a computer or a laptop. How many of you do that? Oh Come on, be brave. How many of you do that? I'm more than one laptop or machine More than three Okay, how many times have you written something somewhere and not been able to find it because you can't remember where you wrote it
36:21
Okay, that's what this solves Sync thing is like where's the clicker this clicker this clicker There we go. So since sync thing hits all the buttons. I've got it running at home
36:44
it basically syncs my Documents directory, but you can make it sync whatever directories you want and it's not like our sync. It's peer-to-peer So what my solution involves is having three systems running
37:01
Sync thing my laptop my laptop my other laptop and a server that's actually for the reason I have the server doing that Is because not all the laptops have to be on at the same time in order for this to work just the server So whatever laptops on syncs to the server and then whenever another laptop comes along it syncs to the server as well
37:22
So when you install it and get it running It pops up a little web page on on the computer running and have a look at it and my case So that's one of my laptops that's my server that's the laptop it's running on and with this is about
37:42
20 how many I Can't remember. There's something like 212 directories 2600 files and 60 gig the initial sync takes a while. But after that is very low CPU It's doing like point two three percent at the moment And now I don't have to worry about where I wrote something. It's always in my documents folder and it doesn't matter where it is
38:06
the advantage to syncing it to this this server at home the server here is that This is running on a ZFS snapshot. It gets snapshot. It gets backed up. It gets replicated to other locations So I think it's very difficult for me to lose my documents directory accidentally
38:26
Any questions in the back over here no This is not about repos this is just about plain flat text files
38:44
For example, you could have your source files in here and it would sync the source files somewhere else But it won't It'll also sync the git Directories, but I don't think that's what you want Yeah Any other questions?
39:01
here What's the source? Just set I'm trying to answer that Yeah, there's sync thing dotnet I thought I had another slide I think it's on my other laptop
39:21
I think I added that and didn't upload it. So sync thing dotnet you can get it there They have various packages and stuff like that that works. We have another minute and a half. I Do I do? but I'm gonna Finish if there's no more questions
39:40
Okay. Thank you
40:30
Diversity and inclusion Now we all know so an acquaintance of mine Simona Hari Hariswara was Talking with me at bang bang con and she said yeah, you know all of the marginalized
40:44
Background people that I met feel like they have to give the DNI talk and I was like, yeah I'm looking forward to not being The person to do it, but here I am volunteering again. I'm Renee Phillips. I'm based in New York We're in Ottawa. Did I get that right?
41:01
Good So we all work with people no matter if it's you know, a million years ago today Ordering things from Amazon getting delivery on food sending mail Working alone in a cubicle. There are people around us in our lives. Even if we're unemployed. We're still working cooperatively with people in some way
41:21
So this is something that applies to everybody so we should all be awake and concerned about this. So thank you for staying I Am very annoyed by these two books and many other things that often come up in the DNI world And what these two books in particular do is they say hey ladies It's generally focused on ladies
41:41
And a very particular kind of lady very middle-class very white very able-bodied But it says hey ladies, here's how you fix your DNI problem and I'm here to tell you that this is not my problem This is our problem So we all can do things to help and I'm gonna give you three things to think about and do
42:05
bathrooms complaints and hiring I called this talk complaints about bathrooms and auditions So we want everybody to come to our spaces. We want people to feel welcome. We want people to participate
42:20
We want the ideas of people who don't look or speak or sound or walk or talk like us and that includes not just gender this includes race first language abilities whether that's physical or Neurotypical or other biological types of things. We want people to be able to get into our spaces stay there
42:41
Be comfortable and get more people into our spaces So complaining about bathrooms I will cry at work. I would prefer not to have to cry in the bathroom I really don't want you to tell me not to cry at work I want all of us to be able to cry at work if your dog dies You should be allowed to cry about that if you stub your toe and you're in physical pain
43:04
You should be allowed to cry about that My crying at work hopefully will open the door for all of you to cry at work If I do have to cry in the bathroom I want the bathroom to be a reasonable and safe place to be for everybody So things that you can all do at work is if you notice or hear that your workplace is having menstrual supplies in the women's
43:26
room May be mentioned to your workplace that they might include having those supplies in the men's room because people have all kinds of genders Gender representations gender identities gender feelings might be menstruating in the men's room need those supplies
43:41
So that's one thing that you can do just suggest to your boss. You did this thing in one place please be equitable and do it in another place because One of the most dangerous things for a trans man to do who and I hate to use the word passing But someone who is has passing privilege to out themselves and say hey, I need a tampon that could be really dangerous
44:01
So if you just put them there and then don't ask any questions Yay, this is especially great. If you're holding interviews or social events at your office people can see hey, this is an equitable place to work if They don't want to work in a place. That is an equitable place to work great You just scared off a jerk if they are people who need or want accommodations or will appreciate those accommodations great
44:24
You just encourage them to be there more bathroom stuff. This is a Marcel Duchamp Piece of art. It's urinal There Are a lot of reasons getting into the complaint thing that people don't make complaints here's a list of them
44:42
Here's a list of responses. We often get when we make complaints or bring up concerns The list is very long There are a lot of things that give cover for terrible people to continue doing terrible things When someone comes to you at work, whether you're in a position of power or not Listen and don't invalidate their concerns. Maybe help the person make a plan
45:03
Maybe say that sucks if you overhear something terrible happening make a code of conduct complaint Even if that terrible conduct wasn't addressed at you, you can still report it Finally auditions. We know that blind auditions work So if you're in a workplace that's hiring, please encourage your workplace to anonymize resumes. There are great ways to do this
45:24
We know from musicians that truly anonymous Audition practices have helped putting carpets down talk to me if you have questions
46:14
Hi So I want to talk about poor for which is obviously the first version of poor
46:24
So probably you don't know about this tool Quick introduction what it does. It's Po wise acronym for a Postgres workload analyzer so what is does is help you to give some insight on your workload on your databases on the
46:41
More or less real-time fashion. So the idea is you can take a snapshot on the various Data sources. So the first one is obviously pgstat statements when you can get a lot of really Useful counters like number execution and everything But our support for a lot of other extension
47:03
One of my favorite one is a PG weight sampling which is available for PG 10 and above So it's what this extension does is Sample weight events at high frequency and it's super cool. So you can use that to have insight of weight events
47:21
You can also get information about CPU usage and physical disk usage with another extension Which is called pgstat cache You can also sample predicates So the where clothes and the join closes to have more information like what index are missing and everything Then you store everything, you know Postgres database
47:42
Obviously you retrieve it and then the UI give you a lot of nice I hope dashboards to see everything and there is also since the last version a wizard which Kind of do a global analysis of everything happen on one database database and try to come up with a
48:01
global index suggestion which try to Get the smallest amount of indexes to create to Optimize your workload by trying to get as much multi-clone index to avoid too many index and stuff like that
48:20
So the Interesting thing is a first version is there is now a remote mode Which means you don't have to store everything on your production database and make everything even slower. So that's a nice thing to add It's also work on a standby So there is a graph which doesn't mean a lot but you can see a lot of fancy things
48:41
There is documentation if you are interested so you can see everything and on the project Some screenshots because it's much more fun So you see you have on the UI multiple instance you can Collect on one database so you can choose whatever instance you want to to drill down to see what's happening
49:01
So you have a system metrics with pgstat kcache so you can see the context switches and the page faults and Stuff like that. So you you have that that's a query per database and per server level. So it's quite nice I don't think there is another way to have that for now and progress
49:22
You can also have the CPU usage once again per query per instance and per database so It's a nice way to see if you have like a system CPU usage or user CPU usage or it's also nice to see Missing something in your like C code or function or whatever
49:45
Still with the same extension you can compute real hit ratio, which means you can see what's was in the shared buffer in the operating system cache and just read on disk so it can help you to tune like oh you're missing some shared buffer or
50:01
Index because you're reading too much from disk or whatever Another extension I didn't mention in pg track settings which can track whatever change happen on your Server and then you can put some some dots and see what what setting change at one point so you can see if like
50:21
If you put you walk them from one gigabyte to one megabyte and everything suddenly super slow You can see what change and how it changed on your graph So probably can help you to drill down whatever change was effective or not The wait event I was talking about so you can see a graph of everything happening and a
50:42
Chart with the number of logs so In this case, you can see transaction ID is the highest one So probably it was a PG bench doing a lot of small inserts. So you're just waiting on that It's a global index suggestion, so It's a big picture with probably can't see a lot
51:01
But it just you can see here like a lot of queries and just like this for index Trying to optimize all those queries and saying one index can optimize six queries so can be nice Reference you have all the links and there is a online demo available. And thank you very much
51:39
Those of you don't do that
Recommendations
Series of 35 media