用户定义的虚拟处理器

用户定义的虚拟处理器类可保护数据库服务器免遭行为不良的用户定义例程的破坏。行为不良的用户定义的例程至少有以下特征之一:
  • 不会为其他线程让出控制权
  • 进行分块操作系统调用
  • 修改全局 VP 状态
行为良好的 C 语言 UDR 不具有这些特征。 仅在 CPU VP 中运行行为良好的 C 语言 UDR。
警告: 在 CPU VP 中执行行为不良的例程会导致对数据库服务器操作的严重干扰,并且可能导致其失败或行为反常。此外,例程本身可能不会产生正确的结果。
要确保安全执行,将任何行为不良的用户定义的例程指定给用户定义的虚拟处理器类。 用户定义的 VP 除去 CPU VP 类上的以下编程限制:
  • 需要定期让出处理器
  • 需要终止阻塞 I/O 调用

在用户定义的虚拟处理器类中运行的函数无需让出处理器,并且它们可能发出直接的文件系统调用,用于阻止虚拟处理器的进一步处理,直到 I/O 完成。

用户查询的正常处理不受 C 语言 UDR 不良行为的影响,因为这些 UDR 不在 CPU 虚拟处理器中执行。有关行为不良的例程的更多详细说明,请参阅 GBase 8s DataBlade API 程序员指南