AnsweredAssumed Answered

Unable to upload to cluster nodes in parallel through FTP

Question asked by tico on Oct 23, 2009
Hello,

I have configured a two nodes cluster, with Linux Centos 5.1, repositories are replicated through NFS, and one Postgresql 8.1.

I tried to upload in parallel on the two nodes through FTP. In few minutes, FTP is not available anymore, clients doing retries. No java exception in Alfresco logs. The only result of my investigation is a DB lock waiting. Here is a ps command showing lock waiting:

# ps auxww | grep ^postgres | grep "postgres: alfresco alfresco"
postgres  5961  0.4  0.2 124496 10856 pts/4    S    10:32   0:02 postgres: alfresco alfresco 127.0.0.1(43454) idle
postgres  5962  0.0  0.1 122044  4916 pts/4    S    10:32   0:00 postgres: alfresco alfresco 127.0.0.1(43457) idle
postgres  5963  1.0  0.2 124836 12296 pts/4    S    10:32   0:05 postgres: alfresco alfresco 127.0.0.1(43460) idle
postgres  5964  0.2  0.2 123484  8756 pts/4    S    10:32   0:01 postgres: alfresco alfresco 127.0.0.1(43463) idle
postgres  5965  0.3  0.2 124484 10120 pts/4    S    10:32   0:01 postgres: alfresco alfresco 127.0.0.1(43466) INSERT
postgres  5966  0.5  0.3 124672 13420 pts/4    S    10:32   0:02 postgres: alfresco alfresco 127.0.0.1(43469) BIND
postgres  6465  0.0  0.1 122236  7016 pts/4    S    10:34   0:00 postgres: alfresco alfresco 192.168.100.126(44522) idle
postgres  6466  0.5  0.2 124496 10104 pts/4    S    10:34   0:02 postgres: alfresco alfresco 192.168.100.126(44525) idle in transaction
postgres  6467  0.4  0.2 124468  9804 pts/4    S    10:34   0:01 postgres: alfresco alfresco 192.168.100.126(44528) INSERT waiting
postgres  6468  0.8  0.2 124496  9928 pts/4    S    10:34   0:03 postgres: alfresco alfresco 192.168.100.126(44531) idle
postgres  6469  0.7  0.2 123440 10108 pts/4    S    10:34   0:02 postgres: alfresco alfresco 192.168.100.126(44534) idle
postgres  6470  0.6  0.2 124512 10504 pts/4    S    10:34   0:02 postgres: alfresco alfresco 192.168.100.126(44537) idle
postgres  6806  1.2  0.2 124496 11172 pts/4    S    10:37   0:02 postgres: alfresco alfresco 127.0.0.1(36924) idle
postgres  6808  1.2  0.2 124472 11688 pts/4    S    10:37   0:02 postgres: alfresco alfresco 127.0.0.1(36928) idle

I dont beleive in a DB deadlock situation as only one INSERT waiting appears. I think of a not closed/commit/rollback pending transaction.

As FTP clients continuously retries to reconnect and upload, the situation on DB gets worst and worst. After few minutes waiting:
# ps auxww | grep ^postgres | grep "postgres: alfresco alfresco"
postgres  5961  0.1  0.2 124496 11256 pts/4    S    10:32   0:02 postgres: alfresco alfresco 127.0.0.1(43454) INSERT waiting
postgres  5962  0.0  0.1 124212  7992 pts/4    S    10:32   0:00 postgres: alfresco alfresco 127.0.0.1(43457) INSERT waiting
postgres  5963  0.2  0.2 124836 12384 pts/4    S    10:32   0:06 postgres: alfresco alfresco 127.0.0.1(43460) INSERT waiting
postgres  5964  0.0  0.2 123484  9088 pts/4    S    10:32   0:01 postgres: alfresco alfresco 127.0.0.1(43463) INSERT waiting
postgres  5965  0.0  0.2 124484 10120 pts/4    S    10:32   0:01 postgres: alfresco alfresco 127.0.0.1(43466) INSERT
postgres  5966  0.1  0.3 124672 13420 pts/4    S    10:32   0:02 postgres: alfresco alfresco 127.0.0.1(43469) INSERT
postgres  6465  0.0  0.1 124488  8080 pts/4    S    10:34   0:00 postgres: alfresco alfresco 192.168.100.126(44522) BIND
postgres  6466  0.1  0.2 124496 10120 pts/4    S    10:34   0:02 postgres: alfresco alfresco 192.168.100.126(44525) INSERT waiting
postgres  6467  0.0  0.2 124468  9804 pts/4    S    10:34   0:01 postgres: alfresco alfresco 192.168.100.126(44528) INSERT waiting
postgres  6468  0.1  0.2 124496 10008 pts/4    S    10:34   0:03 postgres: alfresco alfresco 192.168.100.126(44531) BIND
postgres  6469  0.1  0.2 123576 10588 pts/4    S    10:34   0:03 postgres: alfresco alfresco 192.168.100.126(44534) BIND
postgres  6470  0.1  0.2 124512 10552 pts/4    S    10:34   0:02 postgres: alfresco alfresco 192.168.100.126(44537) BIND
postgres  6806  0.1  0.2 124496 11416 pts/4    S    10:37   0:03 postgres: alfresco alfresco 127.0.0.1(36924) INSERT waiting
postgres  6808  0.1  0.2 124472 12104 pts/4    S    10:37   0:03 postgres: alfresco alfresco 127.0.0.1(36928) INSERT waiting
postgres  7422  0.0  0.1 123292  7048 pts/4    S    10:42   0:00 postgres: alfresco alfresco 192.168.100.126(38855) BIND
postgres  7500  0.0  0.1 123156  7352 pts/4    S    10:43   0:00 postgres: alfresco alfresco 192.168.100.126(38861) BIND
postgres  7574  0.0  0.1 122136  6428 pts/4    S    10:44   0:00 postgres: alfresco alfresco 192.168.100.126(50191) BIND
postgres  7584  0.0  0.1 122260  7208 pts/4    S    10:44   0:00 postgres: alfresco alfresco 127.0.0.1(49798) INSERT waiting
postgres  7653  0.0  0.1 124164  7576 pts/4    S    10:44   0:00 postgres: alfresco alfresco 192.168.100.126(50198) BIND
postgres  7659  0.0  0.1 123288  7588 pts/4    S    10:44   0:00 postgres: alfresco alfresco 127.0.0.1(49803) INSERT waiting

I tried to play with Hibernate parameters like hibernate.connection.release_mode or hibernate.order_updates with no result. The deadlock_timeout parameter from Postgresql didnt change anything.

Help is very welcome.

Thanks & regards

Outcomes