diff --git a/pkg/kv/kvserver/replica_proposal.go b/pkg/kv/kvserver/replica_proposal.go index 54e69492aa7..9bc59a9bd59 100644 --- a/pkg/kv/kvserver/replica_proposal.go +++ b/pkg/kv/kvserver/replica_proposal.go @@ -251,7 +251,7 @@ func (proposal *ProposalData) recordProposalToLocalApplicationLatency() { } if ts := proposal.createdAtTs; !ts.IsZero() { // Read-only commands have a zero replicatingSince timestamp. - proposal.ec.repl.recordProposalToLocalApplicationLatency(timeutil.Since(ts)) + proposal.ec.repl.recordProposalToLocalApplicationLatency(proposal.ec.repl.Clock().PhysicalTime().Sub(ts)) } } diff --git a/pkg/kv/kvserver/replica_proposal_buf.go b/pkg/kv/kvserver/replica_proposal_buf.go index 6407d0d5d09..5fd58e558d2 100644 --- a/pkg/kv/kvserver/replica_proposal_buf.go +++ b/pkg/kv/kvserver/replica_proposal_buf.go @@ -30,7 +30,6 @@ import ( "github.com/cockroachdb/cockroach/pkg/util/hlc" "github.com/cockroachdb/cockroach/pkg/util/log" "github.com/cockroachdb/cockroach/pkg/util/protoutil" - "github.com/cockroachdb/cockroach/pkg/util/timeutil" "github.com/cockroachdb/errors" ) @@ -143,6 +142,7 @@ type proposer interface { enqueueUpdateCheck() closedTimestampTarget() hlc.Timestamp shouldCampaignOnRedirect(raftGroup proposerRaft, leaseType roachpb.LeaseType) bool + physicalTime() time.Time // The following require the proposer to hold an exclusive lock. withGroupLocked(func(proposerRaft) error) error @@ -1224,7 +1224,7 @@ func (rp *replicaProposer) registerProposalLocked(p *ProposalData) { p.createdAtTicks = rp.mu.ticks } if p.createdAtTs.IsZero() { - p.createdAtTs = timeutil.Now() + p.createdAtTs = rp.physicalTime() } rp.mu.lastProposalAtTicks = rp.mu.ticks // monotonically increasing if prev := rp.mu.proposals[p.idKey]; prev != nil && prev != p { @@ -1237,6 +1237,10 @@ func (rp *replicaProposer) registerProposalLocked(p *ProposalData) { rp.mu.proposals[p.idKey] = p } +func (rp *replicaProposer) physicalTime() time.Time { + return (*Replica)(rp).Clock().PhysicalTime() +} + func (rp *replicaProposer) shouldCampaignOnRedirect( raftGroup proposerRaft, leaseType roachpb.LeaseType, ) bool {