185 karma · joined June 1, 2016
This is also after playing with settings about WAL mode.
It would not be a viable solution to split these tables into separate databases to avoid the concurrency issue. Also, most of the issues involve writes to the same tables.
Is there honestly any way to get that working well with current SQLite or do we need to wait for hctree or begin concurrent to mature?
I would be concerned that to get this working in its current state would require a large refactoring of the app which would require a lot of effort and would introduce limitations that make coding more difficult.
I theorize that since software is so invisible/intangible, these complexities are not understood by many.
> So I forked it and butchered it to remove everything we don't need - which is actually most of the framework.
I guess there is hope that Play framework itself will be migrated to Scala 3 and that the dependency on the fork can be removed, but this is taking on a risk - what if there are security updates to the upstream in the mean time?
Another hack: I once was consulting for a client who was running Drupal and was going to launch their new site the next day, but suddenly it started crashing on some of the pages. I found out that you can take a core dump of Apache and load it into gdb. Then if you run some gdb macros, you can see the PHP stack trace at the time the crash occurred. Turns it it was some module (tokens?) they had recently enabled which was recursively calling into itself. Not sure why it didn’t hit some stack limit, though. We disabled the module, which fixed it and the client was super happy. If I knew more about Drupal, I probably would have disabled modules in a form of binary search as a first troubleshooting step. But I did know a little about gdb, so that came in handy.
We were building a messaging system for a system that was being rewritten, where the only requirement was direct messaging between 2 users. It was suggested to generalize it to support multi-user conversations since that was a product desire some time ago. This complicated the backend implementation significantly, including performance and maintainability. The APIs and the frontend only supported 2 user messaging still.
And the system never needed multiuser chat.
[0] https://forum.djangoproject.com/t/asynchronous-orm/5925/51
So there wouldn’t be this problem with Intuit if the government got their shit together. Why not spend efforts to improve the system rather than litigation? The answer? Lobbying.
This is all in stark contrast to the system which exists in Denmark, where I live, where taxes are all filed online and the government automatically fetches most information so that you mostly only need to review it and add deductions.
[1] https://medium.com/@syastrov/us-tax-system-a-fractal-of-bad-...
If you want to scale horizontally you can run multiple read replicas with something which distributes connections evenly to the replicas.
What’s the compatibility story like? Is there a list somewhere of unsupported features?
If a company was starting fresh, which would you choose?
Or suggest schema changes that would improve normalization or performance.
It would be nice to see the effect on the environment as part of the decision-making process for deciding whether to optimize versus scale.
I think developers have an innate desire to fix performance issues as optimization produces a better understanding of the code and the problem and developers would like to solve the problem in the best possible way. And it helps to know that the problem won’t bite again later.