Arkadiusz Firus created KAFKA-2997:
--------------------------------------

             Summary: Synchronous write to disk
                 Key: KAFKA-2997
                 URL: https://issues.apache.org/jira/browse/KAFKA-2997
             Project: Kafka
          Issue Type: Improvement
          Components: core
    Affects Versions: 0.9.0.0
            Reporter: Arkadiusz Firus
            Priority: Minor


Hi All,

I am currently work on a mechanism which allows to do an efficient synchronous 
writing to the file system. My idea is to gather few write requests for one 
partition and after that call the fsync.

As I read the code I find out that the best place to do it is to modify:
kafka.log.Log.append
method. Currently at the end of the method (line 368) there is a verification 
if the number of unflushed messages is greater than the flush interval 
(configuration parameter).

I am thinking of extending this condition. I want to add additional boolean 
configuration parameter (sync write or something like this). If this parameter 
is set to true at the end of this method the thread should hang on a lock. On 
the other hand there will be another timer thread (for every partition) which 
will be invoked every 10ms (configuration parameter). During invocation the 
thread will call flush method and after that will be releasing all hanged 
threads.

I am writing here because I would like to know your opinion about such 
approach. Do you think this one is good or maybe someone have a better (more 
permanent) one. I would also like to know if such approach is according to 
general Kafka architecture.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to