Skip to content

时间序列引擎

ts_engine 部分定义了 Datalayers 中时间序列引擎的配置设置。根据用户资源与数据模型,合理的配合将获得更好的性能。

配置工作线程通道

  • worker_channel_size:
    该设置指定了时间序列引擎中每个工作线程的请求通道大小。较大的通道大小允许更多的请求在处理之前被排队,这有助于在高负载下优化性能。
    • 默认值128

配置最大允许使用的内存

  • max_memory_used_size:
    配置 Datalayers 允许使用的最大内存,默认情况下为系统内存的 80%,当达到该阈值时会触发系统背压、内存数据落盘等行为。
    • 默认值: 系统内存的 80%

Schemaless写入配置

schemaless 部分控制 Datalayers 在写入没有预定义模式的数据时的行为。此配置在需要灵活的模式管理的环境中尤其有用。

配置自动表修改

  • auto_alter_table:
    该设置决定了 Datalayers 是否允许在写入无模式数据时自动修改表的模式。
    • true:允许自动修改表模式,这意味着系统会在摄取具有不同结构的新数据时动态调整模式。
    • false:禁用自动表修改,如果新数据与现有模式不匹配,则需要手动修改模式。
    • 默认值false

注:在生产环境中建议关闭该选项。

配置退出时刷新 Memtable

  • flush_on_exit:
    该设置控制时间序列引擎在系统或工作线程退出时是否将内存中的数据结构(memtables)flush 到持久化的存储中。
    • true:在退出时将 memtable 内容刷新到持久存储中,待数据全部落盘后服务才会退出。优点:Datalayers 重启时,不用将 WAL 中数据进行重放,实现快速启动; 缺点:退出时间较长(需将数据全部落盘)。
    • false:退出时内存中的数据不强制落盘。优点:Datalayers 可快速退出;缺点:重启时会将 WAL 中的数据重放到内存,重点时间较长。
    • 默认值true

写前日志(WAL)

ts_engine.wal 部分处理 WAL 组件的配置。

配置 WAL 类型

  • type:
    指定时间序列引擎使用的 WAL 类型。目前仅支持 "local" WAL,该类型将日志文件本地存储在服务器上。
    • 默认值"local"

控制 WAL 操作

  • disable:
    是否启用 WAL。

    • true:禁用 WAL。
    • false:启用 WAL。
    • 默认值false,生产环境中建议设置为 false
  • skip_replay:
    决定在系统启动时是否跳过 wal 重放过程。

    • true:跳过 WAL 重放,仅适用用于开发环境加速系统重启使用。副使用:未重放的 WAL 数据将不能被查询与持久化。
    • false:执行 WAL 重放,将系统恢复到最后一致的状态。
    • 默认值false,生产环境中建议为 false,如设置为 true,在系统重启时会导致数据未被重放,从而表现为数据丢失。

配置 WAL 存储

  • path:
    定义 WAL 文件存储的目录。
    • 默认值"/var/lib/datalayers/wal"

WAL 刷新和文件管理

  • flush_interval:
    指定将缓存的 WAL 条目刷新到持久存储的固定时间间隔。

    • 0:每次写操作后立即刷新。
    • 默认值"0s"。此设置仅适用于使用 "local" WAL 类型时。
    该项配置暂未实现
  • max_file_size:
    限制单个 WAL 文件的大小。当文件超过此大小时,将创建新的 WAL 文件。

    • 默认值64MB。此设置仅在 WAL 类型为 "local" 时使用。