Commit Graph
1164 Commits
Author SHA1 Message Date
leventov b98a67211c Optimize Integer, Long and Double default serializers 2016-03-04 22:44:26 +07:00
leventov e677f07d46 Use Data.equivalent() method in KeySearch.keyEquals() (because it could be specialized to perform more efficiently), and switch arguments in Data.bytesEquivalent() usages, so that the first Data instance is more likely to optimized for comparison 2016-03-04 21:20:12 +07:00
leventov 08e21547a8 Optimize CharSequence, StringBuilder and String Chronicle Map's key or value type serialization 2016-03-04 21:19:56 +07:00
leventov 7fa9d23cd0 Remove unused serialVersionUID field 2016-03-04 13:29:11 +07:00
leventov f2ccfca801 Specify query operations 2016-02-28 21:33:31 +07:00
leventov dc4b578bef Lock the segment on the write level right away in HashQuery.doRemove() 2016-02-28 21:32:11 +07:00
leventov e37de00202 Reduce write lock scope as much as possible in relocation and remove operations 2016-02-26 20:55:47 +07:00
leventov ed4589a1f4 Removed unused code from VanillaChronicleHash.basicRecover() method 2016-02-24 16:44:36 +07:00
leventov 1a275288b5 Removed excessive code from ReplicatedMapAbsent.doInsert() method 2016-02-24 16:43:14 +07:00
leventov 820573a684 Add method CompactOffHeapLinearHashTable.readEntryVolatile() method and use it during key search 2016-02-20 16:38:59 +07:00
leventov 1ab147667d Remove unused methods in CompactOffHeapLinearHashTable and HashLookupPos 2016-02-20 16:13:27 +07:00
leventov 7b55f3aefd Pull nextTierIndex field from tier counters area to segment header 2016-02-20 15:43:46 +07:00
leventov a3c83e1c4a Require update lock level for checking entry checksum 2016-02-17 17:50:30 +07:00
leventov 4b58d21953 Refactor MapQuery.putPrefix() method 2016-02-17 17:14:39 +07:00
leventov 3594027fb5 Add HashEntryStages.closeEntry() 2016-02-17 16:55:15 +07:00
leventov 7293e5d7bb Remove REMOVED query state to reduce complexity 2016-02-16 20:40:47 +07:00
leventov 94af186ff5 Don't call MapEntryStages.readExistingEntry() until the key is found in initKeySearch() method 2016-02-16 20:40:45 +07:00
Roman Leventov a24c500bc7 Merge pull request #71 from DevFactory/release/default-encoding-should-not-be-used
Code quality fix - Classes and methods that rely on the default system encoding should not be used.
2016-02-16 18:27:05 +07:00
leventov 05ccde9671 Add dataStoreSize field to Chronicle Map's global mutable state 2016-02-13 21:27:30 +07:00
leventov e5c37a1e8f Update dependencies 2016-02-13 21:22:14 +07:00
Roman Leventov cfc9224d97 Merge pull request #70 from DevFactory/release/general-code-quality-fix-1
General code quality fix-1
2016-02-13 18:17:08 +07:00
leventov f8776281e7 Make comment attribution more clear 2016-02-13 17:59:33 +07:00
Roman Leventov 57881bfdfa Merge pull request #69 from DevFactory/release/collapsable-if-statements-should-be-merged
Code quality fix - Collapsible "if" statements should be merged.
2016-02-13 17:54:51 +07:00
Faisal Hameed 90ba1265ac Fixing squid:S1943- Classes and methods that rely on the default system encoding should not be used. 2016-02-12 10:25:45 +05:00
Faisal Hameed efd3e1f05a Fixing squid:S1066- Collapsible "if" statements should be merged. 2016-02-12 10:12:13 +05:00
Faisal Hameed ae058cdcbf Fixing squid:S1201- Methods named "equals" should override Object.equals(Object) 2016-02-12 09:50:37 +05:00
Faisal Hameed 06e3522d4a Fixing squid:S1596,squid:LowerCaseLongSuffixCheck 2016-02-12 09:45:35 +05:00
leventov 31d362fe2f Use OS.pageSize() instead of 4096 constant in ChronicleMapBuilder.segmentHeaderSize() method 2016-02-10 23:00:33 +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 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 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 040a8d69b6 Simplify entry checksum computation for not replicated ChronicleSet 2016-01-30 17:10:33 +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 b06c64a47c Don't serialize HashSplitting$ForPowerOf2Segments.mask field 2016-01-19 18:34:09 +03:00
leventov bb22985d9c Remove entriesPerSegment field from VanillaChronicleHash 2016-01-19 14:17:38 +03:00
leventov 8055a8b1ae Make private BigSegmentHeader's methods static 2016-01-18 17:39:55 +03:00