ikopylov

Results 158 issues of ikopylov

Currently, there is no validation. That hides corruption errors.

enhancement

Currently, header checksum calculation calls serialization: https://github.com/qoollo/pearl/blob/master/src/record.rs#L240 We can improve the things by calculating the header checksum directly in `to_raw` function: in this function serialization can be called with `0`...

enhancement
performance

In the current implementation, `Blob::read_any` actually reads the last record and we strongly depend on this behavior. https://github.com/qoollo/pearl/blob/master/src/blob/core.rs#L255

enhancement

Lock taken too early. First, serialization should be performed and only after that the lock should be taken. https://github.com/qoollo/pearl/blob/master/src/blob/core.rs#L234 This will require `offset` patching, but should improve performance

enhancement
performance

Function uses `tokio::task::spawn_blocking` which reduce overall performance by ~20% https://github.com/qoollo/pearl/blob/master/src/blob/file.rs#L207

enhancement
performance

`Record:to_raw` is inefficient, because it creates multiple vectors. It should create single vector (ideally with preallocated capacity) and then serialize all data into that single vector. https://github.com/qoollo/pearl/blob/master/src/record.rs#L111

enhancement
performance

Currently, the whole data copied to the final vector here: https://github.com/qoollo/pearl/blob/master/src/record.rs#L116 This becomes a problem, when data is large (~1Gb). We can try to avoid this copy and pass data...

enhancement
performance

Currently, data being passed as a vector, which requires data to be clonned on Bob's side. Probably, we can receive data as a slice `&[u8]` https://github.com/qoollo/pearl/blob/master/src/storage/core.rs#L249

enhancement
performance