Advertisement
Guest User

Untitled

a guest
Jul 24th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.56 KB | None | 0 0
  1. package io.atomix.protocols.raft.test;
  2.  
  3. import io.atomix.cluster.MemberId;
  4. import io.atomix.cluster.Node;
  5. import io.atomix.cluster.discovery.BootstrapDiscoveryProvider;
  6. import io.atomix.cluster.discovery.NodeDiscoveryProvider;
  7. import io.atomix.core.Atomix;
  8. import io.atomix.core.list.AsyncDistributedList;
  9. import io.atomix.protocols.raft.partition.RaftPartitionGroup;
  10. import io.atomix.storage.StorageLevel;
  11. import org.slf4j.Logger;
  12. import org.slf4j.LoggerFactory;
  13.  
  14. import java.io.File;
  15. import java.util.concurrent.CountDownLatch;
  16.  
  17. public class LatencyTest {
  18. public static void main(String[] args) throws InterruptedException {
  19. new LatencyTest().run();
  20. }
  21.  
  22. private final MemberId member = MemberId.anonymous();
  23.  
  24. private void run() throws InterruptedException {
  25. final Atomix atomix = startAtomix();
  26. atomix.start().join();
  27.  
  28. final Logger logger = LoggerFactory.getLogger(this.getClass());
  29. final AsyncDistributedList<Integer> list = atomix.<Integer>getList("list").async();
  30. final int workCount = 15_000;
  31. final CountDownLatch latch = new CountDownLatch(workCount);
  32. for (int i = 0; i < workCount; i++) {
  33. list.add(i, i)
  34. .whenComplete(
  35. (nothing, error) -> {
  36. if (latch.getCount() % 100 == 0) {
  37. logger.info("Count down: {}", latch.getCount());
  38. }
  39.  
  40. latch.countDown();
  41. });
  42. }
  43.  
  44. latch.await();
  45. atomix.stop().join();
  46. }
  47.  
  48. private Atomix startAtomix() {
  49. final RaftPartitionGroup system =
  50. RaftPartitionGroup.builder("system")
  51. .withMembers(member)
  52. .withNumPartitions(1)
  53. .withPartitionSize(1)
  54. .withDataDirectory(new File(String.format("target/latency-logs/%s/system", member.id())))
  55. .build();
  56. final RaftPartitionGroup data =
  57. RaftPartitionGroup.builder("data")
  58. .withMembers(member)
  59. .withNumPartitions(1)
  60. .withPartitionSize(1)
  61. .withStorageLevel(StorageLevel.DISK)
  62. .withFlushOnCommit(false)
  63. .withDataDirectory(new File(String.format("target/latency-logs/%s/data", member.id())))
  64. .build();
  65. final NodeDiscoveryProvider discoveryProvider =
  66. BootstrapDiscoveryProvider.builder()
  67. .withNodes(Node.builder().withId(member.id()).build())
  68. .build();
  69.  
  70. return Atomix.builder()
  71. .withMemberId(member)
  72. .withShutdownHookEnabled()
  73. .withMembershipProvider(discoveryProvider)
  74. .withManagementGroup(system)
  75. .withPartitionGroups(data)
  76. .build();
  77. }
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement