Commit Graph
1247 Commits
Author SHA1 Message Date
epickrram ef3e0bbe69 allow Byteable instances that have maxSize() determined at runtime 2017-07-10 10:27:40 +01:00
Peter Lawrey 4b8b232f0d chronicle-bom 1.14.28-SNAPSHOT for all modules 2017-07-01 10:27:43 +01:00
Marc Strapetz ffab7840dd BigSegmentHeader: system property to specify LOCK_TIMEOUT_SECONDS
The default of 60 seconds may be too long if using Chronicle-Map in a
way that prevents real interprocess dead locks, i.e.
InterProcessDeadLockException can only be raised if a previous
Chronicle-Map process has been killed while holding a lock. In this
case, a timeout of e.g 5 seconds (or less) is sufficient to detect the
problem and possibly decide to invoke a recovery.
2017-06-06 19:42:43 +02:00
Marc Strapetz 957288bd5f BigSegmentHeader: comment fixed 2017-06-06 19:38:33 +02:00
leventov 3e903775f9 Revert method and field reordering 2017-06-04 12:33:41 -05:00
leventov 5c8c50ba6b Throw IllegalArgumentException in ConstantSizeMarshaller.writeSize(), if provided size is not equal to the constant size 2017-06-04 11:52:30 -05:00
leventov 88da33fc10 Doc fixes and mark ChronicleHashBuilder.create* methods which accept ChronicleHashCorruption.Listener as Beta 2017-06-04 11:52:30 -05:00
Peter Lawrey ed8361b5cf Add a fix for enums being written as marshallables. 2017-06-04 14:01:48 +01:00
leventov 3291a43c95 Use ThreadHints.onSpinWait() in BigSegmentHeader 2017-03-06 00:10:01 -06:00
leventov 7f3cca96d2 Add ChronicleHashCorruption listening interface, and Beta annotation 2017-02-26 21:02:34 -06:00
leventov b9893ffab7 Add ChronicleHashBuilder.createOrRecoverPersistedTo(file, sameLibraryVersion) method and emphasize in docs, that the boolean flag in the 'recoverPersistedTo' family of methods couldn't be true, if the version of the library, with which the Chronicle Map persisted to the given file was created, could be different from the present version of the Chronicle Map library 2017-02-19 22:02:38 -06:00
leventov 59a2cd8d80 Don't overwrite Chronicle Map header, if it's checksum is correct 2017-02-19 21:21:46 -06:00
leventov 8f9de993d0 Catch Throwable instead of Exception and convert to ChronicleHashRecoveryFailedException in ChronicleMapBuilder.openWithExistingFile() 2017-02-19 20:19:33 -06:00
leventov c90e065e71 Ensure compatibility with 3.12 and Chronicle Maps created with Integer key, add ChronicleMap3_12IntegerKeyCompatibilityTest 2017-02-19 17:20:09 -06:00
leventov d31d974e2e Update to chronicle-algorithms 1.1.8 with a bug fix and add NegativeIntegerKeyTest 2017-02-18 15:02:52 -06:00
leventov 7c57d67266 More specific Javadoc for ChronicleHashBuilder.aligned64BitMemoryOperationsAtomic() 2017-01-21 15:57:05 -06:00
leventov 1c600120a5 Update chronicle-bom and third-party-bom dependencies to the latest versions 2017-01-07 19:52:30 +08:00
leventov 8875a94dc6 Copy VanillaGlobalMutableState29425Native and ReplicatedGlobalMutableState29425Native into source tree to practically improve user experience in OSGi/container/module environments until Chronicle Values learn how to generate classes in compile time 2016-12-27 16:03:48 +07:00
leventov d1fd590be1 In methods which return contexts, wrap all code after context is obtained in try-catch and try to close the context if any exception occurred, to prevent context leaks 2016-12-27 15:38:52 +07:00
leventov 842064dca5 Clean serializers and ThreadLocal fields of VanillaChronicleMap on close() 2016-12-27 15:50:24 +08:00
leventov fa70e216bd Improvements to ChronicleMap resource closing subsystem, making it more robust in exotic scenarios (OutOfMemoryError, StackOverflowError) and be able to close after incorrect attempt to close when a context is open in the same thread 2016-12-26 14:27:32 +08:00
leventov 4bb2decc34 Make OldDeletedCleanupThread daemon and don't wait for this thread to cease in ReplicatedChronicleMap.close(), because if the thread is already dead by the time cleanupThread.join() is called, this call hangs 2016-12-26 14:27:32 +08:00
leventov dad7313bf4 Remove unused VanillaChronicleHash.doClose() 2016-12-11 17:02:24 -06:00
leventov 167a15f985 Cache VanillaChronicleMap.identityString lazily (after initOwnTransients()) because file() is not set by the time initOwnTransients() is called 2016-12-10 23:19:43 -06:00
leventov 0ca612ee6d Fix ChronicleMap leak through Closeable in ChronicleMapBuilder.establishCleanupThread() 2016-12-10 23:19:43 -06:00
leventov fafc50f89d Close wrapped value after each iteration in MapSegmentIteration 2016-12-10 21:03:20 -06:00
leventov e0b534af23 Move all ChronicleMap closing logic into independent ChronicleHashResources. Reference contexts from ThreadLocals via ContextHolders and clear references to contexts on closing ChronicleMap. Make some closing procedures more paranoid than they were. Cache ChronicleMap's identityString and always return the same String from toIdentityString(). Add Throwables.returnOrSuppress(). 2016-12-10 21:03:20 -06:00
leventov 9e88392db6 Rename ChronicleHashResourceReleaser to ChronicleHashResources 2016-12-10 21:03:20 -06:00
leventov 852e503607 In serializers which use elastic Bytes, inherit Bytes' capacity on copy() to avoid unnecessary resizes in each copy 2016-11-20 19:36:00 -06:00
leventov 37d82f290a Review Exception throwing and handling throughtput the library, create specific InterProcessDeadLockException for Chronicle Map deadlocks 2016-11-19 19:14:53 -06:00
leventov 5ae69c3035 Fix #103 (a typo) 2016-11-12 15:49:08 -06:00
leventov d76f838adb Add ability to configure name for all ChronicleMaps and ChronicleSets via ChronicleHashBuilder.name(). Add ChronicleHash.toIdentityString() 2016-11-12 15:43:27 -06:00
leventov e7b2836e2a Impove comments in VanillaChronicleHash 2016-11-05 17:23:48 -06:00
leventov 406bd59848 Remove VanillaChronicleHash from OnExitHook on close() 2016-11-05 17:19:07 -06:00
leventov 9723fcd689 Do VanillaChronicleHash.msync() only when ChronicleHash is persisted 2016-11-05 15:08:54 -06:00
leventov 9a2bb31b66 Add ChronicleHash.offHeapMemoryUsed() method; Centralized management of all direct memory and file resources of ChronicleMap in one Cleaner 2016-11-05 15:08:45 -06:00
leventov 68c29c4c54 Use on-heap elastic bytes in DataAccess implementation in order not to pollute direct memery with small allocations, reallocations and associated Cleaners, when many ChronicleMaps are created in the JVM. Also, NativeBytes reallocation granularity is 4KB, that is too much for likely small keys and values. 2016-11-05 15:06:44 -06:00
leventov 578c6638ba Add Throwables utilities, inspired by Guava 2016-10-30 13:47:34 -06:00
leventov a2c8ac4866 Try to close alive ChronicleMaps on JVM shutdown 2016-10-02 18:42:39 +03:00
leventov 4b1f11dd3a Canonicalize file to where ChronicleMaps are persisted, to ensure CanonicalRandomAccessFiles work in the face of symbolic links provided to ChronicleMapBuilder (but unfortunately not hard links) 2016-10-01 22:37:47 +03:00
leventov 3b22bb5547 Ensure safe publication of ChronicleMaps, created in ChronicleMapBuilder 2016-10-01 22:09:54 +03:00
leventov 1825fc61ee More correctly formulated reasoning of loadFence() in ThreadLocalState.unlockContextLocally() 2016-10-01 22:06:14 +03:00
leventov 223b2d4329 Prevent leaks of ChronicleMaps though thread local contexts and supplimental OldDeletedEntriesCleanupThread, add MemoryLeakTest 2016-10-01 20:33:16 +03:00
leventov 8981ae2fd0 More comments in ChronicleMapBuilder 2016-10-01 20:33:16 +03:00
leventov 126f091113 Add missing private constructor to CanonicalRandomAccessFiles to prohibit instantiation of this class 2016-10-01 20:33:16 +03:00
leventov b4258fa263 Don't use synrhonized on a public object (the map itself) in ReplicatedChronicleMap.close() 2016-10-01 20:33:16 +03:00
leventov d04b7cfc20 Make OldDeletedEntriesCleanup a Thread instead of Runnable to be executed in a single-threaded executor 2016-10-01 20:33:16 +03:00
leventov f93001dc8e Minor fixes in VanillaChronicleMap and ReplicatedChronicleMap 2016-10-01 20:33:16 +03:00
leventov ec919b94eb More clarifying comments in ThreadLocalState.closeContext() 2016-10-01 20:33:16 +03:00
leventov 95ca197444 Move ThreadLocalState.iterationContextLockedInThisThread after static members in this class 2016-10-01 20:33:16 +03:00