@Override public Set<String> keys() { return this.baseMemory.keys(); }
/** * Whether the key exists in the memory. * * @param key key to search the memory for. * @return whether the key exists */ public default boolean exists(final String key) { return this.keys().contains(key); }
public static String memoryString(final Memory memory) { return "memory" + L_BRACKET + "size:" + memory.keys().size() + R_BRACKET; }
/** * A helper method that generates a {@link Map} of the memory key/values. * * @return the map representation of the memory key/values */ public default Map<String, Object> asMap() { final Map<String, Object> map = keys().stream() .map(key -> Pair.with(key, get(key))) .collect(Collectors.toMap(Pair::getValue0, Pair::getValue1)); return Collections.unmodifiableMap(map); }
public MapMemory(final Memory otherMemory) { otherMemory.keys().forEach(key -> this.memoryMap.put(key, otherMemory.get(key))); this.iteration = otherMemory.getIteration(); }
private void processMemorySideEffects(final Memory memory) { // update the traversal side-effects with the state of the memory after the OLAP job execution final TraversalSideEffects sideEffects = this.getTraversal().getSideEffects(); for (final String key : memory.keys()) { if (sideEffects.exists(key)) { // halted traversers should never be propagated through sideEffects assert !key.equals(TraversalVertexProgram.HALTED_TRAVERSERS); sideEffects.set(key, memory.get(key)); } } }
@Test @LoadGraphWith(MODERN) public void shouldAndOrIncrCorrectlyThroughSubStages() throws Exception { ComputerResult results = graphProvider.getGraphComputer(graph).program(new VertexProgramG()).submit().get(); assertEquals(2, results.memory().getIteration()); assertEquals(6, results.memory().asMap().size()); assertEquals(6, results.memory().keys().size()); assertTrue(results.memory().keys().contains("a")); assertTrue(results.memory().keys().contains("b")); assertTrue(results.memory().keys().contains("c")); assertTrue(results.memory().keys().contains("d")); assertTrue(results.memory().keys().contains("e")); assertTrue(results.memory().keys().contains("f")); assertEquals(Long.valueOf(18), results.memory().get("a")); assertEquals(Long.valueOf(0), results.memory().get("b")); assertFalse(results.memory().get("c")); assertTrue(results.memory().get("d")); assertTrue(results.memory().get("e")); assertEquals(3, results.memory().<Integer>get("f").intValue()); }
@Test @LoadGraphWith(MODERN) public void shouldHaveConsistentMemoryVertexPropertiesAndExceptions() throws Exception { ComputerResult results = graphProvider.getGraphComputer(graph).program(new VertexProgramF()).submit().get(); assertEquals(1, results.memory().getIteration()); assertEquals(2, results.memory().asMap().size()); assertEquals(2, results.memory().keys().size()); assertTrue(results.memory().keys().contains("a")); assertTrue(results.memory().keys().contains("b")); assertTrue(results.memory().getRuntime() >= 0); assertEquals(12, results.memory().<Integer>get("a").intValue()); // 2 iterations assertEquals(28, results.memory().<Integer>get("b").intValue()); try { results.memory().get("BAD"); fail("Should throw an IllegalArgumentException"); } catch (IllegalArgumentException e) { assertEquals(Memory.Exceptions.memoryDoesNotExist("BAD").getMessage(), e.getMessage()); } assertEquals(Long.valueOf(0), results.graph().traversal().V().count().next()); // persist new/nothing. results.graph().traversal().V().forEachRemaining(v -> { assertTrue(v.property("nameLengthCounter").isPresent()); assertEquals(Integer.valueOf(v.<String>value("name").length() * 2), Integer.valueOf(v.<Integer>value("nameLengthCounter"))); }); }
@Override public Set<String> keys() { return this.baseMemory.keys(); }
@Test @LoadGraphWith(MODERN) public void shouldSupportBroadcastKeys() throws Exception { final ComputerResult result = graphProvider.getGraphComputer(graph).program(new VertexProgramP()).submit().get(); assertTrue(result.memory().exists("m1")); assertFalse(result.memory().exists("m2")); assertFalse(result.memory().exists("m3")); assertTrue(result.memory().exists("m4")); assertTrue(result.memory().get("m1")); assertEquals(-18, result.memory().<Integer>get("m4").intValue()); assertEquals(2, result.memory().keys().size()); }
final Graph graph3 = result3.graph(); final Memory memory3 = result3.memory(); assertTrue(memory3.keys().contains("m")); assertTrue(memory3.keys().contains(TraversalVertexProgram.HALTED_TRAVERSERS)); assertEquals(1, memory3.<Map<Long, Long>>get("m").size()); assertEquals(6, memory3.<Map<Long, Long>>get("m").get(1l).intValue());
/** * Whether the key exists in the memory. * * @param key key to search the memory for. * @return whether the key exists */ public default boolean exists(final String key) { return this.keys().contains(key); }
public static String memoryString(final Memory memory) { return "memory" + L_BRACKET + "size:" + memory.keys().size() + R_BRACKET; }
/** * A helper method that generates a {@link Map} of the memory key/values. * * @return the map representation of the memory key/values */ public default Map<String, Object> asMap() { final Map<String, Object> map = keys().stream() .map(key -> Pair.with(key, get(key))) .collect(Collectors.toMap(Pair::getValue0, Pair::getValue1)); return Collections.unmodifiableMap(map); }
public MapMemory(final Memory otherMemory) { otherMemory.keys().forEach(key -> this.memoryMap.put(key, otherMemory.get(key))); this.iteration = otherMemory.getIteration(); }
assertTrue(result.memory().exists("m3")); assertEquals(24l, result.memory().<Long>get("m3").longValue()); assertEquals(2, result.memory().keys().size()); // mapReduceK
private void processMemorySideEffects(final Memory memory) { // update the traversal side-effects with the state of the memory after the OLAP job execution final TraversalSideEffects sideEffects = this.getTraversal().getSideEffects(); for (final String key : memory.keys()) { if (sideEffects.exists(key)) { // halted traversers should never be propagated through sideEffects assert !key.equals(TraversalVertexProgram.HALTED_TRAVERSERS); sideEffects.set(key, memory.get(key)); } } }
@Test @LoadGraphWith(MODERN) public void shouldAndOrIncrCorrectlyThroughSubStages() throws Exception { ComputerResult results = graphProvider.getGraphComputer(graph).program(new VertexProgramG()).submit().get(); assertEquals(2, results.memory().getIteration()); assertEquals(6, results.memory().asMap().size()); assertEquals(6, results.memory().keys().size()); assertTrue(results.memory().keys().contains("a")); assertTrue(results.memory().keys().contains("b")); assertTrue(results.memory().keys().contains("c")); assertTrue(results.memory().keys().contains("d")); assertTrue(results.memory().keys().contains("e")); assertTrue(results.memory().keys().contains("f")); assertEquals(Long.valueOf(18), results.memory().get("a")); assertEquals(Long.valueOf(0), results.memory().get("b")); assertFalse(results.memory().get("c")); assertTrue(results.memory().get("d")); assertTrue(results.memory().get("e")); assertEquals(3, results.memory().<Integer>get("f").intValue()); }
@Test @LoadGraphWith(MODERN) public void shouldHaveConsistentMemoryVertexPropertiesAndExceptions() throws Exception { ComputerResult results = graphProvider.getGraphComputer(graph).program(new VertexProgramF()).submit().get(); assertEquals(1, results.memory().getIteration()); assertEquals(2, results.memory().asMap().size()); assertEquals(2, results.memory().keys().size()); assertTrue(results.memory().keys().contains("a")); assertTrue(results.memory().keys().contains("b")); assertTrue(results.memory().getRuntime() >= 0); assertEquals(12, results.memory().<Integer>get("a").intValue()); // 2 iterations assertEquals(28, results.memory().<Integer>get("b").intValue()); try { results.memory().get("BAD"); fail("Should throw an IllegalArgumentException"); } catch (IllegalArgumentException e) { assertEquals(Memory.Exceptions.memoryDoesNotExist("BAD").getMessage(), e.getMessage()); } assertEquals(Long.valueOf(0), results.graph().traversal().V().count().next()); // persist new/nothing. results.graph().traversal().V().forEachRemaining(v -> { assertTrue(v.property("nameLengthCounter").isPresent()); assertEquals(Integer.valueOf(v.<String>value("name").length() * 2), Integer.valueOf(v.<Integer>value("nameLengthCounter"))); }); }
@Test @LoadGraphWith(MODERN) public void shouldSupportBroadcastKeys() throws Exception { final ComputerResult result = graphProvider.getGraphComputer(graph).program(new VertexProgramP()).submit().get(); assertTrue(result.memory().exists("m1")); assertFalse(result.memory().exists("m2")); assertFalse(result.memory().exists("m3")); assertTrue(result.memory().exists("m4")); assertTrue(result.memory().get("m1")); assertEquals(-18, result.memory().<Integer>get("m4").intValue()); assertEquals(2, result.memory().keys().size()); }