原子模式|点燃文档

点燃2023年峰会-按需观看-立即注册!

编辑

原子性模式

默认情况下,缓存仅支持原子操作和诸如putAll()删除全部()作为单个put和remove的序列执行。您可以启用事务支持,并将一个或多个键上的多个缓存操作分组到单个原子事务中。这些操作在没有对指定密钥执行任何其他交错操作的情况下执行,并且要么全部成功,要么全部失败。操作没有部分执行。

要启用对缓存事务的支持,请将原子性模式缓存配置中的参数交易.

注意安全
如果在一个缓存中配置多个缓存缓存组,缓存必须是全原子的或全事务的。一个缓存组中不能同时包含TRANSACTIONAL和ATOMIC缓存。

Ignite支持3种原子模式,如下表所述。

原子性模式 描述

原子

默认模式。所有操作都是以原子方式执行的,每次一个。不支持事务。这个原子模式通过避免事务锁提供更好的性能,同时为每个操作提供数据原子性和一致性。批量写入,例如putAll(…)全部删除(…)方法不会在一个事务中执行,并且可能会部分失败。如果发生这种情况缓存部分更新异常抛出并包含更新失败的键的列表。

交易

支持通过键值API执行与ACID兼容的事务。不支持SQL事务。此模式下的事务可以有不同的并发模式和隔离级别.只有在需要支持ACID兼容操作时才启用此模式。有关事务的更多信息,请参阅执行事务.

注释

性能注意事项

这个交易模式会增加缓存操作的性能成本,只有在需要事务时才应启用该模式。

您可以在缓存配置中为缓存启用事务。

<豆类 类=“org.apache.ignite.conformation.IgniteConfiguration”>
    <属性 姓名=“缓存配置”>
        <豆类 类=“org.apache.ignite.conformation.CacheConfiguration”>
            <属性 姓名=“名称” 价值=“myCache”/>

            <属性 姓名=“原子性模式” 价值=“交易”/>
        </bean>
    </属性>

    <!--可选事务配置。-->
    <属性 姓名=“transactionConfiguration”>
        <豆类 类=“org.apache.ignite.conformation.TransactionConfiguration”>
            <!--在此处配置TM查找。-->
        </bean>
    </属性>
</bean>
缓存配置 缓存配置 = 新的 缓存配置();

缓存Cfg.集合名称(“缓存名称”);

缓存配置.设置原子性模式(缓存原子性模式.交易);

点火配置 cfg(立方英尺/加仑) = 新的 点火配置();

cfg(立方英尺/加仑).setCacheConfiguration(设置缓存配置)(缓存Cfg);

//可选事务配置。在此处配置TM查找。
事务配置 tx配置 = 新的 事务配置();

cfg(立方英尺/加仑).setTransactionConfiguration(设置事务配置)(tx配置);

//启动节点
点火.开始(cfg(立方英尺/加仑));
无功功率,无功功率 cfg(立方英尺/加仑) = 新的 点火配置
{
    缓存配置 = 新的[]
    {
        新的 缓存配置(“txCache”)
        {
            原子性模式 = 缓存原子性模式.交易性
        }
    },
    事务配置 = 新的 事务配置
    {
        默认事务并发 = 事务并发性.乐观
    }
};
此API目前不适用于C++。您可以使用XML配置。