Re: Data loss problem when DefaultEntryLogger switch to DirectEntryLogger, then switch back to DefaultEntryLogger.

2023-07-30 Thread Yan Zhao
I am concerned about a possible scenario where a user tries to use DirectIO, runs it for a period of time, and experiences some problem on the bookie server side, but is unsure of the cause and suspects it may be related to DirectIO. As a result, the user disables DirectIO and restarts. In this

Re: Improve DefaultEntryLogger read performance

2023-07-30 Thread Enrico Olivelli
Il Dom 30 Lug 2023, 09:19 horizonzy ha scritto: > When reading data from an EntryLog file, we create a BufferedReadChannel. > In the size() method of BufferedReadChannel, FileChannelImpl.size() is > called, which is a time-consuming operation. > > If the EntryLog file has been archived, it is

Re: Data loss problem when DefaultEntryLogger switch to DirectEntryLogger, then switch back to DefaultEntryLogger.

2023-07-30 Thread Enrico Olivelli
I think that you should not do this kind of things. You should start a new bookie with the new configuration. It is not generally possible to guarantee compatibility between different implementations. I tend to close the case as 'won't fix' Enrico Il Dom 30 Lug 2023, 13:00 horizonzy ha

Data loss problem when DefaultEntryLogger switch to DirectEntryLogger, then switch back to DefaultEntryLogger.

2023-07-30 Thread horizonzy
Hi, the followers. I would need to talk about a serious matter. Especially, if you use DirectEntryLogger in a production environment. Switching from DefaultEntryLogger to DirectEntryLogger and switching back from DirectEntryLogger to DefaultEntryLogger may result in data loss. Here is the

Re: Improve DefaultEntryLogger read performance

2023-07-30 Thread Yan Zhao
The PR link: https://github.com/apache/bookkeeper/pull/4038

Improve DefaultEntryLogger read performance

2023-07-30 Thread horizonzy
When reading data from an EntryLog file, we create a BufferedReadChannel. In the size() method of BufferedReadChannel, FileChannelImpl.size() is called, which is a time-consuming operation. If the EntryLog file has been archived, it is unnecessary to call FileChannelImpl.size() every time we read