Commit Graph
205 Commits
Author SHA1 Message Date
leventov 739796b90d Improve documentation 2016-03-23 20:09:43 +07:00
leventov e081cb87ba Update Chronicle-Values dependency and try to check if some interface is a valueInterface before attempting to generate implementations 2016-03-12 21:33:23 +07:00
leventov 05ccde9671 Add dataStoreSize field to Chronicle Map's global mutable state 2016-02-13 21:27:30 +07:00
leventov 31d362fe2f Use OS.pageSize() instead of 4096 constant in ChronicleMapBuilder.segmentHeaderSize() method 2016-02-10 23:00:33 +07:00
leventov d7ed5b0153 Simplify parameter flow on VanillaChronicleHash initialization 2016-02-09 15:03:34 +07:00
leventov e2ec9db371 Register Chronicle Map's randomAccessFile cleaner only after all creation/recovery procedures complete, to avoid double release 2016-02-09 14:57:44 +07:00
leventov 001b710084 Raise IOException or ChronicleHashRecoveryFailed exception instead of generic RuntimeException in VanillaChronileHash.initBeforeMapping() method 2016-02-09 14:46:18 +07:00
leventov 189d40d1ca Don't write Chronicle Map ready bit into the header if the Map has just been read from disk without recovery 2016-02-09 14:35:06 +07:00
leventov 00819bff66 Use canonical RandomAccessFiles (=> FileChannels, too) to guarantee fileLocks are not released during critical operation, because some concurrent thread closes fileChannel on different instance of a map 2016-02-07 19:59:47 +07:00
leventov 64cf485b92 Reduce file locking synchronization scope 2016-02-07 19:04:40 +07:00
leventov be58427a9f Synchronize ChronicleMap creation persisted to some file within JVM 2016-02-05 21:47:46 +07:00
leventov e760af06d5 Make recovery procedure to be able to recovery Chronicle Map files with readiness bit not reached the disk 2016-02-05 19:55:10 +07:00
leventov 69638baf04 Use TextWire instead of BinaryWire for Chronicle Map's self-bootstrapping header encoding 2016-02-05 17:11:19 +07:00
leventov 7b9ccac147 Align persisted Chronicle Map creation with Size Prefixed Blob and Self-Bootstrapping Header specifications 2016-02-05 16:46:12 +07:00
leventov 56e5e93388 Hide the remaining parts of the replication API from the public eye 2016-01-17 17:08:13 +03:00
leventov d8a8a3c319 Add ChronicleHashBuilder.createOrRecoverPeristedTo() method 2016-01-17 16:03:55 +03:00
leventov dd4c2f67d8 Remove replication frontend implementation in favor of Chronicle Engine 2016-01-15 22:19:52 +03:00
leventov 85939d6335 Use shortcut ChronicleMapBuilder API in Issue58 2016-01-10 20:51:01 +03:00
leventov 021d77e973 HCOLL-423 throw IllegalStateException if averageKeySize() or averageKey() is called when size is statically known 2016-01-09 19:08:17 +03:00
leventov 97e4c12de1 HCOLL-378 #36 Add ChronicleHashBuilder.recoverPersistedTo() and ChronicleHashInstanceBuilder.recover() functionality 2016-01-04 23:24:39 +03:00
leventov 1221f11097 Make TimeProvider non-extensible and non-configurable; Fix a bug in
ReplicatedQueryAlloc.CleanupAction
2015-12-27 21:32:26 +03:00
leventov 1743f1c694 Replication updates with local identifier shouldn't use the same timestamp, because this allows two different updates which replace each other on different nodes, and don't converge. Extend default TimeProvider precision to nanoseconds, to exclude possibility of 'microsecond overflow' on frequent changes to the same entry 2015-12-26 17:28:35 +03:00
leventov 0ead52335b Don't force cleanup deleted entries on alloc, if it is disabled in this ReplicatedChronicleMap 2015-12-25 20:39:43 +03:00
leventov defaa6e7db More clarity with rounding and double -> long conversions in ChronicleMapBuilder 2015-12-22 17:23:32 +03:00
leventov 832ab5c5da Fix CMUseCasesTest.testMapStringIntegerValueWithoutListMarshallers() 2015-12-22 17:22:42 +03:00
leventov 7154278bb1 Don't account segment filling variance, if there is only one segment 2015-12-21 17:19:39 +03:00
leventov 12c8503434 Javadoc improvements 2015-12-15 14:27:56 +03:00
leventov a11f79f798 Remove map persistence file locking, as unnecessary 2015-12-14 18:49:47 +03:00
leventov 8abe53912a Make max hashLookup load factor (for tiering) greater than max 'normal'
load factor (0.66), to avoid tiering due to natural variance in segment
load. Account non-tiered segments percentile
2015-12-10 17:43:47 +03:00
leventov 2f58bfb399 Replace nextPosToSearchFrom with lowestPossiblyFreeChunk semantically, that allows to avoid searching free chunks though a full tier, when segment is tiered, again and again. Also, make chunk block reallocation in innerDefaultReplaceValue() and putValueDeletedEntry() check it doesn't overflow actualChunksPerSegmentTier 2015-12-07 07:20:47 +03:00
leventov 5d4161eb26 Use BinaryWire instead of TextWire because of predictable whitespace and bytes position after read/write 2015-11-27 16:29:44 +03:00
leventov 4faefe8ca9 Improve FileChannel read/write for persisted ChronicleMaps 2015-11-26 18:49:54 +03:00
leventov fe77012381 Read/Write ChronicleMap's boostrapping header with Wire 2015-11-25 20:37:19 +03:00
leventov 582560ed15 Make ChronicleMapBuilder.entries() config obligatory for in-memory Maps and persistence-creating Maps 2015-11-24 23:50:41 +03:00
leventov 0398f7dfbf HCOLL-406 #58 Don't check size configurations of ChronicleMapBuilder, if existing file is accessed 2015-11-24 15:42:51 +03:00
leventov beec07f9a9 Remove Xstream XML ChronicleMap header serialization (is going to be replaced with Wire serialization soon) 2015-11-23 18:43:17 +03:00
leventov ade2196e72 Java-Lang -> Chronicle-Bytes, Chronicle-Values 2015-11-22 22:10:39 +03:00
leventov 2111d1865c Make all ReplicatedChronicleMap fields transient 2015-10-22 04:28:52 +03:00
leventov 0985eb71a1 Remove metaDataBytes (unused) 2015-10-22 03:45:47 +03:00
leventov 07b75d8b8a Allow ReplicatedChronicleMap to be accessed without configuring replicators 2015-10-22 00:19:59 +03:00
leventov a13bf449d0 Make value and value size configuration obligatory in ChronicleMapBuilder 2015-10-14 17:47:22 +03:00
leventov 7d35346022 Add package-private worstAlignment() config to ChronicleMapBuilder 2015-10-14 17:44:45 +03:00
leventov 7c4b0ed10b Remove tier bulk alignment (as actually not needed) 2015-10-11 17:04:20 +03:00
leventov 0adaaa935d Store segmentHeadersOffset in global Mutable state (according to spec; to make ChronicleMap file independent from current mapping page size) 2015-10-05 10:15:31 +03:00
leventov 21d5342048 Optimize memory in non-persisted case -- don't zero out all memory eagery; remove global mutable state duplication code in VanillaChronicleHash and ReplicatedChronicleMap; make sleep interruptible in OldEntriesCleanup thread; remove old entries cleanup duplicatation tracking; fix bugs 2015-10-04 07:57:12 +03:00
leventov 9d3ff93021 Default removedEntryCleanupTimeout() 1 second -> 1 minute 2015-10-03 05:10:54 +03:00
leventov 05f94965be Refactor TimeProvider 2015-10-02 13:09:15 +03:00
leventov f70d8b262a Add a comment on ChronicleMapBuilder.MAX_SEGMENTS choice 2015-10-02 11:37:18 +03:00
leventov 22b964e069 HCOLL-392 Add entry checksums 2015-09-26 23:34:44 +03:00
leventov 01d24b0ee0 As ChronicleMapBuilder always cloned before Map creation, make 'replicated' an 'instance' field instead of a parameter of almost all methods 2015-09-26 22:04:28 +03:00