Guild icon
DDraceNetwork
Development / bugs
Report client & server bugs, especially but not limited to release candidates.
Between 2024-11-19 00:00 and 2024-11-20 00:00
Avatar
Avatar
deen
I found a problem, we were counting the playtime double for a few days, fixing (edited)
I think the fix has broken something else, now there is no Playtime displayed at all for the last three weeks
Avatar
I'm still fixing it, it will take a while
07:50
This is surprisingly expensive to recalculate
07:50
The server will be busy all day today and then we should have it back
07:51
Proof of busy server 😄
Avatar
rad font
07:54
60gigs of memory woaw
07:56
That's just the website server btw, we have another 64 GB RAM server with more CPU for the database
Avatar
Avatar
deen
Proof of busy server 😄
teletext 🔥
Avatar
Avatar
deen
That's just the website server btw, we have another 64 GB RAM server with more CPU for the database
😢 thats alot of server
07:59
is this just for the website?
Avatar
also lots of random stuff, database is heavily used by the game servers when you do /rank etc
Avatar
Avatar
deen
I'm still fixing it, it will take a while
oh ok, sorry!
Avatar
Avatar
deen
also lots of random stuff, database is heavily used by the game servers when you do /rank etc
i dont know the scaling rules for servers n stuff. why is /rank a heavy operation? you can store them sorted?
08:54
petition to add $totaltime because i dont remember
08:55
o its gone
Avatar
Avatar
Solly
i dont know the scaling rules for servers n stuff. why is /rank a heavy operation? you can store them sorted?
It needs to deduplicate
Avatar
Avatar
Tater
It needs to deduplicate
wdym (i guess thats y ur typing, oh its not) (edited)
Avatar
Which i think ruins the sorting because the index is lost after the window
Avatar
whats deduplication
Avatar
You're really gonna do this to me on my phone 😭
Avatar
sorry 😢
09:01
you can link spam me
09:01
oh i gues thas also bad
Avatar
It's on google
Avatar
is the thing which does /rank monolithic?
Avatar
Yeah technically
Avatar
then why deduplication
09:02
oh wait why deduplication if it was spread across multiple servers
Avatar
Otherwise 1 person can have all top5 ranks
Avatar
but that happens on map complete
Avatar
It stores all your finishes in a normalized way
Avatar
what do you mean normalized
Avatar
That's a lot of typing sorry
Avatar
who did it, end time?
Avatar
Normalized database form
09:05
It never deletes anything or stores duplicates
09:05
So it has to calculate the top5 every time
Avatar
linked list of references to finishes where you calculate rank when you need to?
09:06
you only ahve to search for additions then
Avatar
You don't get to choose the container type in a sql database
09:06
It's always a balanced tree
Avatar
no ): but can you not do linked lists
09:07
(crummy ones with uids)
Avatar
It would be very very very slow
Avatar
well slow is better than sorting every /rank5
Avatar
It's not
Avatar
i dont tend to touch databases but they cant be that bad at them
Avatar
Also that would be un normalized
09:08
There's better ways
Avatar
table 1: uid, next uid, prev uid, reference to finish(uid2) table 2: reference to finish (uid2), who, time, number of completions (edited)
Avatar
If you want to unnormalize it's enough to store the finish table without duplicates with an index on time. And will query instantly
Avatar
index on time?
Avatar
Database index
Avatar
but youd still have to sort?
Avatar
It sorts things for you
09:10
okay
Avatar
Kinda
09:10
It's more nuanced
Avatar
Avatar
Solly
table 1: uid, next uid, prev uid, reference to finish(uid2) table 2: reference to finish (uid2), who, time, number of completions (edited)
i dont see how this breaks normal form
Avatar
The linked list itself breaks normal form because you can calculate it without storing it
Avatar
i only know up to 3rd normal form
09:12
how many are there
09:12
That's not important
Avatar
i dont understand " you can calculate it without storing it" as a rule
09:13
oh are you saying its "excess" data so shouldnt be in a database
Avatar
If storing the data is optional then it's not normalized
Avatar
yeah oke
09:14
well you dont need the first table, i was just saying if you were forced to, you can just have a seperate linked list program (edited)
09:14
also if you were forced to it doesnt really matter that it breaks normal form if its for a good reason (that is faster /top5)
Avatar
There are solutions which are very obvious deen just chooses to not use them to simplify everything (i assume) (edited)
Avatar
Avatar
deen
I found a problem, we were counting the playtime double for a few days, fixing (edited)
۔🌸𝕿𝖄4𝕶𝕬🌷۔ 2024-11-19 09:15
you delete this?
Avatar
Avatar
deen
Proof of busy server 😄
idk what the core speed on these are, but thats alot of prcoessing happening
Avatar
Deen does databases as a job so I assume he knows the most of anyone
Avatar
i thought the db was relativly simple not as i said it table 1: per map: time, completion table 2: who, points (oh no my normal form), completions[], teamcompletions[] table 3/4: map, (team), best time, completions (edited)
Avatar
Avatar
Tater
Deen does databases as a job so I assume he knows the most of anyone
yeah i dont touch em
Avatar
Avatar
۔🌸𝕿𝖄4𝕶𝕬🌷۔
you delete this?
Yes, WIP
Avatar
i just wana learn 📕 (<- book)
Avatar
map momento mori, block cordinates 1129.50 32.50
Avatar
Avatar
Tater
If you want to unnormalize it's enough to store the finish table without duplicates with an index on time. And will query instantly
Avolicious 2024-11-19 09:36
For finishes I've looked into timeseries (TimescaleDB)
09:37
It doesnt fix the problem of /top 5, but you can use materialized views for that
Avatar
Avo always has a service for everything of course. lol
Avatar
Avatar
Tater
Avo always has a service for everything of course. lol
Avolicious 2024-11-19 09:38
KoG is a big playground 😄
Avatar
Avatar
Avolicious
It doesnt fix the problem of /top 5, but you can use materialized views for that
Yes that's one of the "obvious solutions"
09:39
But adds maintenance
Avatar
Avolicious 2024-11-19 09:39
Wdym?
Avatar
Idk, I assume deen would rather pay the high server bill than deal with a materialized view or similar. That's his choice
Avatar
Avolicious 2024-11-19 09:41
But you create the materialized view once & then use incremental refresh 😄
09:41
You an do a full refresh, but this is expensive in terms of CPU
Avatar
I don't run the servers pepeH
Avatar
deen runs databases out of pocket? (edited)
Avatar
Avolicious 2024-11-19 09:41
Yeah gotcha 😄 I guess I can open source my database insights
Avatar
Avatar
Solly
deen runs databases out of pocket? (edited)
Avolicious 2024-11-19 09:42
Donation based 🙂
Avatar
then it matters sorta if it could be less intesnive
Avatar
Avatar
Solly
deen runs databases out of pocket? (edited)
It's donation funded but he makes up the difference if there is any, usually none recently
🙏 1
Avatar
Avolicious 2024-11-19 09:43
KoG is also donation based smiles
Avatar
merge and become koddnget
09:43
^ wip name
Avatar
Avatar
Avolicious
But you create the materialized view once & then use incremental refresh 😄
Who supports incremental refresh, that sounds interesting
Avatar
Avatar
Tater
Who supports incremental refresh, that sounds interesting
Avolicious 2024-11-19 09:45
Continuous aggregates make queries run faster on very large datasets
Avatar
Ddnet is on mariadb tho
Avatar
Avolicious 2024-11-19 09:46
Yep
09:46
MariaDB has views as well, but not incremential refresh I assume
Avatar
What this mentions postgresql, is it a wrapper for postgres?
Avatar
We tried Materialize for ddnets records table. The amount of ram required was absurd, so we gave up on that idea
Avatar
Avatar
Tater
What this mentions postgresql, is it a wrapper for postgres?
Avolicious 2024-11-19 09:47
Timescale is a plugin, yes
09:47
It is based on PostgreSQL
Avatar
Oh plugin
Avatar
Avatar
Tater
Oh plugin
Avolicious 2024-11-19 09:48
But it works perfectly fine
Avatar
If you want to work on the top5 issue, I think it's settled that a separate table with only top records of people would help the most, and you can maintain one using triggers
Avatar
Avatar
Learath2
If you want to work on the top5 issue, I think it's settled that a separate table with only top records of people would help the most, and you can maintain one using triggers
This is better than materialized view?
Avatar
Avatar
Tater
This is better than materialized view?
It's not cheap to refresh it at all
Avatar
Avolicious 2024-11-19 09:49
No, its just a different way to do
Avatar
I guess the trigger is pretty light
09:50
In this case
Avatar
Avolicious 2024-11-19 09:50
But the data aggregation is heavy
Avatar
Materialize aims to solve the incremental update issue, but as I said it required an absurd amount of ram. I didn't try Timescale
09:52
I thought Timescale was more for time series data, our data isn't very dense in time per map or per player. It is however kinda dense in time in general without filtering. So maybe it might work decently
Avatar
Avolicious 2024-11-19 09:52
Finishes are time-based
09:52
You cant finish 10 years ago right now (edited)
Avatar
But our queries are almost never about the most recent of all finishes. It's usually never about the most recent but rather the shortest
09:53
Anyway, idk what sorts of query Timescale is optimized for, so maybe it would work/help
Avatar
That would be a big migration
09:54
The more tables idea sounds easier
09:58
Also team finishes are a thing, there's non fixed team size and the website needs a link to everyone's profile so you can't just put it in a string I think
Avatar
I would definitely try the table with triggers thing before any other drastic action
Avatar
I had a single idea for a clever index trick that I was going to try but not having the actual indexes was an imaginary blocker I made, I'll try it in a couple days.
Avatar
cyberfighter 2 2024-11-19 15:49
do 0.7 players always appear like this?
justatest 1
Avatar
is this a bug? how do i get here? im on team 0 no practice btw
Avatar
Avatar
444
is this a bug? how do i get here? im on team 0 no practice btw
wats a bug?
Avatar
Avatar
Solly
wats a bug?
is possible to get there?
Avatar
are the seats supposed to be solid
Avatar
ig tee hitbox is bigger than that lil pixel
Avatar
are the white squares solid?
17:01
think so
Avatar
there shouldnt.. be a way to get there?
Avatar
what map is this @444 ?
Avatar
Avatar
Solly
there shouldnt.. be a way to get there?
Avatar
teleport lazer/grenade/gun/etc! (edited)
Avatar
Avatar
meloƞ
what map is this @444 ?
Justix
Avatar
Avatar
444
Click to see attachment 🖼️
now we are 2
Avatar
you can get through the gap with downspeed, it works similar to going through the these freeze tiles i dew but its not about position but speed (edited)
Avatar
problem is, you can't get out kekw
Avatar
Avatar
meloƞ
problem is, you can't get out kekw
jhwahjwahjahj ye
17:07
thx 4 help guys
Avatar
guess how many people are in here
17:08
now we are 10
Avatar
the more time i play this game, the funnier i find it
brownbear 2
Avatar
Avatar
cyberfighter 2
do 0.7 players always appear like this?
yeah
17:33
i guess its intentional ?
Avatar
shouldnt they appear as default skin
Avatar
Seems like the server doesn't send any skin info for those clients (edited)
Avatar
Avatar
むぎ
relased btw
@deen
Avatar
pls read further, this has been mentioned a few times now, no need to ping :p
Avatar
i looked it up tho
22:26
only saw one mention
22:26
what am i supposed to search for that is not "relased"
22:28
but ur right it probably wouldve been mentioned a few times
22:28
but actually he should be pinged every day its not fixed so
22:28
im kinda right anyways
Avatar
Avatar
baby frog
but actually he should be pinged every day its not fixed so
ah yes, lets annoy a random individual online every single day because there's a typo
Avatar
u ignored the other half of my argument though
Avatar
I don't see how this is a point to argue about.
Avatar
i agree, and i think we should stop arguing
Exported 172 message(s)
Timezone: UTC+0