Observe the effect of lockless reads
To determine whether read locks are impacting performance (and the
extent to which enabling lockless reads has improved performance), you
can examine the server logs, or you can use the -Ztrack
flag
to output, for any given command, the lines that would be written to the
P4LOG
. For example, the
p4 -Zpeeking=1 -Ztrack sync
command produces output for 11 database tables. The relevant lines here are
those that refer to "locks read/write
".
...
--- db.counters
--- pages in+out+cached 3+0+2
--- locks read/write 1/0 rows get+pos+scan put+del 1+0+0 0+0
--- db.user
--- pages in+out+cached 3+0+2
--- locks read/write 1/0 rows get+pos+scan put+del 1+0+0 0+0
...
The 1
appearing in ("locks read/write 1/0
")
every table’s locking results shows one read lock taken per table. By
contrast, the diagnostic output from the
p4 -Zpeeking=2 -Ztrack sync
command
... --- db.counters --- pages in+out+cached 3+0+2 --- locks read/write 0/0 rows get+pos+scan put+del 1+0+0 0+0 ...
shows that the sync operation completed without any read or write locks
required on db.counters
.
When peeking is enabled, many commands show
fewer locks taken and perhaps read/write 0/0
locks taken.