Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ISPN-7367 CommandAckCollector Improvements #4774

Closed
wants to merge 1 commit into from

Conversation

pruivo
Copy link
Member

@pruivo pruivo commented Jan 18, 2017

@pruivo
Copy link
Member Author

pruivo commented Jan 18, 2017

PerfAck: library + dist + writes + no-tx

@pruivo
Copy link
Member Author

pruivo commented Jan 19, 2017

run performance tests please
library dist writes

@ghost
Copy link

ghost commented Jan 19, 2017

Performance tests run successfully. Link to the results here.

@galderz
Copy link
Member

galderz commented Jan 23, 2017

@pruivo Results are in but they seem worse for 100 threads?

@pruivo
Copy link
Member Author

pruivo commented Jan 23, 2017

run performance tests please
library dist writes

@ghost
Copy link

ghost commented Jan 23, 2017

Performance tests didn't finish successfully. @Holmistr, can you review it?

@jmarkos
Copy link

jmarkos commented Jan 23, 2017

run performance tests please
library dist writes

@ghost
Copy link

ghost commented Jan 23, 2017

Performance tests run successfully. Link to the results here.

@pruivo
Copy link
Member Author

pruivo commented Jan 23, 2017

personal note: results above used commit f5b4b6b

@galderz
Copy link
Member

galderz commented Jan 23, 2017

Whoa!! Huge increase in perf!

@galderz
Copy link
Member

galderz commented Jan 23, 2017

TX writes 100 threads still lower, more work to come?

@pruivo
Copy link
Member Author

pruivo commented Jan 23, 2017

@galderz . short answer, yes.
I'm not trusting 100% with the results. it is too much based on the changes. Also, the snapshot didn't pick today's commit and I want to compare with no-bundler.
Transactional caches is not the goal of the PR and they shouldn't be affected.

@galderz
Copy link
Member

galderz commented Jan 23, 2017

@pruivo So, do you want to tidy up and include in Beta2? Or wait?

@pruivo
Copy link
Member Author

pruivo commented Jan 23, 2017

@galderz you can release Beta2 without it :) I want to make sure the results are real or not, and I need Dan to review it as well.

@galderz
Copy link
Member

galderz commented Jan 23, 2017

Fair point

@galderz galderz removed this from the 9.0.0.Beta2 milestone Jan 23, 2017
@galderz
Copy link
Member

galderz commented Jan 23, 2017

Removed milestone

@pruivo
Copy link
Member Author

pruivo commented Jan 25, 2017

run performance tests please
library dist writes

@ghost
Copy link

ghost commented Jan 25, 2017

Performance tests run successfully. Link to the results here.

@pruivo
Copy link
Member Author

pruivo commented Jan 25, 2017

run performance tests please
library dist writes

@ghost
Copy link

ghost commented Jan 25, 2017

Performance tests run successfully. Link to the results here.

@pruivo
Copy link
Member Author

pruivo commented Feb 3, 2017

@danberindei updated!

@pruivo
Copy link
Member Author

pruivo commented Feb 3, 2017

@danberindei updated again :)

@pruivo
Copy link
Member Author

pruivo commented Feb 3, 2017

run performance tests please
library dist writes

Copy link
Member

@danberindei danberindei left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some minor cosmetic issues.

@@ -354,7 +362,7 @@ private Object primaryOwnerWrite(InvocationContext context, DataWriteCommand com
}

private void logCommandSequence(CommandInvocationId id, int segment, long sequence) {
log.tracef("Command %s got sequence %s for segment %s", id, sequence, segment);
log.tracef("Command %s got sequence %s for segment %s", id, sequence, segment);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd move the if (trace) check in here.

command.getTopologyId());
.createMultiKeyCollector(command.getCommandInvocationId().getId(), filter.primaries.keySet(),
filter.backups,
command.getTopologyId(), timeoutNanos);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Join these lines?


private void traceBackupAck(int topologyId, Address from) {
log.tracef("[Collector#%s] Backup ACK. Address=%s, TopologyId=%s (expected=%s)",
id, from, topologyId, this.topologyId);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here too, if (trace) could be in the method.

@Inject
public void inject(
@ComponentName(value = KnownComponentNames.TIMEOUT_SCHEDULE_EXECUTOR) ScheduledExecutorService timeoutExecutor,
Configuration configuration) {
@ComponentName(value = KnownComponentNames.TIMEOUT_SCHEDULE_EXECUTOR) ScheduledExecutorService timeoutExecutor) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't need value =

@@ -1473,7 +1473,7 @@ TimeoutException timeoutWaitingForView(int expectedViewId, int currentViewId,
//removed unused message (id=426)

@Message(value = "Timeout after %s waiting for acks. Id=%s", id = 427)
TimeoutException timeoutWaitingForAcks(String timeout, CommandInvocationId id);
TimeoutException timeoutWaitingForAcks(String timeout, Long id);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The id could be a primitive long.

@ghost
Copy link

ghost commented Feb 3, 2017

Performance tests run successfully. Link to the results here.

@pruivo
Copy link
Member Author

pruivo commented Feb 3, 2017

@danberindei updated!

@danberindei
Copy link
Member

CI build hanged in InitialClusterSizeTest, but I don't think it's related:
https://issues.jboss.org/browse/ISPN-7439

@danberindei
Copy link
Member

The AffinityTest failure seems specific to this branch:
http://ci.infinispan.org/project.html?projectId=Infinispan&testNameId=8733223218815095024&tab=testDetails

@pruivo
Copy link
Member Author

pruivo commented Feb 14, 2017

finally understood the issue. The CommandAckCollector cannot be a global component, it must be a per-cache component since it needs the cache topology updates to keeps its members updated.

@pruivo
Copy link
Member Author

pruivo commented Feb 14, 2017

run performance tests please
library dist writes

@ghost
Copy link

ghost commented Feb 14, 2017

Performance tests run successfully. Link to the results here.

@@ -91,12 +91,11 @@
private static final Log log = LogFactory.getLog(TriangleDistributionInterceptor.class);
private static final boolean trace = log.isTraceEnabled();
private CommandAckCollector commandAckCollector;
private final InvocationExceptionFunction onPutMapNoLocalEntriesException = this::onPutMapNoLocalEntriesException;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's better to group the lambdas at the end then mixing them with the injected components.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no idea why the reformat put the field there... but it does it consistently

@pruivo
Copy link
Member Author

pruivo commented Feb 22, 2017

updated

@danberindei
Copy link
Member

Integrated, thanks Pedro!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants