Repository navigation
Dirty memory: connect wbm to global delay - #423
Conversation
034ad23 to
1d36877
Compare
c6b29bc to
743a3d9
Compare
|
@udi-speedb , ready for review. |
743a3d9 to
2bfe7b9
Compare
|
@Yuval-Ariel I have submitted an initial set of comments. I really think the interface of the write controller is needlessly complex and inelegant because it is defined in terms of a db id + cf id. |
|
i've addressed your concerns. plz rereview |
|
@Yuval-Ariel Please do not push a new commit to this PR / branch with updates yet. |
|
Just thought of a potential issue to use pointers for client id-s of the WC. Since memory allocators may reuse released memory, you may have a race in which the memory of a deregistering client is released and immediately allocated to a new entity that registers with the WC. For example, a deleted CF and a newly created CF (could be deleted in one DB and created in another). |
|
@Yuval-Ariel Another batch of comment. Again, Please do not push a new commit yet. Thanks |
|
I suggest adding a start_delay_percent flag to db_bench to be used when initializing the WBM. |
|
@Yuval-Ariel A few more minor comments. I am not done yet. |
|
@udi-speedb , this is waiting for your review |
|
@Yuval-Ariel - Indeed. Will resume the review soon, once the bulk of the log parser work is over. |
|
@Yuval-Ariel Another batch of comments. I apologize but I still have code in this pr to review. |
|
@Yuval-Ariel - Please push whatever updates you have in a new commit. Thanks |
|
@yuval - I have submitted my last comments. |
|
@Yuval-Ariel perf tests were done on the #114 issue. |
|
no difference. no need to rerun them |
ba6a3de to
998751b
Compare
|
i've rebased to rsolve conflicts and added to the HISTORY. plz recheck @udi-speedb |
|
merged main to resolve conflicts |
…549) During #423 , the WriteBufferManager ctor parameter allow_stall was renamed to allow_delays_and_stalls to reflect its new capabilities (delaying in addition to stalling (stopping) writes). This creates confusion and unwanted behavior so this PR reverts this change and the new functionality of #423 is controller via the old WriteBufferManager ctor parameter named allow_stall. This commit also sets back the allow_stall default value to false to avoid changing current expected behavior.
Allow slowing down writes based on memory consumption by having the WBM raise a delay requirement in the WriteController. The delay requirement is stored in the WC as part of the Global Delay feature (#346). The same way a CF signals the WC that it has a delay requirement.
…549) During #423 , the WriteBufferManager ctor parameter allow_stall was renamed to allow_delays_and_stalls to reflect its new capabilities (delaying in addition to stalling (stopping) writes). This creates confusion and unwanted behavior so this PR reverts this change and the new functionality of #423 is controller via the old WriteBufferManager ctor parameter named allow_stall. This commit also sets back the allow_stall default value to false to avoid changing current expected behavior.
Allow slowing down writes based on memory consumption by having the WBM raise a delay requirement in the WriteController. The delay requirement is stored in the WC as part of the Global Delay feature (#346). The same way a CF signals the WC that it has a delay requirement.
…549) During #423 , the WriteBufferManager ctor parameter allow_stall was renamed to allow_delays_and_stalls to reflect its new capabilities (delaying in addition to stalling (stopping) writes). This creates confusion and unwanted behavior so this PR reverts this change and the new functionality of #423 is controller via the old WriteBufferManager ctor parameter named allow_stall. This commit also sets back the allow_stall default value to false to avoid changing current expected behavior.
closes #114