# Scheduler latch 等待

+ TiKV-Details --> Scheduler - commit
![center](./student-guide/diagram/place-holder.png)

![center](./student-guide/diagram/place-holder.png)

![center](./student-guide/diagram/place-holder.png)

------------------------------------------------------------
  - Scheduler latch 等待
写请求到达 Scheduler 之后会尝试获取所需要的 latch，如果暂时获取不到所需要的 latch，则会出现等待。latch 排队任务也会占用 pending write bytes ，有可能导致没有 key 冲突的其他新任务出现 server is busy 现象。最终出现 Server is busy 的报错。于此同时，集群会出现 scheduler  latch wait duration 耗时较高的现象。
如果我们的事务模型为悲观事务，那么因为对事务的目标 key 增加了悲观锁，所以理论上不会出现上述情况。但是，悲观事务并不适用于隐式事务，即 autocommit 形式提交的事务。
通常情况下，当集群中出现大量的写冲突时，与前端的业务有极大的相关性。这说明前端业务在高并发的修改同一个 key，并且此时会伴随 scheduler latch wait duration ，以及某一个 Store 的 scheduler command pending 升高的现象。在极端情况下会出现，latch 等待队列过长，达到 sched_pending_write_threshold 阈值的情况，如下图：
