reddycharan commented on a change in pull request #1281: Issue #570: Introducing EntryLogManager. URL: https://github.com/apache/bookkeeper/pull/1281#discussion_r176638435
########## File path: bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/EntryLogger.java ########## @@ -802,88 +864,207 @@ private long readLastLogId(File f) { } } + interface EntryLogManager { + /* + * acquire lock for this ledger. + */ + void acquireLock(Long ledgerId); + + /* + * acquire lock for this ledger if it is not already available for this + * ledger then it will create a new one and then acquire lock. + */ + void acquireLockByCreatingIfRequired(Long ledgerId); + + /* + * release lock for this ledger + */ + void releaseLock(Long ledgerId); + + /* + * sets the logChannel for the given ledgerId. The previous one will be + * removed from replicaOfCurrentLogChannels. Previous logChannel will be + * added to rotatedLogChannels. + */ + void setCurrentLogForLedger(Long ledgerId, BufferedLogChannel logChannel); Review comment: With my changes in this sub-task and subsequent sub-tasks I would like to abstract out the code/logic pertaining to singleentrylog/entrylogperledger and move it to the implementations of EntryLogManager, but leave the rest of the code as it is. With that reasoning, these methods in EntryLogManager and variables need to be exposed and EntryLogger class has to work with these methods. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services