Skip to content

[4pt] Investigate merger/key_def embedding into current implementation #33

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
olegrok opened this issue Oct 2, 2020 · 4 comments · Fixed by #38
Closed

[4pt] Investigate merger/key_def embedding into current implementation #33

olegrok opened this issue Oct 2, 2020 · 4 comments · Fixed by #38
Assignees

Comments

@olegrok
Copy link
Contributor

olegrok commented Oct 2, 2020

Write test branch for 2.4+ Tarantool versions until tarantool/tarantool#5273 and tarantool/tarantool#5384 are not implemented

@olegrok
Copy link
Contributor Author

olegrok commented Oct 2, 2020

olegrok added a commit that referenced this issue Oct 2, 2020
olegrok added a commit that referenced this issue Oct 2, 2020
olegrok added a commit that referenced this issue Oct 3, 2020
olegrok added a commit that referenced this issue Oct 5, 2020
olegrok added a commit that referenced this issue Oct 6, 2020
olegrok added a commit that referenced this issue Oct 6, 2020
olegrok added a commit that referenced this issue Oct 6, 2020
@Totktonada
Copy link
Member

I would be interested in performance testing results.

A measurement may be more close to a real life if we would imitate a delay between a router and a storage:

tc qdisc add dev lo root handle 1:0 netem delay 500msec  # 1ms rtt
tc qdisc del dev lo root  # clean up

However microbenchmark is interesting too.

@olegrok
Copy link
Contributor Author

olegrok commented Oct 8, 2020

I have simple benchmark - https://github.com/tarantool/crud/tree/perf-test

But at first glance I see some slowdown after merger integration (introduced here #38).
Seems we need to cache key_def instances (Currently this optimization is switched off). Currently we have implementation that passes our tests but further investigation is required to estimate and solve performance problems.

olegrok added a commit that referenced this issue Oct 19, 2020
olegrok added a commit that referenced this issue Oct 26, 2020
olegrok added a commit that referenced this issue Oct 30, 2020
olegrok added a commit that referenced this issue Oct 30, 2020
olegrok added a commit that referenced this issue Oct 30, 2020
olegrok added a commit that referenced this issue Oct 30, 2020
olegrok added a commit that referenced this issue Oct 30, 2020
Before this patch we used hand-crafted heap to sort tuples on
router. This patch removes it and changes to "merger" module
written in C.

"Merger" is available since Tarantool 2.2. Later "tuple-merger"
was introduced it's a version that is compatible with some
Tarantool 1.10 versions. In fact support several Tarantool
versions is quite complex task. Some msgpack helpers is not
avaliable in Tarantool 1.10 to solve this problem small
compatibility lawer is implemented.
Also "tuple-keydef" doesn't support collation_id options and it's
not so for built-in "key_def" module. We need to normalize index
parts and change "collation_id" to "collation" when create
"key_def" instance.

Closes #33
olegrok added a commit that referenced this issue Nov 2, 2020
Before this patch we used hand-crafted heap to sort tuples on
router. This patch removes it and changes to "merger" module
written in C.

"Merger" is available since Tarantool 2.2. Later "tuple-merger"
was introduced it's a version that is compatible with some
Tarantool 1.10 versions. In fact support several Tarantool
versions is quite complex task. Some msgpack helpers is not
avaliable in Tarantool 1.10 to solve this problem small
compatibility lawer is implemented.
Also "tuple-keydef" doesn't support collation_id options and it's
not so for built-in "key_def" module. We need to normalize index
parts and change "collation_id" to "collation" when create
"key_def" instance.

Closes #33
@olegrok
Copy link
Contributor Author

olegrok commented Nov 11, 2020

I would be interested in performance testing results.

Here is my modest benchmarks - #38 (comment)

olegrok added a commit that referenced this issue Nov 11, 2020
Before this patch we used hand-crafted heap to sort tuples on
router. This patch removes it and changes to "merger" module
written in C.

"Merger" is available since Tarantool 2.2. Later "tuple-merger"
was introduced it's a version that is compatible with some
Tarantool 1.10 versions. In fact support several Tarantool
versions is quite complex task. Some msgpack helpers is not
avaliable in Tarantool 1.10 to solve this problem small
compatibility lawer is implemented.
Also "tuple-keydef" doesn't support collation_id options and it's
not so for built-in "key_def" module. We need to normalize index
parts and change "collation_id" to "collation" when create
"key_def" instance.

Closes #33
olegrok added a commit that referenced this issue Nov 13, 2020
Issue automagically resolved after #33.

Closes #82
olegrok added a commit that referenced this issue Nov 13, 2020
Issue automagically resolved after #33.

Closes #74
olegrok added a commit that referenced this issue Nov 25, 2020
Issue automagically resolved after #33.

Closes #82
olegrok added a commit that referenced this issue Nov 25, 2020
Issue automagically resolved after #33.

Closes #73
olegrok added a commit that referenced this issue Nov 25, 2020
Issue automagically resolved after #33.

Closes #73
olegrok added a commit that referenced this issue Nov 25, 2020
Issue automagically resolved after #33.

Closes #82
olegrok added a commit that referenced this issue Nov 25, 2020
Issue automagically resolved after #33.

Closes #73
olegrok added a commit that referenced this issue Nov 25, 2020
Before this patch we used hand-crafted heap to sort tuples on
router. This patch removes it and changes to "merger" module
written in C.

"Merger" is available since Tarantool 2.2. Later "tuple-merger"
was introduced it's a version that is compatible with some
Tarantool 1.10 versions. In fact support several Tarantool
versions is quite complex task. Some msgpack helpers is not
avaliable in Tarantool 1.10 to solve this problem small
compatibility lawer is implemented.
Also "tuple-keydef" doesn't support collation_id options and it's
not so for built-in "key_def" module. We need to normalize index
parts and change "collation_id" to "collation" when create
"key_def" instance.

Co-authored-by: Elizaveta Dokshina <[email protected]>

Closes #33
olegrok added a commit that referenced this issue Nov 25, 2020
Before this patch we used hand-crafted heap to sort tuples on
router. This patch removes it and changes to "merger" module
written in C.

"Merger" is available since Tarantool 2.2. Later "tuple-merger"
was introduced it's a version that is compatible with some
Tarantool 1.10 versions. In fact support several Tarantool
versions is quite complex task. Some msgpack helpers is not
avaliable in Tarantool 1.10 to solve this problem small
compatibility lawer is implemented.
Also "tuple-keydef" doesn't support collation_id options and it's
not so for built-in "key_def" module. We need to normalize index
parts and change "collation_id" to "collation" when create
"key_def" instance.

Closes #33

Co-authored-by: Elizaveta Dokshina <[email protected]>
olegrok added a commit that referenced this issue Nov 25, 2020
Before this patch we used hand-crafted heap to sort tuples on
router. This patch removes it and changes to "merger" module
written in C.

"Merger" is available since Tarantool 2.2. Later "tuple-merger"
was introduced it's a version that is compatible with some
Tarantool 1.10 versions. In fact support several Tarantool
versions is quite complex task. Some msgpack helpers is not
avaliable in Tarantool 1.10 to solve this problem small
compatibility lawer is implemented.
Also "tuple-keydef" doesn't support collation_id options and it's
not so for built-in "key_def" module. We need to normalize index
parts and change "collation_id" to "collation" when create
"key_def" instance.

Closes #33

Co-authored-by: Elizaveta Dokshina <[email protected]>
olegrok added a commit that referenced this issue Dec 4, 2020
Before this patch we used hand-crafted heap to sort tuples on
router. This patch removes it and changes to "merger" module
written in C.

"Merger" is available since Tarantool 2.2. Later "tuple-merger"
was introduced it's a version that is compatible with some
Tarantool 1.10 versions. In fact support several Tarantool
versions is quite complex task. Some msgpack helpers is not
avaliable in Tarantool 1.10 to solve this problem small
compatibility lawer is implemented.
Also "tuple-keydef" doesn't support collation_id options and it's
not so for built-in "key_def" module. We need to normalize index
parts and change "collation_id" to "collation" when create
"key_def" instance.

Closes #33

Co-authored-by: Elizaveta Dokshina <[email protected]>
@dokshina dokshina changed the title Investigate merger/key_def embedding into current implementation [4pt] Investigate merger/key_def embedding into current implementation Jan 28, 2021
@dokshina dokshina assigned AnaNek and unassigned mRrvz Feb 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants