Releases: real-logic/agrona
Releases · real-logic/agrona
0.9.7
- Added
ConcurrentCountersManager
for threadsafe counters allocation and reclamation. - Restrict hash based collection to have a load factor in the range to 0.1 to 0.9.
- Restrict the minimum capacity for Maps to be 8.
- Ensure that get() complies with the
Map
contract of returning null if the element is missing, Issue #98. - Make the lifecycle consistent between
AgentRunner
andAgentInvoker
. Agent
can now self terminate by throwing anAgentTerminationException
.- Added
MutableInt
andMutableLong
. - Ability to allocate a counter without string or lambda allocation.
- Added
Agent.onStart()
hook for initialisation. - Added
CachedEpochClock
andCachedNanoClock
. - Added
DynamicCompositeAgent
for runtime adding and removing of Agents into a composite. - Support other character sets than UTF-8 for the
CountersManager
. - Upgrade to ByteBuddy 1.6.14.
- Upgrade to Mockito 2.8.47.
- Upgrade to Checkstyle 8.1.
- Upgrade to sevntu-checks:1.24.1.
- Upgrade to Gradle 4.1.
Binaries can be found here...
0.9.6
- Add
ExpandableDirectByteBuffer
. - Fix behaviour of
Int2IntHashMap
when being used viaMap<Integer, Integer>
interface. - Added
SleepingMillisIdleStrategy
. - Added
AgentInvoker
. - Provide a
NoOpLock
implementation to allow for the eliding of aReentrantLock
. - Improve performance when zeroing our a new or mapped file.
- Reduce use of
String.format()
. - Make
AgentRunner.close()
more robust. - Use platform specific new lines for error messages.
- Clear
missingValue
whenIntHashSet.clear()
is called. - Upgrade to Checkstyle 7.7.
Binaries can be found here...
0.9.5
- Grow
ExpandableArrayBuffer
by the golden ratio rather than 2. - Add the ability to drain queues to a limit rather than completely.
- Use platform specific new line message output.
- Make
AgentRunner.close()
a bit more robust to startup race conditions. - Ensure the
missingValue
is reset whenIntHashSet.clear()
is called. - Upgrade to Mockito 2.7.22.
- Upgrade to Gradle 3.5.
Binaries can be found here...
0.9.4
- Fixed and improved the efficiency of bulk operations on collections with particular focus on
IntHashSet
. - Improve efficiency (x2) of the iterators on hashed collections.
- Improve efficiency of
toString()
methods on collections. - Add an efficient copy constructor to
Int2ObjectHashMap
. - Change
Position
andStatusIndicator
from interfaces to abstract classes to benefit from CHA (Class Hierarchy Analysis). - Added
ArrayListUtil
. - Reduce default load factor in hash based collections from 0.67 to 0.55 to help avoid clustering resulting from linear probing.
- Update hash functions to better spread out a monotonic sequence of keys in collections.
- Increase
AtomicCounter
label length from 124 to 380 bytes to allow for longer more descriptive labels. - Add
equals()
andhashCode()
methods to the collections. - Clarify Javadoc for
RingBuffer.read()
. Issue #95. - Fix missing 0xFF mask on
DirectBufferInputStream.read()
. PR #94. - Upgrade to Checkstyle 7.6.1.
- Upgrade to sevntu-checks 1.23.1.
- Upgrade to Mockito 2.7.21.
- Upgrade to Byte Buddy 1.6.12.
- Upgrade to Gradle 3.4.1.
Binaries can be found here...
0.9.3
- Fixed project code style violations.
- Reworked primitive hash sets so they don't expose the missing value concept and allow all possible values and fix bug relating to collections containing the missing value. Note: This has caused an API change to the
IntHashSet
andLongHashSet
constructors, ensure you check your arguments here. - Java Agent for checking access alignment to direct buffers.
- Upgrade to Checkstyle 7.5.1.
- Upgrade to Byte Buddy 1.6.9.
- Upgrade to Gradle 3.4.
Binaries can be found here...
0.9.2
- Change artifact output from Agrona to agrona because some build systems have issues with case.
- Improve performance of string methods on direct buffers.
- Add primitive counter maps.
- Bug fix primitive to primitive maps when the
missingValue
is used as a key. - Add ASCII codec methods to direct buffers.
- Fix
isEmpty()
on multi-producer queues. - Remove explicit dependency of com.sun.media for those who do not use the
HighResolutionTimer
. - More efficient implementation of
equals()
andhashCode()
on primitive array lists. - More lenient and correct implementation of
equals()
andhashCode()
in hash sets. - Upgrade to Mockito 2.6.8.
- Upgrade to Checkstyle 7.4.
- Upgrade to sevntu-checks 1.23.0.
- Upgrade to Gradle 3.3.
Binaries can be found here...
v0.9.1
- Provide more efficient set based operations on
Set
s when used with the same type. - Notify
Agent
role name when timeout on awaiting shutdown to help debugging. - Added
ShutdownSignalBarrier
that response to SIGINT and SIGTERM. - Allow signal barriers to created on a different thread and be programmaticly signalled.
- Better handle overflow when lists reach maximum size.
- Grow primitive array lists based on golden ratio for better storage reclamation.
- Upgrade to Checkstyle 7.3.
- Upgrade to sevntu-checks 1.22.0.
- Upgrade to Mockito 2.2.29.
- Upgrade to Gradle 3.2.1.
Binaries can be found here...
v0.9.0
v0.5.6
v0.5.5
HighResolutionTimer
for for increasing resolution of sleep periods on Windows.- Make closing of
AtomicCounter
s andPosition
s idempotent. - Bugfix for reading DistinctErrorLong with incorrect label offset.
- Significant performance improvements on consume side of OneToOneRingBuffer.
- ObjectHashSet for open addressing sets of object references.
- Support
remove()
on hash set iterators. - Added
computeIfAbsent()
to primitive maps. - Array backed lists of long and int to avoid boxing.
- Deprecate
TimerWheel
and migrated it to here... - Upgrade to Checkstyle 7.1.2.
- Upgrade to Gradle 3.1.
Binaries can be found here...