我正在阅读一篇关于数据库管理如何工作的文章。在那篇文章中,作者提到一些现代数据库使用自己的线程而不是操作系统线程。 这是真的吗?如果是的话怎么可能?
答案 0 :(得分:0)
我认为没有必要完全替换操作系统线程,但数据库可以使用其他类似线程的线程'设施,如Fibers或异步调用。
例如,Microsoft SQL Server有一个名为SQL Server操作系统(SQLOS)的核心组件。 SQLOS负责数据库的低级操作,如调度或资源管理。
SQLOS推进核心操作系统线程管理,以最大限度地减少昂贵的上下文更改和昂贵的用户内核模式切换。它还使用协作调度而不是抢占式Windows调度程序。
数据库操作由 worker 线程之一执行,这些线程由调度程序之一管理。
无论如何,在非常低级别的SQLOS使用Windows线程就像任何其他应用程序一样,不同的是线程管理和调度。
有关自定义线程调度的更多信息,您可以查看Windows的用户模式调度(UMS)文档。