[Bugs] [Bug 1624358] New: Thin-arbiter reads do not rely on in-memory information.
bugzilla at redhat.com
bugzilla at redhat.com
Fri Aug 31 10:28:02 UTC 2018
https://bugzilla.redhat.com/show_bug.cgi?id=1624358
Bug ID: 1624358
Summary: Thin-arbiter reads do not rely on in-memory
information.
Product: GlusterFS
Version: mainline
Component: replicate
Assignee: bugs at gluster.org
Reporter: ravishankar at redhat.com
CC: bugs at gluster.org
Description of problem:
This is how TA reads work as of patch
https://review.gluster.org/#/c/glusterfs/+/20994/2 :
If both data bricks are up, read subvol will be based on read_subvols. If only
one data brick is up: - First qeury the data-brick that is up. If it blames the
other brick, allow the reads. - If if doesn't, query the TA to obtain the
source of truth.
However, we need to see if we can re-use AFR_TA_DOM_NOTIFY lock even for
read-txns so that once ta_bad_child_index is stored in-memory, we can reuse
that for subsequent reads until shd resets it after healing.
The rough changes to read-txn if any 1 data brick is down would be (subject to
discussion and acceptance):
0. If priv->bad_child_index is valid, goto 4
1. get afr xattrs of data=brick that is up.
2. If it contains pending xattrs, update priv->bad_child_index with that value
3. Otherwise:
{
TA LOCK (AFR_TA_DOM_NOTIFY)
TA LOCK (AFR_TA_DOM_MODIFY)
get afr xattr from TA.
update priv->bad_child_index if xattr present on TA
TA UNLOCK (AFR_TA_DOM_MODIFY)
If priv->bad_child_index is still AFR_CHILD_UNKNOWN
{TA UNLOCK (AFR_TA_DOM_NOTIFY) }
else retain AFR_TA_DOM_NOTIFY
}
4. Serve read depending on the data brick that is up is good or bad
While this is simple, some of the problems that need solving are
-what happens when multiple read requests come?
-what happens when reads/writes both come
We must ensure that from a given mount only one AFR_TA_DOM_NOTIFY lock is sent
to TA irrespective of the no. of reads and writes.
--
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.
More information about the Bugs
mailing list