了解 Essbase 中的事务处理语义

当多维数据集处于读/写模式时,Essbase 将向服务器发出的每个更新请求(例如数据加载、计算或计算脚本中的语句)都视为一个事务处理。

每个事务处理都有当前状态:活动、已提交或已中止。提交数据时,将从服务器内存提取这些数据并将其写入磁盘上的多维数据集。

多维数据集检查器设置的“事务处理”选项卡中的“提交块”/“提交行”选项指示 Essbase 提交数据块或行的频率。

Essbase 允许事务处理按块持有读/写锁;Essbase 会在块更新后释放块,但在事务处理完成后或达到设置的限制(“同步点”)后才会提交块。

可通过指定以下同步点参数来控制 Essbase 何时执行明确的提交操作:


Essbase Web 界面中多维数据集检查器 >“设置”>“事务处理”选项卡中的“未提交的访问”选项的图像。

  • 提交块(同步点出现之前修改的块数)。Essbase 在达到指定的块数后进行提交。此频率可以在计算期间动态调整。

    如果将“提交块”设置为 0,则同步点出现在事务处理结束时。

  • 提交行(同步点出现之前要加载的行数)。默认值为 0,这意味着同步点出现在数据加载结束时。

如果“提交块”或“提交行”具有非零值,则同步点出现在达到第一个阈值时。例如,如果“提交块”为 10,“提交行”为 0,并且您加载了数据,则同步点出现在更新了 10 个块后。如果“提交块”为 5,“提交行”为 5,并且您加载了数据,则同步点出现在加载了 5 行或更新了 5 个块后(以先发生的情况为准)。

如果 Essbase 服务器在 Oracle Exalytics In-Memory Machine 上运行,则“未提交的访问”设置不适用。提交在命令或请求结束时执行。您对“提交块”或“提交行”设置所做的更改都会被忽略。

如果 Essbase Server 在 Windows 独立部署上运行,则“提交块”默认设置为 3000。

如果在操作期间超过用户定义的阈值,则 Essbase 将创建同步点以提交截至该点处理的数据。Essbase 会创建完成操作所需数量的同步点。

Essbase 在分析使用并行计算的可行性期间,会分析“提交块”和“提交行”的值。如果 Essbase 发现设置的值太低,则会自动增大它们。

Essbase 会保留冗余数据以强制实施事务处理语义。请将磁盘空间留为数据库大小的两倍以容纳冗余数据,尤其是在“提交块”和“提交行”都设置为 0 时。

要设置提交块和提交行,请执行以下操作:
  1. 导航到 Essbase Web 界面中的事务处理
    Redwood 界面中:
    1. 在“应用程序”页上,依次打开应用程序和数据库(多维数据集)。
    2. 依次单击定制设置事务处理
    经典 Web 界面中:
    1. 应用程序页上,展开应用程序。
    2. 从多维数据集名称右侧的操作菜单中,依次单击设置事务处理
  2. 进行选择,然后单击保存