Infinispan 文件存储创建包含多个 .dat 文件的二进制文件夹
Infinispan file-store creates binary folders with multiple .dat files
我在使用下面的 infinispan 配置文件时 运行 遇到了一个奇怪的问题。在启动时,应用程序会创建多个文件夹(字节数组 0 到 255 的每个数字对应一个文件夹)并且每个文件夹都包含 .dat 文件(在我的示例中为 idempotent.dat)。此外,文件的内容对于所有创建的文件都是 FCS1。
我所期望的是它将创建一个包含所有缓存对象的文件 (/ap/efts/data/stage/cache/idempotent.dat)。
有人可以确定导致此问题的原因吗?我正在使用 camel-infinispan 组件来创建基于 Infinispan 的幂等存储库。
注意:这在 infinispan 7.0 版中工作正常。作为参考,我还提供了 infinispan 7.0 配置文件以及幂等存储库的 spring bean 配置。
infinispan.xml (10.0)
<?xml version="1.0" encoding="UTF-8"?>
<infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:infinispan:config:10.0 http://www.infinispan.org/schemas/infinispan-config-10.0.xsd"
xmlns="urn:infinispan:config:10.0">
<cache-container default-cache="idempotent">
<local-cache name="idempotent">
<expiration lifespan="1800000" max-idle="1800000" interval="60000" />
<persistence passivation="true">
<file-store path="/ap/efts/data/stage/cache" purge="true">
<write-behind thread-pool-size="5" />
</file-store>
</persistence>
<memory>
<binary eviction="MEMORY" size="1000000" />
</memory>
</local-cache>
</cache-container>
</infinispan>
infinispan.xml (7.0)
<?xml version="1.0" encoding="UTF-8"?>
<infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:infinispan:config:7.0 http://www.infinispan.org/schemas/infinispan-config-7.0.xsd"
xmlns="urn:infinispan:config:7.0">
<cache-container default-cache="default">
<local-cache name="idempotent">
<eviction max-entries="10000" strategy="LIRS"/>
<persistence passivation="false">
<file-store path="/ap/efts/data/stage/cache" max-entries="10000" purge="false">
</file-store>
</persistence>
</local-cache>
</cache-container>
</infinispan>
spring bean 配置
<bean id="cacheManager" class="org.infinispan.manager.DefaultCacheManager" init-method="start" destroy-method="stop">
<constructor-arg type="java.lang.String" value="infinispan.xml"/>
</bean>
<bean id="infinispanRepo" class="org.apache.camel.component.infinispan.processor.idempotent.InfinispanIdempotentRepository"
factory-method="infinispanIdempotentRepository">
<constructor-arg ref="cacheManager" />
<constructor-arg value="idempotent" />
</bean>
它正在为每个段创建一个文件(内部缓存按段组织)。默认值为 256。这使得迭代等操作更快。
您可以通过向 file-store
元素
添加 segmented="false"
属性来禁用商店级别的细分
我在使用下面的 infinispan 配置文件时 运行 遇到了一个奇怪的问题。在启动时,应用程序会创建多个文件夹(字节数组 0 到 255 的每个数字对应一个文件夹)并且每个文件夹都包含 .dat 文件(在我的示例中为 idempotent.dat)。此外,文件的内容对于所有创建的文件都是 FCS1。
我所期望的是它将创建一个包含所有缓存对象的文件 (/ap/efts/data/stage/cache/idempotent.dat)。 有人可以确定导致此问题的原因吗?我正在使用 camel-infinispan 组件来创建基于 Infinispan 的幂等存储库。
注意:这在 infinispan 7.0 版中工作正常。作为参考,我还提供了 infinispan 7.0 配置文件以及幂等存储库的 spring bean 配置。
infinispan.xml (10.0)
<?xml version="1.0" encoding="UTF-8"?>
<infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:infinispan:config:10.0 http://www.infinispan.org/schemas/infinispan-config-10.0.xsd"
xmlns="urn:infinispan:config:10.0">
<cache-container default-cache="idempotent">
<local-cache name="idempotent">
<expiration lifespan="1800000" max-idle="1800000" interval="60000" />
<persistence passivation="true">
<file-store path="/ap/efts/data/stage/cache" purge="true">
<write-behind thread-pool-size="5" />
</file-store>
</persistence>
<memory>
<binary eviction="MEMORY" size="1000000" />
</memory>
</local-cache>
</cache-container>
</infinispan>
infinispan.xml (7.0)
<?xml version="1.0" encoding="UTF-8"?>
<infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:infinispan:config:7.0 http://www.infinispan.org/schemas/infinispan-config-7.0.xsd"
xmlns="urn:infinispan:config:7.0">
<cache-container default-cache="default">
<local-cache name="idempotent">
<eviction max-entries="10000" strategy="LIRS"/>
<persistence passivation="false">
<file-store path="/ap/efts/data/stage/cache" max-entries="10000" purge="false">
</file-store>
</persistence>
</local-cache>
</cache-container>
</infinispan>
spring bean 配置
<bean id="cacheManager" class="org.infinispan.manager.DefaultCacheManager" init-method="start" destroy-method="stop">
<constructor-arg type="java.lang.String" value="infinispan.xml"/>
</bean>
<bean id="infinispanRepo" class="org.apache.camel.component.infinispan.processor.idempotent.InfinispanIdempotentRepository"
factory-method="infinispanIdempotentRepository">
<constructor-arg ref="cacheManager" />
<constructor-arg value="idempotent" />
</bean>
它正在为每个段创建一个文件(内部缓存按段组织)。默认值为 256。这使得迭代等操作更快。
您可以通过向 file-store
元素
segmented="false"
属性来禁用商店级别的细分