-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Better support for table level locking #67
Comments
Sorry, but to prevent crashes it is necessary first to understand the reason of crashes. Table level locking prevent concurrent modification of the table, But it doesn't prevent (and should not prevent) concurrent execution of read-only queries. So if problem is caused by memory exhaustion which in turn is result of concurrent execution of some heave queries, then locking can not solve this problem. Can you some how provide me core files or stack traces of such crashed backends? |
Both reasons: OOM sometimes happen when there are multiple users and simultnious delete&load&query. The Get-query gets somehow infinite loop --> takes long time--> builds memory --> oom killer. The query result should be very small is small but we can't even kill the process from postgres side. Segmentation fault happens sometimes. It is very difficult to reproduce but it seems that deleting data and querying processes starting same time some times makes this. These are the reasons why i suspect that the problem is somehow related to deleting/adding rows from imcs when there is same time querying. |
Sorry, but without core file I can't do anything. |
No. Maybe I could create the needed locking by using advisory locks. |
Could there be better exception hanlind in IMCS side so that if OOM killer happens it would not restart the postgres server? |
It is possible to dump cores ni production environment as well. Sorry, but I have to say once again, that it is not possible to do something without understanding first the reason of the problem. It is not clear to me now whether OOM happen because of IMCS shared memory or private backend's memory used for query execution (for example for hash). In general, it is not possible to protect program from OO killer. You can play with overcommit memory settings or add swap, As far as I know there is no way to protect process from OOM killer. And once processes is killed, there is on other |
Hi,
We have been using a long time now table level locking branch.
In our application we have multiple databases on one postgres instance and they all use IMCS heavily.
Every now and then some strange behaviour happens on imcs side system crashes on out of memory killer or segmentation fault.
These crashes seem always somehow related to multiple users using same time get,load or delete actions to different tables.
Would there be possibility to implement better support for table level locking that would prevent these crashes?
The text was updated successfully, but these errors were encountered: