Package com.higherfrequencytrading.chronicle

Examples of com.higherfrequencytrading.chronicle.Excerpt


        final Chronicle source = new InProcessChronicleSource(new IndexedChronicle(srcBasePath), PORT + 1);
        Thread t = new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    Excerpt excerpt = source.createExcerpt();
                    for (int i = 1; i <= messages; i++) {
                        // use a size which will cause mis-alignment.
                        excerpt.startExcerpt(9);
                        excerpt.writeLong(i);
                        excerpt.writeByte(i);
                        excerpt.finish();
//                        Thread.sleep(1);
                    }
                    System.out.println(System.currentTimeMillis() + ": Finished writing messages");
                } catch (Exception e) {
                    throw new AssertionError(e);
                }

            }
        });

        String snkBasePath = baseDir + "/IPCT.testOverTCP.sink";
        ChronicleTools.deleteOnExit(snkBasePath);
        Chronicle sink = new InProcessChronicleSink(new IndexedChronicle(snkBasePath), "localhost", PORT + 1);

        long start = System.nanoTime();
        t.start();
        Excerpt excerpt = sink.createExcerpt();
        int count = 0;
        for (int i = 1; i <= messages; i++) {
            while (!excerpt.nextIndex())
                count++;
            long n = excerpt.readLong();
            assertEquals(i, n);
            excerpt.finish();
        }
        sink.close();
        System.out.println("There were " + count + " misses");
        t.join();
        source.close();
View Full Code Here


        IndexedChronicle tsc = new IntIndexedChronicle(basePath, 12);
        tsc.useUnsafe(useUnsafe);
        deleteOnExit(basePath);

        tsc.clear();
        Excerpt excerpt = tsc.createExcerpt();

        int counter = 1;
        for (int i = 0; i < 1024; i++) {
            excerpt.startExcerpt(129);
            for (int j = 0; j < 128; j += 8)
                excerpt.writeLong(counter++);
            excerpt.write(-1);
            excerpt.finish();
        }

        counter = 1;
        for (int i = 0; i < 1024; i++) {
            assertTrue(excerpt.index(i));
            for (int j = 0; j < 128; j += 8) {
                long actual = excerpt.readLong();
                long expected = counter++;
                if (expected != actual)
                    assertEquals(expected, actual);
            }
            assertEquals(-1, excerpt.readByte());
            excerpt.finish();
        }
        assertFalse(excerpt.index(1024));
        tsc.close();
    }
View Full Code Here

        ChronicleTools.deleteOnExit(TMP + "/chronicle3");
        Chronicle chronicle3 = new IndexedChronicle(TMP + "/chronicle3");
        InProcessChronicleSink sink3 = new InProcessChronicleSink(chronicle3, "localhost", 62222);

        Excerpt excerpt1 = source1.createExcerpt();
        Excerpt excerpt2 = sink2.createExcerpt();
        Excerpt excerpt3 = sink3.createExcerpt();

        for (int i = 1; i < 20; i++) {
            excerpt1.startExcerpt(8);
            excerpt1.writeLong(System.nanoTime());
            excerpt1.finish();

            while (excerpt2.size() < i)
                excerpt2.nextIndex();

            while (excerpt3.size() < i)
                excerpt3.nextIndex();
        }

        sink3.close();
        sink2.close();
        source1.close();
View Full Code Here

        String newPath = TMP + File.separator + excerptType.getSimpleName() + "Ic";
        deleteOnExit(newPath);
        IndexedChronicle newIc = new IndexedChronicle(newPath);
        newIc.useUnsafe(excerptType == Unsafe.class);

        Excerpt excerpt = newIc.createExcerpt();

        long start = 0;
        for (int i = -NUM_WARMUP_RECORDS; i < TOTAL_RECORDS; i++) {
            if (i == 0)
                start = System.nanoTime();

            int precision = Math.abs(i) % MAX_PRECISION + 1;
            excerpt.startExcerpt(20 * NUM_ENTRIES_PER_RECORD);
            if (numType == long.class) {
                long[] longs = RANDOM_LONGS[Math.abs(i)];
                for (int j = 0; j < NUM_ENTRIES_PER_RECORD; j++) {
                    excerpt.append(longs[j]);
                    excerpt.append(' '); // need something in between.
                }
            } else if (numType == double.class) {
                double[] doubles = RANDOM_DOUBLES[Math.abs(i)];
                for (int j = 0; j < NUM_ENTRIES_PER_RECORD; j++) {
                    excerpt.append(doubles[j], precision);
                    excerpt.append(' '); // need something in between.
                }
            } else {
                fail();
            }
            excerpt.finish();
        }
        newIc.close();

        long time = System.nanoTime() - start;
        System.out.printf("%s %s average time taken %d ns%n", numType, excerptType, time / TOTAL_RECORDS / NUM_ENTRIES_PER_RECORD);
View Full Code Here

        writeAdd(e);
        return true;
    }

    private void writeAdd(E element) {
        Excerpt excerpt = getExcerpt(maxMessageSize, add);
        long eventId = excerpt.index();
        writeElement(excerpt, element);
        excerpt.finish();
        if (!notifyOff && !listeners.isEmpty()) {
            for (int i = 0; i < listeners.size(); i++) {
                CollectionListener<E> listener = listeners.get(i);
                listener.eventStart(eventId, name);
                listener.add(element);
View Full Code Here

            excerpt.writeObject(element);
    }

    @NotNull
    private Excerpt getExcerpt(int maxSize, @NotNull WrapperEvent event) {
        Excerpt excerpt = dataStore.startExcerpt(maxSize + 2 + event.name().length(), name);
        excerpt.writeEnum(event);
        return excerpt;
    }
View Full Code Here

            writeAddAll(added);
        return true;
    }

    private void writeAddAll(@NotNull Collection<E> added) {
        Excerpt excerpt = getExcerpt(maxMessageSize * added.size(), addAll);
        long eventId = excerpt.index();
        writeList(excerpt, added);
        excerpt.finish();
        if (!notifyOff && !listeners.isEmpty()) {
            for (int i = 0; i < listeners.size(); i++) {
                CollectionListener<E> listener = listeners.get(i);
                listener.eventStart(eventId, name);
                for (E e : added)
View Full Code Here

        writeClear();
        underlying.clear();
    }

    private void writeClear() {
        Excerpt excerpt = getExcerpt(10, clear);
        long eventId = excerpt.index();
        excerpt.finish();
        if (!notifyOff && !listeners.isEmpty()) {
            E[] elements = (E[]) underlying.toArray(new Object[underlying.size()]);
            for (int i = 0; i < listeners.size(); i++) {
                CollectionListener<E> listener = listeners.get(i);
                listener.eventStart(eventId, name);
View Full Code Here

            @Override
            public void remove() {
                checkWritable();
                iter.remove();
                int maxSize = maxMessageSize;
                Excerpt excerpt = getExcerpt(maxSize, remove);
                writeElement(excerpt, last);
                excerpt.finish();
            }
        };
    }
View Full Code Here

        return true;
    }

    @SuppressWarnings("unchecked")
    private void writeRemove(Object o) {
        Excerpt excerpt = getExcerpt(maxMessageSize, remove);
        long eventId = excerpt.index();
        writeElement(excerpt, (E) o);
        excerpt.finish();
        if (!notifyOff && !listeners.isEmpty()) {
            for (int i = 0; i < listeners.size(); i++) {
                CollectionListener<E> listener = listeners.get(i);
                listener.eventStart(eventId, name);
                listener.remove((E) o);
View Full Code Here

TOP

Related Classes of com.higherfrequencytrading.chronicle.Excerpt

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.