流式模型转换与遗传编程学习模型转换规则
流式模型转换
在流式模型转换中,存在一种可能产生不完整目标模型的机制,不过在某些场景下,这种局限性是可以接受的。
滑动窗口
使用领域特定语言(DSL)来指定滑动窗口,有基于时间(如 200 秒)和基于给定类型元素数量(如 1000 个元素)两种类型。滑动窗口以“先进先出”的方式工作,当窗口需要“移动”时,最早到达的元素会首先被丢弃。当一个源元素被丢弃时,所有引用它的其他数据结构也必须被丢弃,包括跟踪链接、期望具有该源元素跟踪链接的匹配所创建的延续,以及按键保存已流式传输对象的索引。在定义窗口时,需要考虑每种类型的预期数据量,例如在示例中,由于系统中的类数量有限,决定不丢弃类对象。
操作步骤如下:
1. 使用 DSL 定义滑动窗口类型(时间或元素数量)。
2. 根据预期数据量决定是否丢弃特定类型的对象。
二级存储的使用
为了确保所有绑定和代理都能被解析(前提是相应元素最终会被流式传输),可以使用模型存储库(如 Morsa)来存储全部或部分数据。但访问存储库可能会减慢转换执行速度,因此这种策略是否实用取决于流的速度,更适合在可以进行负载均衡的分布式场景中使用。为了优化,可以使用异步 I/O 访问二级存储,这种方法自然地适用于基于延续的调度算法,因为对存储库的访问可以在不同线程中调度,将规则执行存储到延续中,从而可以处理流中的其他元素。当存储库提供结果时,规则会无缝恢复执行。
操作步骤如下:
1. 选择合适的模型存储库(如 Morsa)。
2. 配置异步 I/O 访问存储库。
3. 在不同线程中调度对存储库的访
超级会员免费看
订阅专栏 解锁全文
3

被折叠的 条评论
为什么被折叠?



