Fork me on GitHub
#clojure-uk
<
2018-04-17
>
seancorfield05:04:07

Let's just say that we're about 11 hours into a database cutover and our hosting company now has Russian engineers from Percona on the call, debugging memory issues with the new servers.

seancorfield05:04:21

So I've had better days πŸ‘€

seancorfield06:04:40

I hope your morning goes better @dominicm πŸ™‚

dominicm06:04:46

@seancorfield That doesn't sound fun. What's the definition of a cutover migration? Google wasn't particularly enlightening.

seancorfield06:04:17

We have moved from a cluster of servers running Percona 5.5 to a new, smaller-but-faster virtualized cluster running Percona 5.7.

seancorfield06:04:59

The two version jump meant the hosting company had to seed the DB onto a new 5.6 box and then setup replication in a daisy chain into the new cluster.

seancorfield06:04:46

We have been working on this process for about five months, testing everything as we went, so we had expected the production cutover to be somewhat smoother.

seancorfield06:04:00

Could be bugs in Percona 5.7, could be configuration problems. At least it's not application-level problems so it's sort of "not our problem" (except for having to work with the hosting company coordinating restarts so they can debug the problems!).

maleghast08:04:00

@seancorfield - Ouchie! hope it gets sorted soon!

maleghast08:04:56

Morning everyone πŸ™‚

yogidevbear09:04:11

Morning beautiful people

jasonbell10:04:48

what about me?

3Jane10:04:58

you don’t count yourself as a person/people? 😞

yogidevbear10:04:47

Since when do you need to create an account on Oracle to download a JDK for Windows? Another nail in the coffin. 🐧 here I come

yogidevbear10:04:05

I see what you did there @lady3janepl

😊 8
jasonbell11:04:32

@yogidevbear you've needed a log in for a long long time.

mccraigmccraig11:04:12

iirc you needed to login back when it was still sun hosted

yogidevbear11:04:19

Really? I don't recall having to sign in the last time I tried to download from them. Weird.

jasonbell11:04:27

@lady3janepl People? Only on person but to the Clojure community multiple names..... πŸ™‚

mccraigmccraig11:04:32

oh, what are you other names @jasonbell?

jasonbell11:04:46

@mccraigmccraig Oh you know...... here, Jade appears to be popular, I don't fight it anymore. It's more a kind form of communityacceptance.

seancorfield11:04:02

Mornin' again πŸ™‚ Just got the call from our data center folks to restart everything because they needed to restart the database again. Now they have Percona dev team involved. But I expect to go back to the land of nod again for at least a few hours more. Soon. πŸ™‚

yogidevbear11:04:34

You mean to tell me that Jade isn't your real name?!

otfrom12:04:40

obviously Jade is his real name. Like Ged in Wizard of Earthsea. It gives us powers over him.

alexlynham13:04:10

didn't know this existed until @carr0t told me about it last night

danm13:04:52

Eyup πŸ™‚

dominicm13:04:22

this channel is getting biiig

dominicm13:04:25

yay clojure

danm13:04:59

340 members, but only about 6 that do most of the talking πŸ˜‰

dominicm13:04:56

more than 6 now I think

alexlynham13:04:57

yeah on slack at work there's about 4-5 people in the engineering channel doing all the yakking

dominicm13:04:06

everyone else is doing real work

dominicm13:04:17

maybe activity in this channel is correlated with unemployment (from clojure)?

alexlynham13:04:19

everyone else is not clojuring so

mccraigmccraig13:04:40

running lein modules or boot-cljs is well correlated with most of #clojure-uk chat activity

alexlynham13:04:59

I'm benchmarking json serializers but yeah

dominicm13:04:11

that's basically compiling right?

alexlynham13:04:15

more or less

alexlynham13:04:54

just waiting for the banhammer to descend on my use of it

danm13:04:33

I end up chatting on here while our Jenkins server compiles Clojure and builds AMI snapshots

danm13:04:00

For some reason I don't understand, boot build on our Jenkins box running CentOS 6 is much faster than running it locally on a high spec MacBook. Probably disk I/O related

danm13:04:10

But we very rarely build anything locally

mccraigmccraig13:04:41

@carr0t i'm also observing that building our uberjars and docker images is much faster on AWS (m4.xlarge) than on my high-spec mbpr

alexlynham13:04:01

bc you're running slack on yr mbpr

πŸ˜‚ 16
danm13:04:04

Yeah, our instances are m4.xlarge too

danm13:04:45

They were t2.medium, which in our experience runs similarly to m4.xlarge as long as you're not network constrained and don't run out of CPU credits

danm13:04:50

But we ran out of CPU credits

dominicm13:04:06

Totally going to blow my own horn here, https://github.com/juxt/pack.alpha is really fast at building uberjars in my tests so far. As a function of it's process.

thomas13:04:38

it is my job to hang out here and make sure that you lovely people are doing enough work πŸ‘»

thomas13:04:58

real work that is!

dominicm13:04:04

I've totally got distracted by a foray into Esperanto affixes.

alexlynham13:04:36

...I'm still benchmarking...

🏎️ 4
alexlynham14:04:57

first test of this new jsonista library and it absolutely troll s data.json (obv) and nippy

danm14:04:00

"Aiming to be faster than cheshire"

danm14:04:07

Interesting, that's what we're using πŸ™‚

mccraigmccraig14:04:53

so this seems to suck - in one context, i need to write 32 bit java.lang.Integers to EDN and have them read back as 32 bit java.lang.Integers... but pr then edn/read converts everything to java.lang.Long by default. afaict my only recourse is to (defmethod print-method java.lang.Integer [x writer] ...) and write a custom tag for java.lang.Integers - but that leaves me with a custom tag in all the contexts where i don't care about the particular integer type

mccraigmccraig14:04:30

is there any way of printing EDN without going through pr and friends ?

danm14:04:08

Java still doing stuff with Ints and Clojure using Longs for nearly everything has bitten us with interop too

alexlynham14:04:32

I had that the other day!

mccraigmccraig14:04:54

it's not unreasonable in this case - the Int is mapped to an underlying 32 bit int field in a database

sundarj14:04:37

@mccraigmccraig what about Transit?

alexlynham14:04:16

I was trying to work out why this data run was slowing down, looks like I've filled my hard drive with fake data

πŸ˜† 4
mccraigmccraig14:04:39

hmm. i could use transit in this case @sundarj if it maintains Ints through encode/decode

sundarj14:04:01

i think it doesn't by default, but Transit is extensible right

sundarj14:04:26

you could add a custom reader/writer for ints

thomas14:04:25

isn't EDN suppose to be Extensible as well?

mccraigmccraig14:04:34

@thomas it is, but the write extensibility is global, through pr extensions

sundarj14:04:43

yeah, but the unit of extensibility in EDN is reader tags

mccraigmccraig14:04:22

there's a proposal to let EDN writers be more sensibly extended https://dev.clojure.org/pages/viewpage.action?pageId=8192126 but it's quite old and hasn't happened

thomas14:04:12

ok.... so not quite as extensible as intended maybe.

thomas14:04:29

and I think transit has superseded EDN at cognitect.

alexlynham14:04:41

really? that's interesting

danm14:04:34

Given they wrote it, is it that surprising? πŸ˜‰

alexlynham14:04:57

true I guess, but that's also true of EDN

alexlynham14:04:06

& EDN had lofty aspirations

Rachel Westmacott15:04:33

I could have sworn it was possible to have non-global extensions in EDN

Rachel Westmacott15:04:41

<goes code hunting…>

mccraigmccraig15:04:58

probably good for me to use transit anyway here @peterwestmacott ... it's for a db dump/restore tool which is encoding/decoding lots of records

Rachel Westmacott15:04:04

looking at it, it might just have been edn/read-string that lets you pass custom readers

Rachel Westmacott15:04:33

but not at write-time

Rachel Westmacott15:04:53

I’m not seriously suggesting this, but there is always defmethod/`remove-method`

sundarj15:04:04

managed to get an Integer round-trip with transit working in my repl, so it does work πŸ˜›

thomas15:04:07

I thought the reason of moving to transit from EDN was that EDN didn't quite deliver what was expected of it and that it was on the slow side. transit would be faster because of all the hand optimised JSON parsers. that was the thinking at least AFAIK.

mccraigmccraig15:04:12

huh, transit throws an exception to indicate EOF and it's not even a distinguished exception, but a RuntimeException

mccraigmccraig15:04:21

that's way ugly

3Jane16:04:11

eyetwitch intensifies

3Jane16:04:38

…I guess it’s still in progress?

mccraigmccraig16:04:59

despite that - transit seems to be working nicely - thanks for the idea @sundarj πŸ˜„

πŸŽ‰ 8