From 36297987fc98cb93c9b2fdf3af1ac77e530414f4 Mon Sep 17 00:00:00 2001 From: Rob Austin Date: Tue, 30 Sep 2014 09:00:35 +0100 Subject: [PATCH 01/19] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 12d66870f..6cd2af7b6 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,7 @@ Click here to get the [Latest Version Number](http://search.maven.org/#search%7C * [Identifier for Replication](https://github.com/OpenHFT/Chronicle-Map#identifier-for-replication) * [Bootstrapping](https://github.com/OpenHFT/Chronicle-Map#bootstrapping) * [Clustering](https://github.com/OpenHFT/Chronicle-Map#cluster) +* [Stackoverflow](http://stackoverflow.com/tags/chronicle/info) * [Known Issues](https://github.com/OpenHFT/Chronicle-Map#known-issues) * [Development Tasks - JIRA] (https://higherfrequencytrading.atlassian.net/browse/HCOLL) From 400b2564a57b75fecd8014331b253ef042760f6d Mon Sep 17 00:00:00 2001 From: Rob Austin Date: Tue, 30 Sep 2014 09:06:27 +0100 Subject: [PATCH 02/19] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 6cd2af7b6..72ce9c197 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,10 @@ Replicate your Key Value Store across your network, with consistency, durability ``` Click here to get the [Latest Version Number](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22net.openhft%22%20AND%20a%3A%22chronicle-map%22) + +#### Source Code Docuementation +* [JavaDoc](http://openhft.github.io/Chronicle-Map/apidocs) + #### Contents * [Should I use Chronicle Queue or Chronicle Map](https://github.com/OpenHFT/Chronicle-Map#should-i-use-chronicle-queue-or-chronicle-map) From 436b00872cb623bddb1dd0125bbf7e2908afd5a0 Mon Sep 17 00:00:00 2001 From: Rob Austin Date: Tue, 30 Sep 2014 09:07:03 +0100 Subject: [PATCH 03/19] Update README.md --- README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/README.md b/README.md index 72ce9c197..a71cd26e9 100644 --- a/README.md +++ b/README.md @@ -14,15 +14,12 @@ Replicate your Key Value Store across your network, with consistency, durability ``` Click here to get the [Latest Version Number](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22net.openhft%22%20AND%20a%3A%22chronicle-map%22) - -#### Source Code Docuementation -* [JavaDoc](http://openhft.github.io/Chronicle-Map/apidocs) - #### Contents * [Should I use Chronicle Queue or Chronicle Map](https://github.com/OpenHFT/Chronicle-Map#should-i-use-chronicle-queue-or-chronicle-map) * [What is the difference between SharedHashMap and Chronicle Map](https://github.com/OpenHFT/Chronicle-Map#what-is-the-difference-between-sharedhashmap-and-chronicle-map) * [Overview](https://github.com/OpenHFT/Chronicle-Map#overview) +* [JavaDoc](http://openhft.github.io/Chronicle-Map/apidocs) * [Object Construction](https://github.com/OpenHFT/Chronicle-Map#construction) * [Simple Construction](https://github.com/OpenHFT/Chronicle-Map#simple-construction) * [Flow Interface](https://github.com/OpenHFT/Chronicle-Map#flow-interface) From 03561f9c93c226da276f658e0f60bb088819d447 Mon Sep 17 00:00:00 2001 From: Rob Austin Date: Tue, 30 Sep 2014 09:11:46 +0100 Subject: [PATCH 04/19] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index a71cd26e9..40239e0fe 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ *Using Chronicle in production and wish to have professionally supported code - [find out more..](http://openhft.net/support/)* +*We can help you get Chronicle up and running in your organisation, we suggest you invite us in for consultancy, charged on an ad-hoc basis, our [Sales Team](sales@higherfrequencytrading.com) can help discuss the best options tailored to your individual requirements. + # Chronicle Map Replicate your Key Value Store across your network, with consistency, durability and performance. From 07e7937851a5729bcfd130cb6833026089889167 Mon Sep 17 00:00:00 2001 From: Rob Austin Date: Tue, 30 Sep 2014 09:12:06 +0100 Subject: [PATCH 05/19] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 40239e0fe..fcb191549 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -*Using Chronicle in production and wish to have professionally supported code - [find out more..](http://openhft.net/support/)* +*We can help you get Chronicle up and running in your organisation, we suggest you invite us in for consultancy, charged on an ad-hoc basis, our [Sales Team](sales@higherfrequencytrading.com) can help discuss the best options tailored to your individual requirements.* -*We can help you get Chronicle up and running in your organisation, we suggest you invite us in for consultancy, charged on an ad-hoc basis, our [Sales Team](sales@higherfrequencytrading.com) can help discuss the best options tailored to your individual requirements. +*Using Chronicle in production and wish to have professionally supported code - [find out more..](http://openhft.net/support/)* # Chronicle Map From 35f873b67aebc3447f935b1c71434f245b6550d6 Mon Sep 17 00:00:00 2001 From: Rob Austin Date: Tue, 30 Sep 2014 09:12:44 +0100 Subject: [PATCH 06/19] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fcb191549..5839b94c6 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -*We can help you get Chronicle up and running in your organisation, we suggest you invite us in for consultancy, charged on an ad-hoc basis, our [Sales Team](sales@higherfrequencytrading.com) can help discuss the best options tailored to your individual requirements.* +*We can help you get Chronicle up and running in your organisation, we suggest you invite us in for consultancy, charged on an ad-hoc basis, our [We](sales@higherfrequencytrading.com) can help discuss the best options tailored to your individual requirements.* *Using Chronicle in production and wish to have professionally supported code - [find out more..](http://openhft.net/support/)* From b212d0a4016d14054dc02302b45c188d9e457bc8 Mon Sep 17 00:00:00 2001 From: Rob Austin Date: Tue, 30 Sep 2014 09:12:55 +0100 Subject: [PATCH 07/19] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5839b94c6..c906a4274 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -*We can help you get Chronicle up and running in your organisation, we suggest you invite us in for consultancy, charged on an ad-hoc basis, our [We](sales@higherfrequencytrading.com) can help discuss the best options tailored to your individual requirements.* +*We can help you get Chronicle up and running in your organisation, we suggest you invite us in for consultancy, charged on an ad-hoc basis, [We](sales@higherfrequencytrading.com) can help discuss the best options tailored to your individual requirements.* *Using Chronicle in production and wish to have professionally supported code - [find out more..](http://openhft.net/support/)* From 9496f31fbfa1de2f5331b4ca06119383e474be1d Mon Sep 17 00:00:00 2001 From: Rob Austin Date: Tue, 30 Sep 2014 09:14:10 +0100 Subject: [PATCH 08/19] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c906a4274..e3e908efe 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ *We can help you get Chronicle up and running in your organisation, we suggest you invite us in for consultancy, charged on an ad-hoc basis, [We](sales@higherfrequencytrading.com) can help discuss the best options tailored to your individual requirements.* -*Using Chronicle in production and wish to have professionally supported code - [find out more..](http://openhft.net/support/)* +*Or you may already be using and wish to have professionally supported - [find out more..](http://openhft.net/support/)* # Chronicle Map From 32e47c5d72c00bc56999cc14371260894a26c195 Mon Sep 17 00:00:00 2001 From: Rob Austin Date: Tue, 30 Sep 2014 09:15:07 +0100 Subject: [PATCH 09/19] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e3e908efe..f951e7beb 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ *We can help you get Chronicle up and running in your organisation, we suggest you invite us in for consultancy, charged on an ad-hoc basis, [We](sales@higherfrequencytrading.com) can help discuss the best options tailored to your individual requirements.* -*Or you may already be using and wish to have professionally supported - [find out more..](http://openhft.net/support/)* +*Or you may already be using Chronicle and just want some help - [find out more..](http://openhft.net/support/)* # Chronicle Map From 26838f39662e416bce3ba56ff18af1d6011962ef Mon Sep 17 00:00:00 2001 From: Rob Austin Date: Tue, 30 Sep 2014 09:17:03 +0100 Subject: [PATCH 10/19] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f951e7beb..874a26008 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -*We can help you get Chronicle up and running in your organisation, we suggest you invite us in for consultancy, charged on an ad-hoc basis, [We](sales@higherfrequencytrading.com) can help discuss the best options tailored to your individual requirements.* +*We can help you get Chronicle up and running in your organisation, we suggest you invite us in for consultancy, charged on an ad-hoc basis, we can discuss the best options tailored to your individual requirements.* -[Contact Us](sales@higherfrequencytrading.com) *Or you may already be using Chronicle and just want some help - [find out more..](http://openhft.net/support/)* From 95935c14168666d92a51a44ae1172c8aa3a81921 Mon Sep 17 00:00:00 2001 From: Rob Austin Date: Tue, 30 Sep 2014 09:17:17 +0100 Subject: [PATCH 11/19] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 874a26008..f87d4c464 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -*We can help you get Chronicle up and running in your organisation, we suggest you invite us in for consultancy, charged on an ad-hoc basis, we can discuss the best options tailored to your individual requirements.* -[Contact Us](sales@higherfrequencytrading.com) +*We can help you get Chronicle up and running in your organisation, we suggest you invite us in for consultancy, charged on an ad-hoc basis, we can discuss the best options tailored to your individual requirements. - [Contact Us](sales@higherfrequencytrading.com)* *Or you may already be using Chronicle and just want some help - [find out more..](http://openhft.net/support/)* From cc55c6cd604959bb0d44fc1f1083c9204d1b942f Mon Sep 17 00:00:00 2001 From: Rob Austin Date: Wed, 1 Oct 2014 09:50:27 +0100 Subject: [PATCH 12/19] Update README.md --- README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/README.md b/README.md index f87d4c464..177827d5b 100644 --- a/README.md +++ b/README.md @@ -445,6 +445,8 @@ map = clusterReplicatorBuilder.create((short) 1, builder); #### Known Issues +##### Memory issue on Windows + Chronicle map lets you assign a map larger than your available memory, If you were to create more entries than the available memory, chronicle map will page the segments that are accessed least to disk, and load the recently used segments into available memory. This feature lets you work with extremely large maps, it works brilliantly on Linux but unfortunately, this paging feature is not supported on Windows, if you use more memory than is physically available on windows you will experience the following error : ```java @@ -456,6 +458,23 @@ j net.openhft.lang.io.AbstractBytes.tryLockNanosLong(JJ)Z+41 j net.openhft.collections.AbstractVanillaSharedHashMap$Segment.lock()V+12 ``` +##### Storing Lots of Entries + +If you store a lot of entries in chronicle map you will see this exception, this is not an issue, the map is just full. +```java +Caught: java.lang.IllegalStateException: VanillaShortShortMultiMap is full +java.lang.IllegalStateException: VanillaShortShortMultiMap is full + at net.openhft.collections.VanillaShortShortMultiMap.nextPos(VanillaShortShortMultiMap.java:226) + at net.openhft.collections.AbstractVanillaSharedHashMap$Segment.put(VanillaSharedHashMap.java:834) + at net.openhft.collections.AbstractVanillaSharedHashMap.put0(VanillaSharedHashMap.java:348) + at net.openhft.collections.AbstractVanillaSharedHashMap.put(VanillaSharedHashMap.java:330) +``` + +Chronicle Map doesn't resize automatically. It is assumed you will make the virtual size of the map larger than you need and it will handle this reasonably efficiently. With the default settings you will run out of space between 1 and 2 million entries. + +You should set the .entries(4000000) and .entrySize(??) to the size of the key+value you will use. + + # Example : Replicating data between process on different servers Lets assume that we had two server, lets call them server1 and server2, if we wished to share a map between them, this is how we could set it up From c8acaf64599a8d50a1391f784ee739c5a173b63f Mon Sep 17 00:00:00 2001 From: Rob Austin Date: Wed, 1 Oct 2014 09:53:58 +0100 Subject: [PATCH 13/19] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 177827d5b..0d5b840cd 100644 --- a/README.md +++ b/README.md @@ -458,9 +458,10 @@ j net.openhft.lang.io.AbstractBytes.tryLockNanosLong(JJ)Z+41 j net.openhft.collections.AbstractVanillaSharedHashMap$Segment.lock()V+12 ``` -##### Storing Lots of Entries +##### Chroncle Map is Full + +If you fill Chronicle Map it will throw this error. -If you store a lot of entries in chronicle map you will see this exception, this is not an issue, the map is just full. ```java Caught: java.lang.IllegalStateException: VanillaShortShortMultiMap is full java.lang.IllegalStateException: VanillaShortShortMultiMap is full From b8740c29880e2b40658d4374174d35597f94ed52 Mon Sep 17 00:00:00 2001 From: Rob Austin Date: Wed, 1 Oct 2014 09:56:16 +0100 Subject: [PATCH 14/19] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0d5b840cd..53ce6df00 100644 --- a/README.md +++ b/README.md @@ -458,9 +458,9 @@ j net.openhft.lang.io.AbstractBytes.tryLockNanosLong(JJ)Z+41 j net.openhft.collections.AbstractVanillaSharedHashMap$Segment.lock()V+12 ``` -##### Chroncle Map is Full +##### When Chronicle Map is Full -If you fill Chronicle Map it will throw this error. +It will throw this exception : ```java Caught: java.lang.IllegalStateException: VanillaShortShortMultiMap is full @@ -473,7 +473,7 @@ java.lang.IllegalStateException: VanillaShortShortMultiMap is full Chronicle Map doesn't resize automatically. It is assumed you will make the virtual size of the map larger than you need and it will handle this reasonably efficiently. With the default settings you will run out of space between 1 and 2 million entries. -You should set the .entries(4000000) and .entrySize(??) to the size of the key+value you will use. +You should set the .entries(4000000) and .entrySize(..) to the size of the key+value you require. # Example : Replicating data between process on different servers From ccbbea6fbe9f8cf7d93676bdafb4e412e83046ec Mon Sep 17 00:00:00 2001 From: Rob Austin Date: Wed, 1 Oct 2014 09:57:44 +0100 Subject: [PATCH 15/19] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 53ce6df00..5a2ba29b3 100644 --- a/README.md +++ b/README.md @@ -473,7 +473,7 @@ java.lang.IllegalStateException: VanillaShortShortMultiMap is full Chronicle Map doesn't resize automatically. It is assumed you will make the virtual size of the map larger than you need and it will handle this reasonably efficiently. With the default settings you will run out of space between 1 and 2 million entries. -You should set the .entries(4000000) and .entrySize(..) to the size of the key+value you require. +You should set the .entries(..) and .entrySize(..) to those you require. # Example : Replicating data between process on different servers From 030228112497fdf4edf1615ae10d60f3add6d472 Mon Sep 17 00:00:00 2001 From: Rob Austin Date: Wed, 1 Oct 2014 14:51:08 +0100 Subject: [PATCH 16/19] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5a2ba29b3..779e4300f 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Click here to get the [Latest Version Number](http://search.maven.org/#search%7C * [What is the difference between SharedHashMap and Chronicle Map](https://github.com/OpenHFT/Chronicle-Map#what-is-the-difference-between-sharedhashmap-and-chronicle-map) * [Overview](https://github.com/OpenHFT/Chronicle-Map#overview) * [JavaDoc](http://openhft.github.io/Chronicle-Map/apidocs) -* [Object Construction](https://github.com/OpenHFT/Chronicle-Map#construction) +* [Getting Started](https://github.com/OpenHFT/Chronicle-Map#construction) * [Simple Construction](https://github.com/OpenHFT/Chronicle-Map#simple-construction) * [Flow Interface](https://github.com/OpenHFT/Chronicle-Map#flow-interface) * [Sharing Data Between Two or More Maps](https://github.com/OpenHFT/Chronicle-Map#sharing-data-between-two-or-more-maps) From 4902630a2a0c8c638d88b9002fb6941adfe78fd4 Mon Sep 17 00:00:00 2001 From: Rob Austin Date: Wed, 1 Oct 2014 14:54:19 +0100 Subject: [PATCH 17/19] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 779e4300f..2d186b7d3 100644 --- a/README.md +++ b/README.md @@ -88,9 +88,9 @@ Chronicle queue is designed to send every update. If your network can't do this #### What is the difference between SharedHashMap and Chronicle Map The only difference is Chronicle Map targets java 8, and SharedHashMap targets java 7. Effectively SharedHashMap has just been renamed to ChronicleMap, to further enrich the Chronicle product suite. In addition, The original Chronicle has been renamed to Chronicle Queue. -## Construction +One of the main differences between chronicle and ConcurrentHashMap, is how you go about creating an instance see the getting started guide below for details. -One of the main differences is how you go about creating an instance of the Chronicle Map. +## Getting Started ### Simple Construction From 6abe8449a74efb1cba30842a61c748666861044f Mon Sep 17 00:00:00 2001 From: Rob Austin Date: Wed, 1 Oct 2014 14:55:36 +0100 Subject: [PATCH 18/19] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2d186b7d3..42818a674 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Click here to get the [Latest Version Number](http://search.maven.org/#search%7C * [What is the difference between SharedHashMap and Chronicle Map](https://github.com/OpenHFT/Chronicle-Map#what-is-the-difference-between-sharedhashmap-and-chronicle-map) * [Overview](https://github.com/OpenHFT/Chronicle-Map#overview) * [JavaDoc](http://openhft.github.io/Chronicle-Map/apidocs) -* [Getting Started](https://github.com/OpenHFT/Chronicle-Map#construction) +* [Getting Started Guide](https://github.com/OpenHFT/Chronicle-Map#getting-started) * [Simple Construction](https://github.com/OpenHFT/Chronicle-Map#simple-construction) * [Flow Interface](https://github.com/OpenHFT/Chronicle-Map#flow-interface) * [Sharing Data Between Two or More Maps](https://github.com/OpenHFT/Chronicle-Map#sharing-data-between-two-or-more-maps) From 7c31008d046f576b223bb86246af75f564fa1903 Mon Sep 17 00:00:00 2001 From: Rob Austin Date: Wed, 1 Oct 2014 15:34:54 +0100 Subject: [PATCH 19/19] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 42818a674..f17b80951 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,7 @@ If you have; Chronicle queue is designed to send every update. If your network can't do this something has to give. You could compress the data but at some point you have to work within the limits of your hardware or get more hardware. Chronicle Map on the other hand sends the latest value only. This will naturally drop updates and is a more natural choice for low bandwidth connections. #### What is the difference between SharedHashMap and Chronicle Map -The only difference is Chronicle Map targets java 8, and SharedHashMap targets java 7. Effectively SharedHashMap has just been renamed to ChronicleMap, to further enrich the Chronicle product suite. In addition, The original Chronicle has been renamed to Chronicle Queue. +Effectively SharedHashMap has just been renamed to ChronicleMap, to further enrich the Chronicle product suite. In addition, The original Chronicle has been renamed to Chronicle Queue. One of the main differences between chronicle and ConcurrentHashMap, is how you go about creating an instance see the getting started guide below for details.