Thanks again!

Though I do not really think the database would be the culprit. Does actually 
EOF do anything with the DB when saving changes before 
DatabaseContextDelegate.databaseContextWillPerformAdaptorOperations is called? 
I might be wrong as so often, but I don't think so; I believe it contacts the 
DB for the first time only after that.

Thanks and all the best,
OC

> On 1. 2. 2024, at 6:12, Ramsey Gurley <ramsey.gur...@practicemojo.com> wrote:
> 
> Are you hosting your database? If so, don't rule out a problem outside your 
> application and in your database. It could be low memory. If you can't fit 
> all the tables/indexes into memory, you fall off a performance cliff by going 
> to disk. It could also be an antivirus scanner that kicked off on your DB's 
> data directory. Once it starts scanning and locking files, it can ruin 
> performance. If you can catch it during these slow periods, ssh into the box 
> and check with top and iostat. Look for something on the machine tying up 
> resources. It could be a poorly tuned database too, your box has plenty of 
> memory, but your database isn't configured correctly to use it. For example, 
> if you're using Postgres:
> https://pgtune.leopard.in.ua/
> 
> It could even be below your database config and in your OS config. On linux, 
> it's highly dependent on which file system you are using (ext4, btrfs, xfs, 
> etc), but maybe you have insufficent read-ahead, or some other filesystem 
> setting. Even if you're not using Postgres, you should probably get a copy of 
> Postgresql High Performance and read the first few chapters which covers 
> hardware tuning below the database.
> 
> It could also be your database is busy reindexing or freeing up table space. 
> On postgres, vacuuming and reindexing can lock tables until the job is done. 
> This can take several minutes or more depending on the size of your table. It 
> could be the autovacuum doing it. If you're not vacuuming/reindexing, that 
> can hurt your performance too, since indexes will grow to exceed your 
> available memory and drop you off the performance cliff. You can do the 
> maintenance and get around the locking problems using something like 
> pg_repack.
> From: OCsite <o...@ocs.cz>
> Sent: Wednesday, January 31, 2024 7:59 PM
> To: OCsite via Webobjects-dev <webobjects-dev@lists.apple.com>
> Cc: Jérémy DE ROYER <jeremy.dero...@ingencys.net>; Ramsey Gurley 
> <ramsey.gur...@practicemojo.com>
> Subject: Re: loooong saveChanges prep-stage
>  
> You don't often get email from o...@ocs.cz. Learn why this is important 
> <https://aka.ms/LearnAboutSenderIdentification>       
> Thanks, guys!
> 
> I am pretty sure though the problem can't be a background process either 
> reading for a long time or saving for a long time, for I do use the 
> ERXAdaptorChannelDelegate.trace logs and through 
> DatabaseContextDelegate.databaseContextWillPerformAdaptorOperations I log 
> each save — and there's nothing like that in the log in the vicinity of those 
> long saveChanges, alas. Thus the culprit must be something else.
> 
> Perhaps indeed something locks the OSC pretty often and for a long time, but 
> that something is neither a long SELECT which would log through 
> ERXAdaptorChannelDelegate.trace, nor another unrelated save, which would log 
> through DatabaseContextDelegate.databaseContextWillPerformAdaptorOperations.
> 
> Besides, it does not really feel like OSC locks caused by another thread. 
> Meantime, I've rigged an awk script to compute how long each saveChanges 
> takes, and it looks like this:
> - for a long time, all is OK
> - when the save times begin to grow, they keep consistently long (e.g., about 
> 30 s each, or about 50 s each) for each save for awhile (a quarter or half an 
> hour), before things get back to normal
> 
> If another thread locked OSC, it would most probably mean some saveChanges 
> would be long, but some quick; it does not seem probable a background thread 
> would consistently keep OSC locked so that each saveChanges takes roughly the 
> same (long) time.
> 
> This rather feels by something at the beginning of saveChanges becomes slow. 
> This would most probably happen under the OSC lock, and given the way it 
> works, does not seem really plausible that it is simply waiting to acquire 
> the lock itself.
> 
> For the moment, I'm rather outta ideas :(
> 
> Thanks again and all the best,
> OC
> Confidentiality Notice: This email, including all attachments and replies 
> thereto, are covered by the Electronic Communications Privacy Act, 18 U.S.C. 
> Sections 2510-2521 and are legally privileged. This information is 
> confidential, and intended only for the use of the individuals or entities 
> named above. If you are not the intended recipient, you are hereby notified 
> that any disclosure, copying, distribution or the taking of any action in 
> reliance on the contents of this transmitted information is strictly 
> prohibited. Please notify us if you have received this transmission in error. 
> Thank you.

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to