#11483·better-auth

D1 适配器: `D1SqliteAdapter` 继承了 `supportsMultipleConnections = false`, 因此 kysely 在 Workers 孤岛上对请求共享的互斥锁后对每个查询进行序列化

作者: counsci创建于 2026年9月30日更新于 2026年9月30日

`@better-auth/kysely-adapter` (1.7.5, 仍存在于 1.7.6 中) 定义了 `class D1SqliteAdapter extends SqliteAdapter {}`, 因此 kysely 会构建一个 `ConnectionMutex`。当授权实例按隔离进行备忘录化(在 Workers 上通常采用这种模式)时,一个请求会等待由另一个请求创建的一个 Promise。一旦 V8 优化了等待代码,等待者可以在其自身的 I/O 上下文之外继续执行,而其下一个 D1 调用将抛出 `无法代表不同请求执行 I/O(I/O 类型:SpanParent)` 的错误。

内容来源: better-auth/better-auth