#性能

0 关注者 · 48 帖子

性能标签组用于发布有关软件性能问题以及解决和监视性能问题的最佳实践的文章。

文章 John Pan · 6 分鐘 前 6m read

Health Connect 中的高性能消息搜索

问题

您是否曾在繁忙的界面中尝试使用“消息查看器”进行搜索,却因查询超时而失败?随着数据量的增加,这可能会成为一个相当严重的问题。举个例子,我正在处理的 Health Connect 实例每天处理约 1.55 亿条消息头,且消息保留期为 21 天。 为提升搜索性能,我们扩展了内置的 SearchTable,添加了常用字段,希望通过为这些字段建立索引来加快查询速度。尽管如此,某些查询仍然无法完成。

更多信息:定义搜索表类。

image

对于我们这些从事 HL7 集成工作的人员来说,我们深知日常的故障排查和问题响应是我们工作的重要组成部分。 快速识别并解决这些问题,对于确保数据流的稳定和准确至关重要。由于搜索性能不佳,我们不得不针对每个具体问题收集非常详细的信息,才能在 Health Connect 中找到相关示例。 如果没有非常严格的时间限制(几分钟内),我们往往无法在超时之前让“消息查看器”搜索返回任何结果。这导致在确定实际问题以及后续解决问题方面都出现了显著延迟。

解决方案

这种情况是不可接受的,因此我们必须找到解决方案,以更好地服务客户。WRC应运而生。

我们提交了一份工单,我很高兴地报告,已经找到了修复方案。该方案需要遍历我们自定义的 SearchTable 字段,并识别出哪些字段的唯一性不足,因此不应被“消息查看器”搜索功能作为索引处理。

0
0 1
文章 John Pan · 十一月 2 2m read

许多数据库用户需要了解现代端点防护平台(例如 Palo Alto Cortex XDR 和 CrowdStrike Falcon)对其数据平台性能的影响。 本文所引用的研究(链接见下文)展示了在 RHEL 9.5 和 Ubuntu 24.04 版 Linux 操作系统上运行的 InterSystems IRIS 数据库,在采用这些终端防护平台时的测试结果。 该研究使用了这两款安全产品的正式版,并测量了多种数据库工作负载,包括 ObjectScript 执行、日志记录、进程创建、并发以及低级系统同步。结果表明,核心数据库操作基本未受端点防护的影响,性能差异通常在正常系统波动范围内。 测试框架旨在模拟真实的企业部署环境,并包含多次基准测试以确保结果的可靠性。总体而言,端点防护可在 InterSystems IRIS 上安全部署,且不会对正常的数据库操作产生显著影响。

这些发现表明,在类生产环境中验证端点保护部署并密切监控日志延迟、复制延迟、故障转移时间和 CPU 利用率等关键指标至关重要。 应特别关注日志路径,针对该路径进行有针对性的调优(包括在适当情况下将日志目录排除在实时文件扫描之外),可在保持安全效益的同时提升性能。部署前应建立性能基准。部署后应持续监控系统,以识别性能退化或配置问题。

0
0 9
文章 John Pan · 十一月 2 2m read

用户经常会遇到 InterSystems IRIS 与 Red Hat 的文件访问策略守护进程(fapolicyd)之间的兼容性问题,后者是一种基于可信软件强制执行执行白名单的安全机制。 完整报告(链接见下文)解释道,fapolicyd 默认信任通过 RPM 安装的软件,而 InterSystems IRIS 则是通过基于 TAR 的安装程序分发的,因此默认会被视为不可信。 因此,当 fapolicyd 以默认模式启用时,由于所需的共享库被阻止,InterSystems IRIS 将无法初始化或运行。这种情况并非 InterSystems IRIS 本身的限制,而是信任配置导致的后果。通过使用自定义规则和信任数据库条目,一种经过验证的解决方案既能确保正常运行,又能维持安全控制。

所附报告展示了在 RHEL 8 和 RHEL 10 环境中,针对 x86_64 和 ARM64 平台进行的广泛测试结果,涵盖了多个 InterSystems IRIS 版本。验证过程分为四个阶段:基线模式、宽松模式、强制模式(默认)和强制模式(受信任)。 测试结果表明,InterSystems IRIS 在“基线”和“宽松”模式下运行正常,在“强制(默认)”策略下完全无法运行,而在应用“强制(受信任)”规则后则能成功运行。

0
0 9
文章 John Pan · 十一月 2 3m read

在 2026.3 版本中,为您的 FHIR 端点引入了一项新的“分页样式”设置。

分页样式会影响 FHIR 搜索结果的分页方式。

这些新的“样式”实际上解决了两个问题:

  • 在页面内的“Includes”元素方面,更好地符合FHIR规范
  • 提升第一页响应的性能

共有 3 种选项:

  • 传统
  • 缓存
  • 缓存-异步

我将重点说明每种模式的特点,并演示部分行为——

0
0 10
文章 Jeff Liu · 十月 30 8m read

简而言之:InterSystems IRIS for Health 允许开发人员直接在后端 ObjectScript 例程中执行 FHIR CRUD 操作,而无需依赖 HTTP REST 层。通过使用 HS.FHIRServer.Service,开发人员可以创建服务上下文、构建动态查询、验证模式,并高效地检索 FHIR 资源。 

传统的 FHIR 实现通常通过 HTTP/REST 管道处理请求。本文探讨了绕过该层、直接在 IRIS 后端执行 FHIR 操作时的情况,重点介绍了该方法涉及的架构、服务上下文、查询处理、验证和资源访问。 

本文适用对象:本指南专为InterSystems IRIS for Health、HealthShare 和 Health Connect 开发人员,以及需要在不依赖外部 HTTP 端点的情况下,直接在后端 ObjectScript 例程中执行低开销 FHIR 操作的医疗信息学工程师而设计。

核心架构:标准流程与编程执行

部署在 InterSystems IRIS for Health、HealthShare 和 Health Connect 上的标准 FHIR 实现,依赖于通过 REST 应用层映射到 HS.FHIRServer.Service 的入站 HTTP 管道。

0
0 18
公告 Jeff Liu · 九月 27

本次发布的目标很简单:让使用 InterSystems IRIS 和 Caché 的日常工作变得更轻松一些。
以下是五大主要变更。
- Query Cloud 现可在单个查询中连接多个数据库
SQL Data Lens 利用 Apache Calcite 实现跨不同数据源的联合查询,同时尽可能将过滤、连接和聚合操作下推至各系统。
IRIS + PostgreSQL + 一个装满 CSV 文件的文件夹。
一条 SQL 语句。
- 现在可以搜索 SQL 历史记录
旧式的按日分类树形结构已不复存在。
历史记录条目支持排序、筛选、置顶和导出。失败和已取消的语句现也已包含在内,这使得故障排查变得更加容易。
- SQL 扫描器能检测出更多问题
外键分析现已支持 IRIS 和 Caché。
新增的统计信息检查功能可帮助识别过时的优化器统计信息,且索引建议会考虑实际列的基数。
每项检测结果均附有说明及建议的 SQL 语句。
- 一键从表导航至类和全局变量
类名和全局变量名现已成为超链接。
微小的改动,却出乎意料地实用。
- 执行计划终于变得易于阅读
纯文本形式。可选中。可搜索。可复制。
支持 DuckDB、PostgreSQL 和 SQL Server,Query Cloud 还能通过“显示联合执行计划”功能解释其自身的联合执行策略。

0
0 63
文章 Jeff Liu · 八月 25 5m read

大约25年前,我曾在当地一所顶尖的高科技职业学校/学院担任讲师。👨‍🏫

我曾教授多门课程,包括“C语言入门”以及“C语言进阶”。我承认,从那以后我几乎没怎么碰过C语言,接触得也相当少。 

自然,我大量使用ObjectScript,也接触过其他语言,比如SQL(包括一些厂商专有的变体)、Java和C#,最近还用了不少Python,而在前端开发中则主要使用各种基于JavaScript的框架。

但 C 语言呢?或许在过去一年里,我曾稍微帮过女儿一点忙——当时她正在大学攻读计算机科学专业的大一,我指导她处理指针、内存分配与释放等内容,但也就仅此而已。

就在这时,首届InterSystems员工编程挑战赛来了——任务是处理欧洲航天局(ESA)GAIA项目的数据🛰️,而对于“基准测试”这一赛项,我知道自己将不得不重新温习C语言的知识和经验……

0
0 76
文章 Claire Zheng · 七月 28 2m read

作为我们致力于提升 FHIR 有效载荷导入速度工作的一部分,在 v2026.2 版本(目前已作为开发者预览版发布)中,我们引入了一项可选功能,用于跳过资源的结构验证。 例如,此举可节省 25% 的时间,在大规模数据导入场景中,这一时间节省将十分可观。

0
0 125
文章 Jeff Liu · 五月 28 28m read

表分区演示 (Table Partitioning Demo)

本演示将带你体验 IRIS SQL 全新的表分区(Table Partitioning)功能,并沿途讲解其作用与工作原理。

 

为了验证概念,我们仅使用几十条数据进行演示。但显而易见,该功能的真正威力在于应对体量高出数个数量级的海量数据集。

💡 想要更简短、高屋建瓴的介绍?

不妨查看在线学习模块:Managing Tables with Partitioning in InterSystems IRIS

 

ℹ️ 表分区(Table Partitioning)功能已作为实验性功能包含在 IRIS 2026.1 中。

为了获得最佳的表分区体验,请注册 InterSystems Early Access Program (EAP)。加入 EAP 后,你将获得:许可证密钥、更新说明、与表分区团队更直接高效的沟通渠道。你的反馈对我们至关重要:我们越了解你希望如何使用表分区,就越能针对性地改进它。在注册Early Access Programs 的同时,也欢迎关注涵盖其他激动人心新功能的早期访问计划!

 

什么是表分区 (Table Partitioning)?

表分区允许用户依据特定的逻辑规则,将大表中的数据拆分存储到多个数据库中,从而实现高效的管理。

0
0 102
文章 Nicky Zhu · 三月 20 10m read

陷入困境

直到今年年初,我几乎没怎么做过编程工作——我已经厌倦了它。

在担任多年一线软件工程师和数据科学家后,我在2015年左右陷入了职业倦怠。我转而从事以“外部创新”为主的业务拓展角色,并于2019年加入InterSystems担任产品经理。我怀念编程的创造性,但并不怀念其中的枯燥乏味。无休止的样板代码编写、调试和上下文切换让我创意枯竭。就像电影《好好先生》(Yes Man)中金·凯瑞饰演的角色一样,我发现自己对新项目总是说“不”——以至于我换了职业!

然后,AI编程助手出现了。而我,成了对机器人说“好”的“好好先生”。

第一幕:狂热(“对一切都说好!”)

当我刚开始使用AI编程助手(先是Windsurf,然后是Cline,接着是Roo Code,现在是Claude Code,还尝试过opencode)时,感觉就像变魔术一样。自然语言 → 可运行的代码。我对每个建议、每个重构、几乎每个疯狂的想法都说“好”。

我第一个主要的AI辅助项目是几个月前启动的一个内部项目——为IRIS开发的一系列Python脚本和管道。我兴奋不已,让机器人尽情发挥: “添加这个功能!”——好!“重构那个模块!”——好!“让它可配置!”——好!“添加更多集成!”——好!

创意的能量回来了。代码如泉涌。我又感到自己高效了起来。

然后,我的实习生——一名软件工程专业的学生——查看了代码库。

他并不满意。

0
0 351
文章 Lilian Huang · 三月 8 2m read

在现代医疗保健领域,寻找临床上相似的患者往往感觉像大海捞针。传统的关键字搜索往往会失败,因为医学语言具有高度的细微差别;搜索 "心力衰竭 "可能会漏掉包含 "充血性心力衰竭 "的记录。

我很高兴与大家分享 iris-medmatch,这是一个基于InterSystems IRIS for Health的人工智能患者匹配引擎。通过利用矢量搜索(vector search),该工具能够理解临床意图,而不仅仅是匹配字面字符串。
## 核心创新:语义临床搜索

iris-medmatch "在原始FHIR数据和可操作的人工智能洞察力之间架起了一座桥梁。该引擎利用 "all-MiniLM-L6-v2 "模型,将临床条件转化为数学向量。

标准搜索查找的是准确的单词,而该引擎能理解**临床上下文**。例如,它可以使用数学向量相似性将 "高血压 "患者与 "高血压 "搜索匹配起来。

✨ 主要技术特点

  • 核心:InterSystems IRIS、嵌入式 Python、InterSystems FHIR 服务器、矢量搜索
  • 人工智能:Python、ONNX 运行时、HuggingFace 变换器
  • 前端Angular 18+

技术架构

该解决方案的优势在于其架构效率。通过嵌入式 Python 运行 Transformers,我们消除了 "数据重力 "问题。数据留在 IRIS 中,人工智能处理在数据所在的地方进行。

🚀应用演练

1.

0
0 664
文章 Nicky Zhu · 三月 5 2m read

Embeddedpy-bridge:嵌入式 Python 工具包

概述

嵌入式 Python改变了 InterSystems IRIS 的游戏规则,可直接在数据库中访问庞大的 Python 生态系统。但是,在 ObjectScript 和 Python 之间架起桥梁有时会让人感觉像是在两个不同的世界之间转换。

为了实现这种无缝过渡,请使用embeddedpy-bridge。

该软件包是一个以开发人员为中心的实用工具包,旨在为嵌入式 Python 提供高级 ObjectScript 封装、熟悉的语法和强大的错误处理功能。它允许开发人员使用他们已经熟悉的本地 IRIS 模式与 Python 数据结构交互。

挑战

虽然 %SYS.Python 库功能强大,但开发人员经常面临一些障碍:

  1. 处理代理:使用原始代理浏览 Python 列表和字典对于 ObjectScript 来说并不 "原生"。
  2. 迭代:标准 ObjectScript While 循环无法与 Python 迭代器进行本地 "对话"。
  3. 命名空间管理:确保 Python 实用程序在整个系统中可用。

解决方案:embeddedpy-bridge

我的目标是创建一个 "桥梁",让 Python 感觉像是 ObjectScript 中的一等公民。

主要功能

  • py 前缀约定:%ZPython.Utils
0
0 546
文章 Jeff Liu · 三月 5 3m read

你好

数据迁移通常听起来像是一个简单的 "将数据从 A 转移到 B 的任务",直到你真正去做。实际上,这是一个融合了规划、验证、测试和技术精度的复杂过程。

我曾在多个项目中负责将数据迁移到在 IRIS(TrakCare)上运行的 HIS 中,在这些项目中,我认识到成功来自于纪律和自动化的结合。

以下是我想强调的几个要点。

1.从定义好的数据格式开始。

在打开第一个文件之前,确保每个人,尤其是数据提供者,都清楚地了解您所期望的确切数据格式。尽早定义模板可以避免不必要的来回奔波和返工。

虽然 Excel 或 CSV 格式很常见,但我个人认为使用制表符分隔的文本文件(.txt)上传数据是最好的。它既轻便又一致,还能避免文本字段内的逗号问题。

PatID   DOB Gender  AdmDate
10001   2000-01-02  M   2025-10-01
10002   1998-01-05  F   2025-10-05
10005   1980-08-23  M   2025-10-15

确保文件中提供的日期格式正确且在整个文件中保持不变,因为所有这些文件通常都是从 Excel 文件转换而来,而 Basic excel 用户可能会在提供错误的日期格式时犯错。错误的日期格式在转换为 horolog 时会让您恼火。

0
1 103
InterSystems 官方 Claire Zheng · 十一月 24, 2025

InterSystems IRIS® 数据平台、InterSystems IRIS® data platform, InterSystems IRIS® for HealthTM和HealthShare® Health Connect 2025.3 版本现已全面发布 (GA)。这是一个持续交付 (CD) 版本。

版本亮点:

  • 安全钱包: 用于管理敏感数据的新加密框架,建立在 IRISSECURITY 数据库上,提高了系统安全性和访问控制。
  • 扩展的可观察性和云集成:增强的 OpenTelemetry 指标,包括新增的进程指标和 ECP 指标,此外,日志存档现在支持使用 Azure Blob 存储,以实现经济高效的留存。
  • 数据和人工智能改进:外部表现在支持JOIN下推功能,以提升SQL性能;同时,向量搜索的HNSW索引已升级,可实现更快、更稳健的相似性搜索。
  • 医疗保健增强功能:改进了 FHIR 批量数据访问和身份验证功能。
  • 开发人员和用户界面更新: 互操作性用户界面增加了批量管理操作,扩大了生产配置中的搜索范围,提高了大规模生产的可用性,强化了现代化的用户体验。

请通过开发者社区分享您的反馈意见,以便我们共同打造更好的产品。

文档

有关所有重点功能的详细信息,请访问以下链接:

0
0 229
文章 Jeff Liu · 十一月 6, 2025 4m read

动机

直到开始新工作,我才了解到ObjectScript。实际上,Objectscript并不是一种年轻的编程语言。与 C++、Java 和 Python 相比,它的社区并不活跃,但我们很想让这里更有活力,不是吗?

我注意到,有些同事在理解大型项目中的类关系时感到棘手。目前还没有易于使用的现代化类图工具适用于ObjectScript。

相关工作

我尝试过相关的工作:

——InterSystems 类视图:
1. https://github.com/intersystems-community/ClassExplorer
这个工具很棒,类图显示清晰美观。但存在Docker构建问题:“#0 0.512 exec ./irissession.sh: no such file or directory”。我猜这是为Studio设计的支持功能,而非VSCode。它似乎需要手动导入项目,且需要一定配置才能使用。

2. https://github.com/gjsjohnmurray/vscode-objectscript-class-view
这是另一个给我带来灵感的伟大作品。类结构清晰,不仅支持项目中的类,也支持库中的类。但看起来像是VSCode大纲的增强版。

——其他语言的 VSCode 类图表视图插件

1. https://github.

0
0 322
文章 Nicky Zhu · 十月 28, 2025 9m read

技术文档 — Quarkus IRIS Monitor System

1. 目的与范围

此模块支持在基于 Quarkus 的 Java 应用程序与 InterSystems IRIS 的原生性能监控功能之间进行集成。
它使开发者可以通过 @PerfmonReport 对方法添加注释,这样可以在执行方法时自动触发 IRIS 的 ^PERFMON 例程,以生成性能报告,而无需人工干预。


2. 系统组件

2.1 注释:@PerfmonReport

  • 定义为 CDI InterceptorBinding。
  • 可应用于方法或类。
  • 指示使用 IRIS 监控逻辑包装方法执行的框架。

2.2 拦截器:PerfmonReportInterceptor

  • 拦截对带注释的方法的调用。

  • 执行流程:

    1. 记录启动事件 (LOG.infof("INIT: …"))
    2. 调用 monitorSystem.startPerfmon()
    3. 继续执行 context.proceed()
    4. 在 finally 块中:
      • 调用 monitorSystem.generateReportPerfmon(...)
      • 调用 monitorSystem.stopPerfmon()
      • 记录结束事件及执行时间
  • 确保即使抛出异常,监控也始终结束。

0
0 150
文章 Michael Lei · 五月 12, 2021 11m read

InterSystems 数据平台和性能 - 第 5 部分 使用 SNMP 进行监控

在之前的帖子中,我展示了如何使用 pButtons 收集历史性能指标。 我首选 pButtons 是因为我知道它随每个数据平台实例(Ensemble、Caché、...)一起安装。 不过,还有其他方法可以实时收集、处理和显示 Caché 性能指标,以进行简单的监视,或进行更重要的并且复杂得多的运营分析和容量计划。 最常见的数据收集方法之一是使用 SNMP(简单网络管理协议)。

SNMP 是 Caché 向各种管理工具提供管理和监控信息的标准方式。 Caché 在线文档包含了 Caché 和 SNMP 之间接口的详细信息。 虽然 SNMP 应该可以直接与 Caché 配合工作,但仍有一些配置技巧和陷阱。 我经历了很多次错误的开始,并且在 InterSystems 其他同事的帮助下,才让 Caché 与操作系统 SNMP 主代理建立对话,所以我写了这篇帖子,希望您可以避免同样的痛苦。

3
2 648
InterSystems 官方 Michael Lei · 十月 7, 2024

我们最近在向量搜索抢险体验计划中提供了新版的 InterSystems IRIS,新版本采用了新的基于分层可导航小世界 (HNSW) 索引算法的近似最近邻索引。 这一新增功能可对大型向量数据集进行高效的近似最近邻搜索,从而显著提高查询性能和可扩缩性。

HNSW 算法旨在通过构建基于图形的结构来优化高维数据的向量搜索,从而更快地在大型向量集合中找到近似邻。 无论您使用的是推荐系统、自然语言处理,还是其他机器学习应用,HNSW 都能显著缩短搜索时间,同时允许您调整准确度水平,但准确度提高的代价是查询时间变慢。

HNSW 的主要优点包括:

    •    即使数据集规模不断扩大,也能加快搜索速度
    •    减少内存占用,同时保持高准确度
    •    与现有的 IRIS 向量搜索功能无缝集成

如何开始使用

最新版本现已通过向量搜索抢先体验计划提供。 要参与,请在此处注册,下载新版本并开始测试。 我们正在持续增强向量搜索的功能,因此您的反馈至关重要!

我们鼓励您探索性能改进方法,并与社区分享您的想法。 如果您在抢先体验阶段遇到任何问题或有任何反馈,请联系我。

祝您编码愉快!

0
0 222
公告 Claire Zheng · 一月 28, 2024

近日,InterSystems宣布 InterSystems IRIS® Cloud SQL 和 InterSystems IRIS® Cloud IntegratedML® 服务全面上市。 这些全面托管的云原生智能数据服务使开发人员能够轻松地在SQL环境中构建云原生数据库和机器学习(ML)应用程序。

通过 Cloud SQL和 Cloud IntegratedML,开发人员可以访问下一代关系数据库即服务(DBaaS),DBaaS快速且易于配置和使用。 嵌入式AutoML功能支持开发人员在全面托管的、弹性的云原生环境中,仅仅通过几条类似SQL的命令即可轻松开发并执行机器学习模型。

0
0 220
文章 Yuxiang Niu · 十一月 12, 2023 3m read

在日常Cache运维过程中可能会由于数据或者程序等原因造成锁的异常增长,导致数据库性能受到影响会出现程序报错或卡顿无法正常运行的问题。遇到此类问题需查看数据库当前锁列表情况,找到出现次数最多关键锁,根据关键锁对应的进程来判断处理。总结有以下三种方式查看关键锁。

  1. 可在portal的[Locks]中查看;
  2. 可在terminal端的%sys下使用Do ^LOCKTAB命令下查看;
  3. 通过自定义程序查看。

查看方式

优点

缺点

第一种

易操作、方式简便

慢、锁数量太多无法显示

第二种

快、不受网页限制

易忘、需要输入准确命令

第三种

快、灵活、直接显示关键锁信息

需定位准确命名空间

下面给出自定义程序实例,程序逻辑为按命名空间循环所有锁信息,通过计数器方式记录所有锁当中出现次数最多的一个,输出其信息。入参为数据库中不同命名空间,输出结果为锁名称及锁的所有者,所有者一般为进程ID或ECP。

2
0 480
文章 Michael Lei · 十月 27, 2022 1m read

WinterCorp 性能测试报告摘要

  • InterSystems的性能测试方法用来衡量 "许多运行状态下数据库应用的关键构件 "是有效的。
  • 与AWS Aurora MySQL、MariaDB、Microsoft SQL Server、Oracle和PostgreSQL相比,InterSystems IRIS显示出 "巨大的性能优势"。
  • InterSystems IRIS的插入速度是其他系统的1.7到9倍。InterSystems IRIS的数据速率是1.1到600倍。在插入率和查询率的组合上,没有其他系统在性能上能接近于InterSystems IRIS。
  • InterSystems IRIS的效率是AWS Aurora MySQL的2.7到3.1倍,而且随着集群中节点数量的增加,效率优势也越来越大。
  • 在整个三到五分钟的集群测试中,InterSystems IRIS插入的记录在插入后很快出现在查询中。

图1. 每vCPU每秒查询对比(InterSystems IRIS vs AWS Aurora MySQL,1-4 查询节点)


图2. 单节点插入/查询速度对比(InterSystems IRIS vs AWS Aurora MySQL vs MS SQL Server)


图3.

0
0 240
文章 Weiwei Gu · 六月 27, 2022 6m read

Globals,这些存储数据的魔剑,已经存在了一段时间,但是没有多少人能够有效地使用它们,也没有多少人知道这个超级武器。

如果你把Globals的东西用在它们真正能发挥作用的地方,其结果可能是惊人的,要么是性能的提高,要么是整体解决方案的大幅简化 (1, 2).

Globals提供了一种特殊的存储和处理数据的方式,它与SQL表完全不同。它们在1966年首次出现在 M(UMPS)编程语言中, 该语言最初用于医学数据库。现在它仍然以同样的方式被使用,但也被其他一些以可靠性和高性能为首要任务的行业所采用:金融、交易等。

后来M(UMPS)演变为 Caché ObjectScript (COS). COS是由InterSystems公司开发的,作为M的一个超集. 其原始语言仍然被开发者社区所接受,并在一些实现中保持活力。在网络上有几个活跃的网址,比如:MUMPS Google group, Mumps User's group), effective ISO Standard等等

现代基于Globals的数据库支持交易、日志、复制、分区等。这意味着它们可以被用来构建现代的、可靠的、快速的分布式系统。

Gloabls并不将你限制于关系模型的范围内。它们让你可以自由地创建为特定任务优化的数据结构。对于许多应用来说,合理地使用好的Globals就如一颗真正的银子弹头,它所提供的速度是传统关系型应用的开发者所梦寐以求的。

作为一种存储数据的方法,globals可以在许多现代编程语言中使用,包括高级和低级语言。因此,本文将特别关注Globals本身,而不是它们曾经来自的语言。

1
1 482
文章 Michael Lei · 六月 11, 2022 2m read

在检查我们的^pButtons(在IRIS中改名为^SystemPerformance)性能监控工具的文档时,一位客户告诉我。"我理解所有内容,但我希望它能更简单......更容易定义配置文件,管理它们等等"。

在这次会议之后,我认为尝试为其提供一些更简单的人机界面是一个不错的试验。

这方面的第一步是在现有的pButtons例程上包裹一个基于类的API。

我还能够添加一些更多的 "功能",比如显示当前正在运行的配置文件,它们剩余的运行时间,以前运行的进程等等。

下一步是在这个API的基础上添加一个REST API类。

有了这个工件(pButtons REST API),人们就可以在上面建立一个比较时髦的用户界面。

举个🌰: -

0
0 379
文章 Lele Yang · 一月 30, 2022 2m read

Linux内核机制OOM Killer,也即Out of Memory Killer, 顾名思义,该机制的主要职能就是当内存不足时,选择并杀掉一些进程,以使系统继续运行。

Caché/Ensemble/IRIS的多个客户曾经遇到过与此相关的系统宕机,宕机的直接原因是数据库核心写进程Write Daemon被OOM Killer选中并杀掉了,在我们的日志文件中可以看到如下信息,

06/15/21-10:50:31:035 (13579) 3 Daemon WRTDMN (pid 13588) died. Freezing system
06/15/21-10:52:25:940 (13601) 2 System Process 'WRTDMN' terminated abnormally (pid 13588)
0
0 1.1K
问题 peng lv · 九月 7, 2021

本地库 在打开studio、studio编译类、关闭studio等操作系统卡死,关闭后连接超时。

打开cconsole.log报错日志,提示***严重的磁盘读写错误,I/O错误***,对数据库做了一致性检查,也未发现错误,必须重启电脑或者force库后恢复使用。

请问是什么问题造成的。。。

1
0 401
文章 Michael Lei · 八月 26, 2021 9m read

SAM - 设置和添加非 IRIS 目标指标的技巧和提示

SAM(系统警报和监视)以“功能齐全”的 docker-compose 容器集的形式提供,只要启动就可以开始以默认的仪表板监视 IRIS 实例。 使用初始配置就可以很好地了解 SAM 功能并开始对 IRIS 系统进行基本监视。 但是,当开始监视多个系统并收集大量指标数据时,需要更改一些默认设置。 为了从 SAM 获取更多价值,您还会想要添加来自其他数据源(目标)的指标。 以下技巧将帮助您在生产环境中部署 SAM,从多个目标收集指标并将这些指标组合到您自己的仪表板和图表中。 此外,您还将看到一些可能有助于探索 SAM 容器和应用程序的命令。

*注意:*我应该指出,其中一些技巧和提示可能不是最佳做法;这更像是一个日志,记录了我第一次如何配置 SAM 来监视相同系统上的多个服务器和非 IRIS 目标的基准。 如果您有建议,请在评论中指教 ;) 所以,记住本帖可能会随着时间的推移而有所变化,让我们开始吧;


在下面的技巧中,有重启 docker 以及启动和停止 SAM 的操作。 请通读这些技巧,确定哪些适合您,然后按照下面的相同顺序执行。

1. 确保有足够的空间用于 SAM 数据库

默认情况下,docker 容器将文件存储在根 (/) 文件系统。 SAM 不需要很多 CPU 或内存资源;但是,指标收集将占用空间。

0
0 314