Roman Titov

Results 77 comments of Roman Titov

> We use [keep_alive_while_idle](https://docs.rs/tonic/latest/tonic/transport/channel/struct.Endpoint.html#method.keep_alive_while_idle) in our internal gRPC client. I wonder if we need to pair this with [http2_keepalive_interval](https://docs.rs/tonic/latest/tonic/transport/server/struct.Server.html#method.http2_keepalive_interval) in our server. As far as I can tell, `keep_alive_while_idle` is...

> I can see two leads for exploring the issue. > > 1. client keep alive is greater than server keep alive which creates stale connections > > 2. `detected...

> > I'll mention this once again, but AFAIK, we don't use gRPC/HTTP2 keep-alives _at all_. :/ > > Though we might not use it, we do have this though:...

Here's @timvisee results. I'll run some more tests now and publish my results as well. https://gist.github.com/timvisee/a775f9a0016f5410b46ce7fdbd1b253b

## Benchmark Results: | Load Strategy | Load Time | Read Time | First Response Time | | --------------------------- | ------------------- | ------------------- | ------------------- | | MADV_RANDOM (default) |...

@generall Ok, so, this PR (at 84fdd84 commit) implements: - the "preheat" [routine][preheat-routine] and ["worker"][preheat-worker] (currently unused) - [`Segment::preheat_disk_cache`] method - partially stubbed usage calls: - [after collection load on...

> * there's no way to schedule a preheat task with the [worker](https://github.com/qdrant/qdrant/pull/1912/files#diff-3b80245836e1d5f0b8e2bd5948e207bba413810b73ef16a4c3044f9f19a87877R51-R73) yet > > * because the worker is unused > * and the [_handle_](https://github.com/qdrant/qdrant/pull/1912/files#diff-3b80245836e1d5f0b8e2bd5948e207bba413810b73ef16a4c3044f9f19a87877R75-R92) have to be...

> _I don't like this soulution either, but at least it does not take 100 lines of stupid._ The perfect solution, IMO, would be to spend some time analyzing and...

@generall Cleaned up commit history (for ease of review) and rebased onto recent dev. - 82cf073 is a "simple" implementation, with a single global worker thread - 938375b is a...

> What if we only have a global lock, with no state in it, and share that to synchronize preloading segments. That should work as well. The only concern is...