Commit Graph
101 Commits
Author SHA1 Message Date
Roman Leventov cf24d82ba2 Merge pull request #154 from Zor-X-L/fallocate
try to preallocate space after RandomAccessFile#setLength()
2018-09-14 18:38:05 +03:00
Dmitry Pisklov 1e1a086ea9 Change of license - update headers 2018-09-14 13:27:49 +01:00
Liu Xiao b6432ef796 use OS.isLinux() instead of Platform.isLinux() for consistency 2018-07-02 09:12:01 +08:00
Liu Xiao e78677120b code refactoring 2018-07-02 09:00:34 +08:00
Liu Xiao 89a35a108e try to preallocate space after RandomAccessFile#setLength() 2018-06-29 09:10:47 +08:00
Paweł Dąbrowski f2064f4db4 re OpenHFT/Chronicle-Map#134 Reflection based access to Cleaner compatible with 8 and 9+ JDKs. 2018-04-23 17:33:43 +02:00
Peter Lawrey e7c7dd8975 Code tidy after code inspections 2018-04-21 17:41:31 +01:00
Peter Lawrey 9323cf28a7 Standard code formatting 2018-04-21 10:49:49 +01:00
Rob Austin 93a642054e updated the bom to the latest map 2017-11-17 15:01:31 +00:00
leventov 3e903775f9 Revert method and field reordering 2017-06-04 12:33:41 -05:00
Peter Lawrey ed8361b5cf Add a fix for enums being written as marshallables. 2017-06-04 14:01:48 +01:00
leventov 7f3cca96d2 Add ChronicleHashCorruption listening interface, and Beta annotation 2017-02-26 21:02:34 -06: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 dad7313bf4 Remove unused VanillaChronicleHash.doClose() 2016-12-11 17:02:24 -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 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 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 a2c8ac4866 Try to close alive ChronicleMaps on JVM shutdown 2016-10-02 18:42:39 +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 ba8227ade1 Use more specific ChronicleHashClosedException instead of IllegalStateException, when methods of ChronicleHash are called after hash.close(). Actualize ChronicleHash.close() javadoc. 2016-08-05 23:22:51 +07:00
leventov f9edc314bb Optimize VanillaChronicleMap.longSize(): don't acquire and close context for each segment, and make it atomic against concurrent map.close() 2016-08-05 23:20:50 +07:00
leventov 4bcdcdb8ce Update license information 2016-07-22 15:05:04 +07:00
leventov 7ada09a8dc Make VanillaChronicleHash.close() to wait until concurrent threads accessing the hash finish their work and don't permit new threads to come while close() is in progress and after that 2016-07-17 23:25:49 +07:00
leventov ed4589a1f4 Removed unused code from VanillaChronicleHash.basicRecover() method 2016-02-24 16:44:36 +07:00
leventov 05ccde9671 Add dataStoreSize field to Chronicle Map's global mutable state 2016-02-13 21:27:30 +07:00
leventov 6b030ab44e Refactor VanillaChronicleHash.allocateTier() method 2016-02-10 22:59:38 +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 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 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 7b9ccac147 Align persisted Chronicle Map creation with Size Prefixed Blob and Self-Bootstrapping Header specifications 2016-02-05 16:46:12 +07:00
leventov 01f15fb9b1 Fix msync JNA implementations and add SimplePersistedMapOverflowTest 2016-02-05 16:35:46 +07:00
leventov 299cd8341c HCOLL-397 msync before pointing to newly created tier bulk in the header 2016-01-31 21:16:42 +07:00
leventov 8891626bb2 Don't force writing the memory to disk in VanillaChronicleHash.close(), release the virtual memory instead 2016-01-31 19:10:18 +07:00
leventov 0d93fb1d22 Rename VanillaChronicleHash.tierHashLookupEntrySize field to tierHashLookupSlotSize, update the memory layout specification, and key hashing and checksum algorithms specification 2016-01-30 19:20:50 +07:00
leventov 69337322ee Simplify VanillaChronicleHash.roundUpMapHeaderSize() because rational behind former complexity (considering buffering in Map header serializer) is 1) gone (because BinaryWire is used instead of built-in serialization 2) was incorrect anyway, because rounding up doesn't prevent problems with buffering 2016-01-21 15:13:29 +03:00
leventov 0ee9b64978 Rename VanillaChronicleHash.segmentSize() to tierSize() 2016-01-20 21:56:36 +03:00
leventov 72ba0e4d57 Move HashSplitting.Splitting.forSegments() method to HashSplitting interface, because interfaces could contain static methods since Java 8 2016-01-19 18:36:28 +03:00
leventov bb22985d9c Remove entriesPerSegment field from VanillaChronicleHash 2016-01-19 14:17:38 +03:00
leventov 56e5e93388 Hide the remaining parts of the replication API from the public eye 2016-01-17 17:08:13 +03:00
leventov dd4c2f67d8 Remove replication frontend implementation in favor of Chronicle Engine 2016-01-15 22:19:52 +03:00
leventov 28eeeb70e7 Remove the complexity and API-transparency of implementing and supporting built-in serializability for marshallers and core implementation classes, as this is replaced with Wire Marshallable 2016-01-14 16:07:22 +03:00
leventov 65afe387e3 Fix grammar and style of the spec 2016-01-09 19:08:16 +03:00