0 关注者 · 81 帖子

初学者标签汇集了面向 InterSystems 数据平台初学者的文章和问题

新增
文章 Jeff Liu · 22 小时 前 4m read

尽管LOCK(docs) 是 InterSystems IRIS 的基础部分,负责并发性,但开发者社区上关于它的讨论并不多。这是可以理解的,因为它是一个稳定且相当低级的命令。在本文中,我将举一个简单的例子,说明如何使用互操作性锁。在示例中,我们将有一个本地表,其中的引用数据由两个不同的进程使用:

  • 从表中读取数据的实用功能(由生产中的各种 DTL/Rules 使用)
  • 更新表的专用业务操作

这里的问题是,当业务操作更新表时(最糟糕的情况是进行完全重建),自定义函数将无法从表中获取数据,这将导致 DTL/规则处理出现问题。

锁可以帮助我们解决这个问题。具体方法如下:

  • 实用程序将在获取数据前获得共享锁。任何数量的进程都可以持有共享锁,因此不会出现并发问题。一旦检索到数据,我们就会释放共享锁。
  • 更新器业务操作会先使用共享锁,然后再释放独占锁。一旦某个进程获得独占锁,IRIS 就会保证其他进程无法获得同一资源上的锁。这样,当独占锁被持有时,实用程序就无法获取共享锁。一旦我们的业务操作完成对表的更新,它就会释放独占锁,允许实用程序访问表。

    让我们开始吧

本地表

有点简单(在实际项目中作为 LUT 可能会更好),但我们的目的是展示锁是如何工作的,而不是构建一个复杂的表:

Class Lock.
0
0 6
文章 Jeff Liu · 四月 2 7m read

在本文中,我将向你展示如何在笔记本电脑上快速建立一个分片 IRIS 节点集群。本文的目的既不是详细讨论分片,也不是定义生产就绪架构的部署,而是展示如何在自己的电脑上快速建立一个配置为分片节点的 IRIS 实例集群,并利用它来玩转和测试这一功能。如果你想了解更多有关 IRIS 分片的信息,请点击此处查看相关文档。

首先,我要说明的是,IRIS分片允许我们做两件事:

  • 定义、加载和查询分片表(shard tables),数据将在集群节点之间透明分发
  • 定义联合表(federated tables),提供属于不同表的数据的全局和组合视图,这些数据将物理存储在不同的分布式节点中

因此,正如我所说,我们可以在其他文章中讨论分片表或联合表,现在只需关注前一步,即设置分片节点集群。

0
0 49
文章 Nicky Zhu · 四月 1 7m read

您熟悉 SQL 数据库,但不熟悉 IRIS 吗? 请继续阅读...

大约一年前,我加入了 InterSystems,IRIS 就这样进入了我的视线。 我使用数据库已经有 40 多年了,其中大部分时间都是为数据库供应商工作,我以为 IRIS 与我所知道的其他数据库大致相同。 然而,我惊讶地发现,IRIS 在很多方面都与其他数据库截然不同,而且往往要好得多。 这是我在 Dev Community 上发表的第一篇文章,我将为已经熟悉 Oracle、SQL Server、Snowflake、PostgeSQL 等其他数据库的人提供 IRIS 的高级概述。 希望我的介绍能让您更清楚、更简单,并节省您的入门时间。

首先,IRIS 支持 ANSI 标准 SQL 命令和语法。它有表格、列、数据类型、存储过程、函数......所有关系型的东西。 你还可以使用 ODBC、JDBC 和 DBeaver 或任何你喜欢的数据库浏览器。 因此,是的,您在其他数据库中知道和做的大多数事情都可以在 IRIS 上正常运行。 耶!

但我提到的那些不同之处又是怎么回事呢? 好了,系好安全带:

多模型(Multi-Model)IRIS 是一个关系数据库,但同时也是一个面向对象的数据库,还是文档存储,支持向量和立方体/MDX,以及.你知道我要说什么。

0
0 39