Jiang Zhe

Results 11 comments of Jiang Zhe

I think the cache layer is similar to the concept of buffer pool in tranditional database perspective. The technique to build a buffer pool can be used here, too: acquire,...

> Exactly! Block cache in LSM systems is the same as buffer pool. But it's hard to implement the buffer pool in Rust using the same way as cpp (like...

I think `PageResp` is actually anonying, and could be removed. We can make `fetch_page` method async, await inside it, and change the return type to `Result`, which is more convenient...

Is there a link to the benchmark code? It looks like overhead is too large that the number of operations does not count much in total timing, which is abnormal.

Tried below benchmark. ```rust use risinglight::executor::evaluator; let a1: I32Array = (0..4096).collect(); let a2: I32Array = (0..4096).collect(); let p1: Vec = (0..4096).collect(); let p2: Vec = (0..4096).collect(); c.bench_function("array_mul", |b| b.iter(|| {...

1. uint8 is used to store offsets of descriminative bits, this leads to the hard limit of 255 key length. If you change it to a large type, you may...

ConcatIterator实现中borrow check报错似乎用pattern match解构一下可以解决,见下面的代码。 如果是在stable Rust中不使用Box::pin实现async,是不是只能手动实现Future了? 但是状态维护以及和其他async代码整合确实是大问题... ```rust struct ConcatIterator{ iters: Vec, idx: usize, } impl ConcatIterator { fn new(iters: Vec) -> Self { ConcatIterator{iters, idx: 0} } } impl Future...

Currently using [dot](https://crates.io/crates/dot) to generate the dot file on the fly is already sufficient. Introducing a full featured graph library may be too heavy.

I guess you can `import org.singlespaced.d3js.Ops._` which contains many implicit convertions. If no suitable one, you may need write you own.