This repository has been archived by the owner on Mar 11, 2020. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Why we need transaction in containerd:
When docker send grpc messages to containerd, it always forward to exec runc to do something.
And then send back a event to docker.
But if the containerd was killed or crashed after receving grpc message, before sending back the events.
These is no way to recover it. This may cause the data of container not the same between docker and containerd.
How to implement:
We add a transaction mechanism:
This will return a Transaction interface, When we open a transaction, will write the transaction data into disk by sync mode.
when the event was sent to docker, the transaction will be closed (removing from disk and memory).
Signed-off-by: Wentao Zhang zhangwentao234@huawei.com