https://github.com/voldemort/voldemort
Revision d7d7349de8628cef491848c21a40fee1100c6639 authored by ARUNACHALAM THIRUPATHI on 20 August 2014, 06:35:14 UTC, committed by Arunachalam Thirupathi on 27 August 2014, 02:41:21 UTC
Problems:
1) Exception handling of delete is very different at 4 places ( on
normal response, required failure, quorum failure) and after pipeline is
finished.
2) The exceptions are reported again and again ( They are not removed
from the map).
3) Some places ignore obsoleteVersionException, some others report it.
4) There is a zombie state abort, there is no way to reach this state.
5) Multiple slops could be sent, because of the issue 2. When the
pipeline is aborted, no slops could be sent.
6) Refactored QuotaLimitingStore test to add delete test cases
7) Combined the PUT and GET quotas into 2 quotas.

Solution:
Defined a common method, so that all 4 places call into the same method.
Only the condition for calling is different. Race conditions still
exist, after zone failure check but before pipeline finishes the
exception will go missing, slops will not happen, but the chances are
reduced.
Got rid of the state PerformDeletedHintHandoff as
QuotaExceededExceptions will not be reported as failures. Now doing it
in place.
1 parent 58ab1dc
History
Tip revision: d7d7349de8628cef491848c21a40fee1100c6639 authored by ARUNACHALAM THIRUPATHI on 20 August 2014, 06:35:14 UTC
Slop for delete operations
Tip revision: d7d7349
File Mode Size
.settings
bin
clients
config
contrib
docs
example
gradle
private-lib
public-lib
src
test
voldemort-contrib
.gitignore -rw-r--r-- 242 bytes
CONTRIBUTORS -rw-r--r-- 659 bytes
LICENSE -rw-r--r-- 11.1 KB
NOTES -rw-r--r-- 2.5 KB
NOTICE -rw-r--r-- 8.1 KB
README.md -rw-r--r-- 4.5 KB
build.gradle -rw-r--r-- 18.8 KB
build.xml -rw-r--r-- 22.1 KB
gradle.properties -rw-r--r-- 1.2 KB
gradlew -rwxr-xr-x 5.0 KB
gradlew.bat -rw-r--r-- 2.3 KB
release_notes.txt -rw-r--r-- 37.0 KB
settings.gradle -rw-r--r-- 149 bytes
tomcat-tasks.properties -rw-r--r-- 420 bytes
web.xml -rw-r--r-- 1.1 KB

README.md

back to top