Merged from devel (#3003)
Currently the LOG server process (osaflogd) is single threaded. This means that if this single thread is hanging in a write() system call, it cannot answer to AMF health checks or LOG client requests for initialize, open etc.
With a single thread, the AMF healthcheck timeout takes the meaning of supervising the file system itself. That should not be the responsibility of the LOG service.
There are two (or more?) alternatives:
1) create one thread per stream. This stream should be responsible for all file system operation of one stream. The main thread will
2) using async io (man 7 aio) keeping a single thread
the advantage of 1) is that makes it rather easy to have flow control per stream by means of a size limited mailbox per stream.
not sure how the same could be achieved with aio.
After this change, AMF healthchecks, initialize and stream open/close should "never" be blocked like it can be today.
NOTE: This ticket also fix [#124] that can be closed when this ticket is closed
Tickets: #124
Tickets: #442
Tickets: #536
Tickets: #578
Tickets: #9
Changed 2 months ago by elunlen
See also #2789
Changed 3 weeks ago by elunlen
status changed from new to accepted
A new development repository for this function is created.
The following command can be used to create a clone:
hg clone ssh://elunlen@hg.code.sf.net/u/elunlen/opensaf_Log u-elunlen-opensaf_Log
For more information about the enhancement and development progress see the README_LOGENH file in the top directory.
Note: Trace for log service is on and there is a larger set of test cases for the log service than in the original test set.
Development repository updated.
Diff:
Diff:
changeset: 4520:cae7a7c37cb9
tag: tip
user: Lennart Lund lennart.lund@ericsson.com
date: Thu Sep 26 14:36:59 2013 +0200
summary: logsv: Remove last written log record if write has timed out. [#9]
rev: cae7a7c37cb9a540f40b3089d76b71227e560378
changeset: 4519:ed0be59e6cd9
user: Lennart Lund lennart.lund@ericsson.com
date: Thu Sep 26 14:36:59 2013 +0200
summary: logsv: Update saflogger to handle SA_AIS_ERR_TIMEOUT [#9]
rev: ed0be59e6cd9176eacf4577808a9c4a02dfe7155
changeset: 4518:d0d87797475e
user: Lennart Lund lennart.lund@ericsson.com
date: Thu Sep 26 14:36:59 2013 +0200
summary: logsv: Backout thread recovery handling [#9]
rev: d0d87797475e52614c4d8e4a47bf7b454213a8ce
changeset: 4517:c29dc52fb24a
user: Lennart Lund lennart.lund@ericsson.com
date: Thu Sep 26 14:36:59 2013 +0200
summary: logsv: Fix error in lgs_make_reldir_h() [#9]
rev: c29dc52fb24a58077a7bb5c3492f03b815eda2a3
changeset: 4516:b2aa1410305c
user: Lennart Lund lennart.lund@ericsson.com
date: Thu Sep 26 14:36:59 2013 +0200
summary: logsv: Make hang timeout configurable [#9]
rev: b2aa1410305cb9a1b1ac39443856737ab4a6f23b
changeset: 4515:a96e7bbf9a2a
user: Lennart Lund lennart.lund@ericsson.com
date: Thu Sep 26 14:36:19 2013 +0200
summary: logsv: Several different improvements e.g data handling between threads [#9]
rev: a96e7bbf9a2a33e3df166134733849600f0c49ee
changeset: 4514:e8389e6c18f2
user: Lennart Lund lennart.lund@ericsson.com
date: Thu Sep 26 14:33:29 2013 +0200
summary: logsv: Fix remarks and defects. Update README. Clean up TRACE and LOG [#9]
rev: e8389e6c18f2cb8803805e1d0692e03c994c1542
changeset: 4513:aecd108782fc
user: Lennart Lund lennart.lund@ericsson.com
date: Thu Sep 26 14:29:07 2013 +0200
summary: logsv: Add new thread and run all file handling in this thread [#9]
rev: aecd108782fc4afca6bbcbe22cfa5268e03526cd
Related
Tickets:
#9