2016-06-27 3 views
0

マップには、60秒というttlを持つエントリ(k1、v1)があります。Hazelcast C++クライアント、マップ、TTL

map.set(k1、v2)を実行すると、ttlは影響を受けません。つまり、エントリは60秒後に削除されます。 しかし、map.put(k1、v2)を実行すると、ttlが存在すると判断されます。つまり、エントリは60秒後に削除されません。

この理解は正しいですか?私はそれをこのように推測しますが、文書で明確に言及されていません。

答えて

1

あなたは正しいですか?設定された時間を使用すると、map.putにバグがありました。私はちょうど追加のテストでここに修正のためのPRを提出しました:https://github.com/hazelcast/hazelcast-cpp-client/pull/164

私は間違ってttlのために-1の代わりに0を送りました。 -1は、設定されたttlを使用することを意味します。これはset APIの場合は既に正しいですが、問題はput APIの場合のみでした。

ご報告いただきありがとうございます。

1

いいえ、putオペレーションとsetオペレーションの両方が、setオペレーションがoldValueを返さないことを除けば、実装が同じであることを除いて同じです。
& SetOperationクラスをご覧になれます。両方ともBasePutOperationです。
put/set操作ごとにttlを設定しない限り、evictionはエントリの最新のttl値に基づいている必要があります。

関連する問題