02-06-2021, 07:20 PM
@soundof-ferns
Very true, but the crux of the performance issue being discussed here isn't the database per se (and 'database' is itself a squidgy concept in MPD).
Client performance is tied up with what's happening with the results of the DB operation. This involves the architecture of the WebUI, its implementing technologies, the choices made by the folks writing web browsers, and the resources on the device running the browser. You can track @swizzle's contributions in the moOde github repo, which might suggest specific areas to look at.
As an aside, all the browsers are moving targets. The rendering engines keep changing; the JavaScript engines keep changing; and the magical stuff the browser developers do with them keeps changing.
Hence, what is true for a specific version of a specific browser today may not be true after it receives tomorrow's update. As an extreme if unrelated example, today for the first time ever I experienced a lock up and Linux memory dump, this while I was routinely browsing our github repository with a just updated Chromium browser on a Linux box. Yikes!
As to your last question, there's no design document I know of. From time to time I make private notes and sketches as I read the code but I never had the stamina to wrap them up nor the courage to impose them on others. Maybe someone else can put their hand up.
Regards,
Kent
Quote:Also, from my time in the software world, a few hundred thousand tracks is not a large index in the database community.
Very true, but the crux of the performance issue being discussed here isn't the database per se (and 'database' is itself a squidgy concept in MPD).
Client performance is tied up with what's happening with the results of the DB operation. This involves the architecture of the WebUI, its implementing technologies, the choices made by the folks writing web browsers, and the resources on the device running the browser. You can track @swizzle's contributions in the moOde github repo, which might suggest specific areas to look at.
As an aside, all the browsers are moving targets. The rendering engines keep changing; the JavaScript engines keep changing; and the magical stuff the browser developers do with them keeps changing.
Hence, what is true for a specific version of a specific browser today may not be true after it receives tomorrow's update. As an extreme if unrelated example, today for the first time ever I experienced a lock up and Linux memory dump, this while I was routinely browsing our github repository with a just updated Chromium browser on a Linux box. Yikes!
As to your last question, there's no design document I know of. From time to time I make private notes and sketches as I read the code but I never had the stamina to wrap them up nor the courage to impose them on others. Maybe someone else can put their hand up.
Regards,
Kent