ReturnType criticalPutResult = criticalPut(keyspaceName, tableName, primaryKey,
queryObject, lockReference, conditionInfo);
long criticalPutTime = System.currentTimeMillis();
- voluntaryReleaseLock(fullyQualifiedKey, lockReference);
+
+ int releaseTries = 0;
+ while (true) {
+ MusicLockState rs = voluntaryReleaseLock(fullyQualifiedKey, lockReference);
+ releaseTries++;
+ if (rs.getLockStatus() != MusicLockState.LockStatus.UNLOCKED) {
+ try {
+ Thread.sleep(Integer.min(100, (int) Math.pow(2, releaseTries - 1)));
+ } catch (InterruptedException e) {
+ }
+ } else
+ break;
+ }
+ if (releaseTries > 1) {
+ System.out.print((char) (Integer.min(releaseTries, 9) + 78));
+ }
+
long lockDeleteTime = System.currentTimeMillis();
String timingInfo = "|lock creation time:" + (lockCreationTime - start)
+ "|lock accquire time:" + (lockAcqTime - lockCreationTime)