Hazelcast Map Expire Listener on key, race condition
I have IMap<Long, SomeObject> on hazelcast member,
where some part of Long keys have expiration time (TTL).
For this purpose I am registering EntryExpiredListener on key using addEntryListener(MapListener, K, boolean).
Everything works fine, but I have doubts.
As documentation states:
With the above approach, there is the possibility of missing events between the creation of the instance and registering the listener. To overcome this race condition, Hazelcast allows you to register listeners in configuration.
Will I encounter 'missing events' described above, if I register EntryExpiredListener on key?
hazelcast hazelcast-imap
add a comment |
I have IMap<Long, SomeObject> on hazelcast member,
where some part of Long keys have expiration time (TTL).
For this purpose I am registering EntryExpiredListener on key using addEntryListener(MapListener, K, boolean).
Everything works fine, but I have doubts.
As documentation states:
With the above approach, there is the possibility of missing events between the creation of the instance and registering the listener. To overcome this race condition, Hazelcast allows you to register listeners in configuration.
Will I encounter 'missing events' described above, if I register EntryExpiredListener on key?
hazelcast hazelcast-imap
add a comment |
I have IMap<Long, SomeObject> on hazelcast member,
where some part of Long keys have expiration time (TTL).
For this purpose I am registering EntryExpiredListener on key using addEntryListener(MapListener, K, boolean).
Everything works fine, but I have doubts.
As documentation states:
With the above approach, there is the possibility of missing events between the creation of the instance and registering the listener. To overcome this race condition, Hazelcast allows you to register listeners in configuration.
Will I encounter 'missing events' described above, if I register EntryExpiredListener on key?
hazelcast hazelcast-imap
I have IMap<Long, SomeObject> on hazelcast member,
where some part of Long keys have expiration time (TTL).
For this purpose I am registering EntryExpiredListener on key using addEntryListener(MapListener, K, boolean).
Everything works fine, but I have doubts.
As documentation states:
With the above approach, there is the possibility of missing events between the creation of the instance and registering the listener. To overcome this race condition, Hazelcast allows you to register listeners in configuration.
Will I encounter 'missing events' described above, if I register EntryExpiredListener on key?
hazelcast hazelcast-imap
hazelcast hazelcast-imap
edited Nov 24 '18 at 9:03
JavaMachine
asked Nov 24 '18 at 8:25
JavaMachineJavaMachine
3651220
3651220
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
If it’s on the member & you mark the listener as local ( so each member receive only local expration events) and define in the config, you wont since events will be local to each member.
If you register the listener after you create the instance, after partitions distributed & before you register the listener, its possible that some data could expire. This is why above statements says you need to define listener in the config to prevent this.
But what about registering listener on key? I guess you cannot register on key listeners beforehand (in config). This means I still might miss events?
– JavaMachine
Nov 26 '18 at 12:17
What do you mean by registering listeners on key? Can you give an example?
– Gokhan Oner
Nov 27 '18 at 8:25
In my question above I included link: docs.hazelcast.org/docs/3.11/javadoc/com/hazelcast/core/…
– JavaMachine
Nov 27 '18 at 8:30
In this case,, yes, since you can only register the listener this way through IMap.
– Gokhan Oner
Nov 27 '18 at 14:13
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53456462%2fhazelcast-map-expire-listener-on-key-race-condition%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
If it’s on the member & you mark the listener as local ( so each member receive only local expration events) and define in the config, you wont since events will be local to each member.
If you register the listener after you create the instance, after partitions distributed & before you register the listener, its possible that some data could expire. This is why above statements says you need to define listener in the config to prevent this.
But what about registering listener on key? I guess you cannot register on key listeners beforehand (in config). This means I still might miss events?
– JavaMachine
Nov 26 '18 at 12:17
What do you mean by registering listeners on key? Can you give an example?
– Gokhan Oner
Nov 27 '18 at 8:25
In my question above I included link: docs.hazelcast.org/docs/3.11/javadoc/com/hazelcast/core/…
– JavaMachine
Nov 27 '18 at 8:30
In this case,, yes, since you can only register the listener this way through IMap.
– Gokhan Oner
Nov 27 '18 at 14:13
add a comment |
If it’s on the member & you mark the listener as local ( so each member receive only local expration events) and define in the config, you wont since events will be local to each member.
If you register the listener after you create the instance, after partitions distributed & before you register the listener, its possible that some data could expire. This is why above statements says you need to define listener in the config to prevent this.
But what about registering listener on key? I guess you cannot register on key listeners beforehand (in config). This means I still might miss events?
– JavaMachine
Nov 26 '18 at 12:17
What do you mean by registering listeners on key? Can you give an example?
– Gokhan Oner
Nov 27 '18 at 8:25
In my question above I included link: docs.hazelcast.org/docs/3.11/javadoc/com/hazelcast/core/…
– JavaMachine
Nov 27 '18 at 8:30
In this case,, yes, since you can only register the listener this way through IMap.
– Gokhan Oner
Nov 27 '18 at 14:13
add a comment |
If it’s on the member & you mark the listener as local ( so each member receive only local expration events) and define in the config, you wont since events will be local to each member.
If you register the listener after you create the instance, after partitions distributed & before you register the listener, its possible that some data could expire. This is why above statements says you need to define listener in the config to prevent this.
If it’s on the member & you mark the listener as local ( so each member receive only local expration events) and define in the config, you wont since events will be local to each member.
If you register the listener after you create the instance, after partitions distributed & before you register the listener, its possible that some data could expire. This is why above statements says you need to define listener in the config to prevent this.
answered Nov 25 '18 at 0:26
Gokhan OnerGokhan Oner
2,3961121
2,3961121
But what about registering listener on key? I guess you cannot register on key listeners beforehand (in config). This means I still might miss events?
– JavaMachine
Nov 26 '18 at 12:17
What do you mean by registering listeners on key? Can you give an example?
– Gokhan Oner
Nov 27 '18 at 8:25
In my question above I included link: docs.hazelcast.org/docs/3.11/javadoc/com/hazelcast/core/…
– JavaMachine
Nov 27 '18 at 8:30
In this case,, yes, since you can only register the listener this way through IMap.
– Gokhan Oner
Nov 27 '18 at 14:13
add a comment |
But what about registering listener on key? I guess you cannot register on key listeners beforehand (in config). This means I still might miss events?
– JavaMachine
Nov 26 '18 at 12:17
What do you mean by registering listeners on key? Can you give an example?
– Gokhan Oner
Nov 27 '18 at 8:25
In my question above I included link: docs.hazelcast.org/docs/3.11/javadoc/com/hazelcast/core/…
– JavaMachine
Nov 27 '18 at 8:30
In this case,, yes, since you can only register the listener this way through IMap.
– Gokhan Oner
Nov 27 '18 at 14:13
But what about registering listener on key? I guess you cannot register on key listeners beforehand (in config). This means I still might miss events?
– JavaMachine
Nov 26 '18 at 12:17
But what about registering listener on key? I guess you cannot register on key listeners beforehand (in config). This means I still might miss events?
– JavaMachine
Nov 26 '18 at 12:17
What do you mean by registering listeners on key? Can you give an example?
– Gokhan Oner
Nov 27 '18 at 8:25
What do you mean by registering listeners on key? Can you give an example?
– Gokhan Oner
Nov 27 '18 at 8:25
In my question above I included link: docs.hazelcast.org/docs/3.11/javadoc/com/hazelcast/core/…
– JavaMachine
Nov 27 '18 at 8:30
In my question above I included link: docs.hazelcast.org/docs/3.11/javadoc/com/hazelcast/core/…
– JavaMachine
Nov 27 '18 at 8:30
In this case,, yes, since you can only register the listener this way through IMap.
– Gokhan Oner
Nov 27 '18 at 14:13
In this case,, yes, since you can only register the listener this way through IMap.
– Gokhan Oner
Nov 27 '18 at 14:13
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53456462%2fhazelcast-map-expire-listener-on-key-race-condition%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown