public StartAndMonitor(ChronicleQueue queue, String name, int writePauseMs, int sleepBetweenMillis) { final SlowToSerialiseAndDeserialise object = new SlowToSerialiseAndDeserialise(writePauseMs); Thread thread = new Thread(() -> { try { while (running.get()) { long loopStart = System.nanoTime(); final ExcerptAppender appender = queue.acquireAppender(); // System.out.println("about to open"); try (final DocumentContext ctx = appender.writingDocument()) { // System.out.println("about to write"); ctx.wire().getValueOut().marshallable(object); // System.out.println("about to close"); } // System.out.println("closed"); long timeTaken = System.nanoTime() - loopStart; histo.sampleNanos(timeTaken); Jvm.pause(sleepBetweenMillis); } } catch (Throwable t) { t.printStackTrace(); } }, name); thread.start(); } }
try (DocumentContext dc = wire.writingDocument(true)) { dc.wire().writeEventName(() -> "header") .typePrefix(SingleChronicleQueueStore.class).marshallable( w -> w.write(() -> "wireType").object(WireType.BINARY));
@Before public void before() { path = OS.TARGET + "/" + getClass().getSimpleName() + "-" + System.nanoTime(); try (ChronicleQueue appender_queue = ChronicleQueue.singleBuilder(path) .testBlockSize() .buffered(false) .build()) { ExcerptAppender appender = appender_queue.acquireAppender(); for (int i = 0; i < messages; i++) { final long l = i; appender.writeDocument(wireOut -> wireOut.write("log").marshallable(m -> { m.write("msg").text("hello world ola multi-verse"); m.write("ts").int64(l); } )); } a_index = appender.lastIndexAppended(); } }
@Override public Long call() throws Exception { queue = ChronicleQueue.singleBuilder(path) //.testBlockSize() //.rollCycle(TEST_DAILY) .buffered(false) .build(); appender = queue.acquireAppender(); for (int i = 0; i < 50; i++) { appender.writeDocument(wireOut -> wireOut.write("log").marshallable(m -> m.write("msg").text("hello world2 "))); } long index = appender.lastIndexAppended(); sync.put(index); Long fromReader = sync.take(); if (index != fromReader) { System.out.println("Writer:Not the same:" + index + " vs. " + fromReader); } for (int i = 0; i < 50; i++) { appender.writeDocument(wireOut -> wireOut.write("log").marshallable(m -> m.write("msg").text("hello world2 "))); } index = appender.lastIndexAppended(); sync.put(index); return index; } }
for (int i = 0; i < 10; i++) { queue.acquireAppender().writeDocument(w -> { w.write("a").marshallable(m -> { m.write("b").text("c"); });
@NotNull Wire wire = new BinaryWire(bytes); try (DocumentContext dc = wire.writingDocument(true)) { dc.wire().writeEventName(() -> "header").typePrefix(SingleChronicleQueueStore.class).marshallable(w -> { w.write(() -> "wireType").object(WireType.BINARY); w.write(() -> "writePosition").int64forBinding(0);
ExcerptAppender appender = appender_queue.acquireAppender(); for (int i = 0; i < 5; i++) { appender.writeDocument(wireOut -> wireOut.write("log").marshallable(m -> m.write("msg").text("hello world "))); ExcerptAppender appender = appender_queue.acquireAppender(); for (int i = 0; i < 5; i++) { appender.writeDocument(wireOut -> wireOut.write("log").marshallable(m -> m.write("msg").text("hello world2 ")));
@NotNull @Override public ClosableIterator<? extends Row> iterator(@NotNull SortedFilter sortedFilter) { return (RemoteColumnViewRowIterator) proxyReturnWireConsumerInOut( iterator, CoreFields.reply, valueOut -> valueOut.marshallable(sortedFilter), readIteratorProxy); }
@Override public void writeMarshallable(@NotNull WireOut wire) { for (@NotNull Entry<String, EngineCluster> entry : clusterMap.entrySet()) wire.writeEventName(entry::getKey).marshallable(entry.getValue()); }
private void dumpRules(@NotNull Wire wire) { wire.bytes().append8bit("---\n"); wire.write("name").text(fullName()) .write("leaf").marshallable(w -> { for (@NotNull Map.Entry<Class, LeafView> entry : leafViewMap.entrySet()) { w.writeEvent(Class.class, entry.getKey()).leaf(false) .text(entry.getValue().name); } }) .write("wrapping").marshallable(w -> { for (@NotNull Map.Entry<Class, SortedMap<String, WrappingViewRecord>> entry : wrappingViewFactoryMap.entrySet()) { w.writeEvent(Class.class, entry.getKey()).marshallable(ww -> { for (@NotNull Map.Entry<String, WrappingViewRecord> recordEntry : entry.getValue().entrySet()) { ww.writeEventName(recordEntry.getKey()).object(Class.class, recordEntry.getValue().underlyingType); } }); } }); }
@Override public void onSubscribe(@NotNull WireOut wireOut) { if (LOG.isDebugEnabled()) Jvm.debug().on(getClass(), "onSubscribe - localIdentifier=" + localIdentifier + "," + "remoteIdentifier=" + remoteIdentifier); wireOut.writeEventName(identifier) .marshallable(WriteMarshallable.EMPTY) .writeComment(toString() + ", tcpChannelHub={" + hub.toString() + "}"); }
@Override public void publish(@NotNull final T topic, @NotNull final M message) { checkTopic(topic); checkMessage(message); sendEventAsync(publish, valueOut -> valueOut.marshallable(m -> { m.write(Params.topic).object(topic); m.write(Params.message).object(message); }), true); }
@Override public void publish(M event) { checkMessage(event); sendEventAsync(publish, valueOut -> valueOut.marshallable(m -> { m.write(Params.message).object(event); }), true); }
@Override public void onSubscribe(@NotNull final WireOut wireOut) { subscribersToTid.put(subscriber, tid()); wireOut.writeEventName(registerTopicSubscriber).marshallable(m -> { m.write(() -> "keyType").typeLiteral(kClass); m.write(() -> "valueType").typeLiteral(vClass); if (rc.bootstrap() != null) m.writeEventName(() -> "bootstrap").bool(rc.bootstrap()); }); }
@Override public long createProxy(String type, long token) { createProxy0(type, cspBuff); cspBuff.append("&token=" + token); final long cid = acquireCid(cspBuff); outWire.writeEventName(reply).typePrefix("set-proxy") .marshallable(w -> { w.writeEventName(CoreFields.csp).text(cspBuff); w.writeEventName(CoreFields.cid).int64(cid); }); return cid; }
/** * write and exceptions and rolls back if no data was written */ void writeData(boolean isNotComplete, @NotNull Bytes inBytes, @NotNull WriteMarshallable c) { @NotNull final WriteMarshallable marshallable = out -> { final long readPosition = inBytes.readPosition(); final long position = outWire.bytes().writePosition(); try { c.writeMarshallable(outWire); } catch (Throwable t) { inBytes.readPosition(readPosition); if (LOG.isInfoEnabled()) LOG.info("While reading " + inBytes.toDebugString(), " processing wire " + c, t); outWire.bytes().writePosition(position); outWire.writeEventName(() -> "exception").throwable(t); } // write 'reply : {} ' if no data was sent if (position == outWire.bytes().writePosition()) { outWire.writeEventName(reply).marshallable(EMPTY); } }; if (isNotComplete) outWire.writeNotCompleteDocument(false, marshallable); else outWire.writeDocument(false, marshallable); logYaml(); }
@Override public long createProxy(final String type) { createProxy0(type, cspBuff); final long cid = acquireCid(cspBuff); outWire.writeEventName(reply).typePrefix("set-proxy") .marshallable(w -> { w.writeEventName(CoreFields.csp).text(cspBuff); w.writeEventName(CoreFields.cid).int64(cid); }); return cid; }
(inputTid)); publish.writeNotCompleteDocument(false, wire -> wire.writeEventName(reply) .marshallable(m -> m.write(Params.message).object(message))); });
/** * write and exceptions and rolls back if no data was written */ void writeData(@NotNull WireIn wireIn, @NotNull WriteMarshallable c) { @NotNull Bytes inBytes = wireIn.bytes(); outWire.writeDocument(false, out -> { final long readPosition = inBytes.readPosition(); final long position = outWire.bytes().writePosition(); try { c.writeMarshallable(outWire); } catch (Throwable t) { final String readingYaml = wireIn.readingPeekYaml(); inBytes.readPosition(readPosition); if (LOG.isInfoEnabled()) LOG.info("While readingBytes=" + inBytes.toDebugString() + "\nreadingYaml=" + readingYaml, "\nprocessing wire " + c, t); outWire.bytes().writePosition(position); outWire.writeEventName(() -> "readingYaml").text(readingYaml); outWire.writeEventName(() -> "exception").throwable(t); } // write 'reply : {} ' if no data was sent if (position == outWire.bytes().writePosition()) { outWire.writeEventName(reply).marshallable(EMPTY); } }); logYaml(); }
w.writeDocument(false, d -> { d.writeEventName(replicationEvent).marshallable(e); d.writeComment("isAcceptor=" + nc().isAcceptor()); });