Skip to content

Commit 3e3eef5

Browse files
authored
Document Chronicle Map architecture & system properties; tidy APIs, quality rules, and tests (#580)
* removing obsolete doclint suppression from the Maven Javadoc configuration * expanding targeted Checkstyle suppressions for legacy/test-only sources * cleaning up unused imports, whitespace, comments, and assertion style * applying final and clearer variable names where useful * removing redundant checked exceptions from method signatures * adding explicit braces and switch defaults for clearer control flow
1 parent 055e261 commit 3e3eef5

171 files changed

Lines changed: 1736 additions & 2331 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

ReadMe.adoc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ Chronicle Software
33
:css-signature: demo
44
:toc: macro
55
:toclevels: 2
6-
:icons: font
6+
:lang: en-GB
7+
:source-highlighter: rouge
78

89
image:https://maven-badges.herokuapp.com/maven-central/net.openhft/chronicle-map/badge.svg[caption="",link=https://maven-badges.herokuapp.com/maven-central/net.openhft/chronicle-map]
910
image:https://javadoc.io/badge2/net.openhft/chronicle-map/javadoc.svg[link="https://www.javadoc.io/doc/net.openhft/chronicle-map/latest/index.html"]

benchmark/README.adoc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
= Benchmark results
22
Peter Lawrey
3+
:lang: en-GB
4+
:source-highlighter: rouge
35

4-
Summary of results on a Ryzen 9 5950X with a Corsair MP600 driver
6+
Summary of results on a Ryzen 9 5950X with a Corsair MP600 drive
57

68
== 1 million reads and 1 million writes each second of 500 byte messages
79

@@ -98,4 +100,4 @@ worst: 8896.51 9191.42 9191.42 588251.14 8232.96
98100
------------------------------------------------------------------------------------------
99101
```
100102
101-
NOTE: Running this dataset on a 64 GB machine had lower outliers when run without graphical interface to save some memory and contention.
103+
NOTE: Running this dataset on a 64 GB machine had lower outliers when run without graphical interface to save some memory and contention.

checkstyle-suppressions.xml

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,57 @@
1515
<suppress files="CompiledReplicatedMapQueryContext.java" checks=".*"/>
1616
<suppress files="CompiledMapIterationContext.java" checks=".*"/>
1717
<suppress files="CompiledMapQueryContext.java" checks=".*"/>
18-
</suppressions>
18+
19+
<!-- Test-only suppressions for legacy/examples -->
20+
<suppress files="DirtyReadVictimTest.java"
21+
checks="(CommentsIndentation|VariableDeclarationUsageDistance)"/>
22+
<suppress files="ChronicleStampedLock.java"
23+
checks="(CommentsIndentation|VariableDeclarationUsageDistance)"/>
24+
<suppress files="DirtyReadVictim.java"
25+
checks="(CommentsIndentation|VariableDeclarationUsageDistance)"/>
26+
<suppress files="CHMTestIterator1.java"
27+
checks="CommentsIndentation"/>
28+
<suppress files="Issue229Test.java"
29+
checks="CommentsIndentation"/>
30+
<suppress files="ValueAlignmentRelocationTest.java"
31+
checks="(CommentsIndentation|VariableDeclarationUsageDistance)"/>
32+
<suppress files="MarshallableReaderWriterTest.java"
33+
checks="CommentsIndentation"/>
34+
<suppress files="LargeEntriesTest.java"
35+
checks="CommentsIndentation"/>
36+
<suppress files="DemoChronicleMapTest.java"
37+
checks="CommentsIndentation"/>
38+
<suppress files="Issue63Test.java"
39+
checks="CommentsIndentation"/>
40+
<suppress files="MapCheck.java"
41+
checks="CommentsIndentation"/>
42+
<suppress files="CHMUseCasesTest.java"
43+
checks="(CommentsIndentation|VariableDeclarationUsageDistance)"/>
44+
<suppress files="ChronicleMapTest.java"
45+
checks="(CommentsIndentation|VariableDeclarationUsageDistance)"/>
46+
47+
<suppress files="DirtyReadOffender_WriterWriterTest.java"
48+
checks="VariableDeclarationUsageDistance"/>
49+
<suppress files="DirtyReadOffender.java"
50+
checks="VariableDeclarationUsageDistance"/>
51+
<suppress files="DirtyReadIntolerant.java"
52+
checks="VariableDeclarationUsageDistance"/>
53+
<suppress files="DirtyReadOffenderIPCTest.java"
54+
checks="VariableDeclarationUsageDistance"/>
55+
<suppress files="DirtyReadOffender_ReaderWriterTest.java"
56+
checks="VariableDeclarationUsageDistance"/>
57+
<suppress files="DirtyReadOffenderTest.java"
58+
checks="VariableDeclarationUsageDistance"/>
59+
<suppress files="DirtyReadOffender_WriterReaderTest.java"
60+
checks="VariableDeclarationUsageDistance"/>
61+
<suppress files="DirtyReadIntolerant_ReaderReader_Test.java"
62+
checks="VariableDeclarationUsageDistance"/>
63+
<suppress files="DirtyReadVictimIPCTest.java"
64+
checks="CommentsIndentation"/>
65+
<suppress files="DirtyReadVictim.java"
66+
checks="VariableDeclarationUsageDistance"/>
67+
<suppress files="ReaderToo.java"
68+
checks="VariableDeclarationUsageDistance"/>
69+
<suppress files="WriterToo.java"
70+
checks="VariableDeclarationUsageDistance"/>
71+
</suppressions>

docs/CM_Compatibility_and_Versioning.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ Neil Clifford
55
:css-signature: demo
66
:toc-placement: macro
77
:icons: font
8+
:lang: en-GB
9+
:source-highlighter: rouge
810

911
toc::[]
1012

docs/CM_Download.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ Neil Clifford
55
:css-signature: demo
66
:toc-placement: macro
77
:icons: font
8+
:lang: en-GB
9+
:source-highlighter: rouge
810

911
toc::[]
1012

docs/CM_FAQs.adoc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ Neil Clifford, Peter Lawrey, Rob Austin, Jerry Shea
55
:css-signature: demo
66
:toc-placement: preamble
77
:icons: font
8+
:lang: en-GB
9+
:source-highlighter: rouge
810

911
This document provides information for some common tasks within Chronicle Map.
1012

@@ -91,12 +93,12 @@ This is because Chronicle uses the page cache and RAM is in effect a cache to th
9193

9294
There are two cases where having a high-speed disk will give you a real benefit:
9395

94-
==== 1. Data rate
96+
==== Data rate
9597

9698
If the rate of data that you are writing exceeds the disk write speed.
9799
In most applications this is unlikely to occur.
98100

99-
==== 2. Page cache misses
101+
==== Page cache misses
100102

101103
When you get a page cache miss.
102104
For Chronicle queues which write and read messages lineally across memory, we mitigate this situation with the use of the Chronicle pre-toucher.

docs/CM_Features.adoc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,16 @@ Neil Clifford
55
:css-signature: demo
66
:toc-placement: macro
77
:icons: font
8+
:lang: en-GB
9+
:source-highlighter: rouge
810

911
toc::[]
1012

1113
Chronicle Map is an in-memory, key-value store, designed for low-latency, and/or multi-process applications, such as trading and financial market applications.
1214

1315
== Features
1416

15-
- **Ultra low latency**: Chronicle Map targets median latency of both read and write queries of less than 1 microsecond in https://github.com/OpenHFT/Chronicle-Map/search?l=java&q=perf&type=Code[certain tests].
17+
- **Ultra low latency**: Chronicle Map targets median latency of both read and write queries of less than 1 µs in https://github.com/OpenHFT/Chronicle-Map/search?l=java&q=perf&type=Code[certain tests].
1618

1719
- **High concurrency**: Write queries scale well up to the number of hardware execution threads in the server.
1820
Read queries never block each other.
@@ -23,7 +25,7 @@ Read queries never block each other.
2325

2426
- Multiple processes can access a Chronicle Map concurrently.
2527
At the same time, the data store is *in-process* for each of the accessing processes.
26-
Out-of-process approach to IPC is simply incompatible with Chronicle Map's median latency target of < 1 μs.
28+
Out-of-process approach to IPC is simply incompatible with Chronicle Map's median latency target of < 1 µs.
2729

2830
- Replication
2931

docs/CM_Replication.adoc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ Neil Clifford
66
:toc-placement: macro
77
:icons: font
88

9+
:lang: en-GB
10+
:source-highlighter: rouge
11+
912
toc::[]
1013

1114
== Enterprise Edition

docs/CM_Tutorial.adoc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ Neil Clifford
66
:toc-placement: macro
77
:icons: font
88

9+
:lang: en-GB
10+
:source-highlighter: rouge
11+
912
toc::[]
1013

1114
This document describes the Chronicle Map tutorial supplied with the project.

docs/CM_Tutorial_Behaviour.adoc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ Neil Clifford
66
:toc-placement: macro
77
:icons: font
88

9+
:lang: en-GB
10+
:source-highlighter: rouge
11+
912
toc::[]
1013

1114
== Customisation
@@ -333,4 +336,3 @@ System.out.println(map2.get("1"));
333336
'''
334337

335338
<<CM_Tutorial.adoc#,Back to Tutorial>>
336-

0 commit comments

Comments
 (0)