最近我在阅读 FoundationDB 中层的概念。我喜欢他们的想法,从一侧分解存储并从另一侧访问它。
关于层的实现有一些不清楚的地方。尤其是它们与存储引擎的通信方式。有两种可能的答案:它们是服务器节点的一部分,通过快速的本地 API 调用(例如,作为托管在服务器进程中的链接模块)与存储进行通信 - 或者 - 托管在客户端应用程序内部并通过网络协议进行通信。例如,许多 RDBMS 的 SQL 层托管在服务器上。FoundationDB 的情况如何?
PS:这两种情况从性能上看是不一样的,尤其是client-server通信是高延迟的时候。