Hi,
That's true, but keep in mind that there is actually no "read" operation. It's memory, so pmemlog_walk() literally "walks" through the log, invoking the 'process_chunk' callback for each fixed-size chunk of data or for the entire log if 'chunksize' is 0.
So, it's not like reading the entire log from a file into some in-memory buffer (which could be problematic), but processing the log in place.
If you need to process variable sized logs, you have to implement your own 'process_chunk' function that would iterate through the variable-sized chunks by advancing the 'buf' pointer.
K.