distributed-computing - 如何正确定义和区分节点、流程、事务和操作?
问题描述
作为我研究的一部分,我需要向读者提供分布式系统的全面介绍。我目前正在努力正确定义一些在分布式系统和事务的文献中反复出现的概念。它们是(a)节点,(b)进程,(c)事务和(d)操作。我真的可以在理解它们的相关性方面使用一些帮助,因为我似乎不断地将节点与流程和事务与操作混为一谈。任何输入表示赞赏!
我已经尝试通过研究以下文献来掌握这些概念:分布式系统:概念和设计(G. Coulouris 等人)分布式系统简介(AS Tannenbaum)
解决方案
我不确定您在定义的术语中究竟理解了哪种类型的歧义,因此更难给出正确的答案。这些术语在分布式系统术语中与信息技术科学的任何其他部分具有相同的含义。
更具体一点。节点通常是运行一个或多个进程的“机器”。该进程执行操作。操作可以分组在一个事务中(事务由操作组成)。
我刚刚快速搜索了您提到的资源,并且有说
我们通常将其称为节点的计算元素可以是硬件设备或软件进程。
节点运行进程。但是节点本身可以是一个真实的硬件(一台机器),也可以是一个虚拟机——这是一个在某些机器上运行的进程(一个真实的硬件)。从分布式系统的角度来看,您不介意节点在现实中是什么(它是真实的硬件或虚拟的软件),但它是运行进程的“容器”。
进程是“运行时”。它处理一些东西。它可以处理数字、数据、消息……在流程内部处理的工作块是操作。例如,您将数据保存到数据库中,然后将其作为操作进行。
事务定义了一个由多个操作组成的工作单元。该交易为您提供了对这些操作的保证。这些保证是什么取决于您使用的模型。如果您考虑 ACID 事务(如 1983 年的面向事务的数据库恢复原理一文中所定义),那么您可以保证所有操作都成功处理或没有一个是(A),保持一致性(C),并行事务不要干涉(I),并且您可以保证交易结果是持久的(D)。
推荐阅读
- firebase - 如何使用提供程序为登录屏幕过渡设置动画?
- javascript - 从 ViewData 填充剃刀文本输入
- reactjs - ag-grid 反应:gridApi 未定义
- outlook - 自定义连接器不起作用“从连接器收到错误...”
- angular - 错误:ExpressionChangedAfterItHasBeenCheckedError:以前的值:'ng-untouched: true'。当前值:'ng-untouched: false'
- javascript - 我无法在本地计算机上运行 D3 代码
- flutter - How to make dialog scrollable?
- c# - 当我使用 C++ Dll 中的函数时,Unity 中的运行时错误
- angular - 使用自定义数据源在 mat-table 中排序、分页和过滤?
- delphi - Delphi:TTask 似乎只有第一次慢