Replies: 2 comments 3 replies
-
Hello. This types was taken from original cli pgtune. Here discussion about this - gregs1104/pgtune#2 I can create separate page with explanation, if this needed. Does this explanation in gregs1104/pgtune#2 (comment) will be enough for this DB types @hi2u ? |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I really love the idea of your tool, thanks for making it! @le0pard
However every time I've come back to use it over the years (quite a few times), I've found that I really have no idea exactly what kind of differences the "DB Type" setting is going to make, i.e. the options:
Obviously some of them kind of give some hints, e.g. I'm guessing that "Web application" + "Online transaction processing systems" would be aimed more at handling lots of small queries at once, at least compared to "Data warehouses" ... but beyond that I don't know what the difference between "Web application" vs "Online transaction processing systems" would be. Most "Online transaction processing systems" are e-commerce stores, which means that they're also a "Web application".
And while we all know what each of these options "are", that doesn't necessarily correlate to every project in that category (even if our system is simple enough to obviously fit into one of those categories). Often metrics in terms of size/frequency are what are important here, more so that some neat simple business categories based on lots of assumptions.
"Desktop applications" is one where I can't even guess what that will prioritise at all?
For most of my big projects where I even need to bother thinking about changing default postgres settings, they don't even really neatly fall into one of these categories. They're usually a crossover between the first 3. But that doesn't mean that "Mixed" is going to solve any problems for me, there very likely is a more specific option that best fits my project, but I don't know which one it is.
I know what my technical requirements are (2) below, e.g. things like how many users are like to query at once (and who to prioritise)... big vs small queries... lots of JOINs vs not many, reads vs write priority etc... but I have no idea which "DB Type" is going to be most relevant to my technical requirements.
Author vs user perspective
To put it all another way, think about the differences in understanding for you as the author of this tool, vs the users using it...
For you: @le0pard
To build this tool, you've had to think about this in 3 stages:
The users of the tool:
Having (3) there is very nice (and is all that some users need), and of course it should remain... but considering you've had to figure out part (2) above... why keep it a secret?
For a lot of us, we're coming at this from having some specific technical requirements re (2) above. We have to try to guess / use the tool in this order...
I've found that any time I've used the tool, I've had to re-generate the configs for all the different type options, which involves doing all the steps above again for each option by trial-and-error.
So keeping in mind that the goal of this tool is to save time for people who don't already have a very good understanding of (1), it's actually making the tool much less useful to us when we're trying to solve issues from the (2) perspective.
For anyone who is actually already having performance issues they need to solve, they're coming at this from (2) anyway. Coming at it from (3) is really only useful for fiddling with settings at the beginning of your project, i.e. before you actually have any real problems to solve.
Epilogue
Very long post I know, and I hope it doesn't sound like a rant! Very much appreciate you making this tool and sharing it with the world. I just wanted to explain why some of us find the tool difficult to use. I see there's been other issues in the past with similar requests, so hopefully this might help explain it further from the perspective of the users of the tool (who are specifically using this tool because we lack the knowledge to make it).
If this was a lot of work for you to do or had some downside, I'd understand the reluctance to bother with it. I can also understand giving the response: "it's open source, you can contribute and fix it yourself". But the work here isn't really any code/technical changes at all. The request here is for you to please put the knowledge you already have in your head down in writing with a few brief notes. Even just one sentence per option (noting the technical prioritisations made) would be incredibly helpful for us to differentiate them as users.
Given you built the tool, and needed to figure out (2) already, you're the only person who already has this knowledge. Even if somebody else attempted it, they're still going to just be writing the descriptions based on assumptions about what you had in mind as you've built the tool, so it's probably going to be wrong anyway.
I see people are asking you questions in the github issues here about the differences between the options, so maybe just publishing that info up front might even save you some time in answering these questions again and again?
If you were to type up some info, I'd suggest just putting it on the homepage under the text:
...that way it's already on screen exactly when the user needs to read it. And they're less likely to come and bug you with questions about them here. :)
Cheers & thanks for you consideration on this topic again!
Beta Was this translation helpful? Give feedback.
All reactions