From 3bc419d8014877f64e57dc3368b0609396ec0d12 Mon Sep 17 00:00:00 2001 From: Poornima G Date: Sun, 5 Jun 2016 00:06:11 -0400 Subject: protocol: Add framework to send transaction id with recall Issue: The upcall(cache invalidation/recall) event is sent from the bricks to clients. In AFR/EC setup, it can so happen that all the bricks will send the upcall for the same event, and if AFR/EC doesn't filter out these duplicate notifications, the logic above cluster xlators can fail. Solution: Use transaction id to filter out duplicate notifications. This patch adds framework for duplicate notifications. AFR/EC can build up on this patch for deduping the notifications Change-Id: I66b08e63b8799bc5932f2b2545376138a5701168 BUG: 1319992 Signed-off-by: Poornima G Reviewed-on: http://review.gluster.org/14647 Smoke: Gluster Build System NetBSD-regression: NetBSD Build System CentOS-regression: Gluster Build System Reviewed-by: Raghavendra Talur Reviewed-by: Raghavendra G --- libglusterfs/src/upcall-utils.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'libglusterfs/src/upcall-utils.h') diff --git a/libglusterfs/src/upcall-utils.h b/libglusterfs/src/upcall-utils.h index 33db4b273a1..f4b15e3507c 100644 --- a/libglusterfs/src/upcall-utils.h +++ b/libglusterfs/src/upcall-utils.h @@ -78,8 +78,10 @@ struct gf_upcall_cache_invalidation { }; struct gf_upcall_recall_lease { - uint32_t lease_type; - /* TODO: Add the lease type it can be downgraded to */ + uint32_t lease_type; /* Lease type to which client can downgrade to*/ + uuid_t tid; /* transaction id of the fop that caused + the recall */ + dict_t *dict; }; #endif /* _UPCALL_UTILS_H */ -- cgit