Skip to content

Releases: Tuinity/LeafPile

1.0.0

Choose a tag to compare

@Spottedleaf Spottedleaf released this 19 Jun 22:32

Initial release of LeafPile.

0.0.10

Choose a tag to compare

@Spottedleaf Spottedleaf released this 02 Apr 22:36

0.0.9

Choose a tag to compare

@Spottedleaf Spottedleaf released this 02 Apr 22:18

0.0.8

Choose a tag to compare

@Spottedleaf Spottedleaf released this 21 Dec 21:37
  • Rename the old ScheduledTaskThreadPool class to EDFSchedulerThreadPool and remove its deprecation.
  • Abstract scheduler interface to SchedulableTick and Scheduler
  • Move DEADLINE_NOT_SET to TimeUtil
  • Add a simple interface, OSNuma, to interact with the OS's NUMA and affinity APIs
  • Add a new work stealing scheduler (StealingScheduledThreadPool) which, unlike the EDF scheduler, supports NUMA aware scheduling, intermediate task execution, and dynamic thread adjustment.

0.0.7

Choose a tag to compare

@Spottedleaf Spottedleaf released this 14 Nov 01:37
  • Downgrade fastutil dependency

0.0.6

Choose a tag to compare

@Spottedleaf Spottedleaf released this 14 Nov 00:59
  • Notify all workers when adjusting thread count
  • Ensure queued task in PrioritisedTaskQueue is always present in queue

This release should fix BalancedPrioritisedThreadPool becoming idle when there were tasks still left to execute.

0.0.5

Choose a tag to compare

@Spottedleaf Spottedleaf released this 19 Sep 18:48
  • Correctly set newTable field in ConcurrentLong2ReferenceChainedHashTable

0.0.4

Choose a tag to compare

@Spottedleaf Spottedleaf released this 19 Sep 04:46
  • Add AreaDependentQueue
    AreaDependentQueue is capable of dynamically ordering tasks
    scheduled (possibly) onto overlapping x/y coordinates. For
    a given coordinate, only one task at most is being executed.
  • Add stream id (long) to PrioritisedExecutor
    This will be later used by thread pools that may perform different
    scheduling depending on the stream id. For example, it may be
    possible that tasks with a lower stream id are executed before
    other tasks, or that tasks with different stream ids are shared
    equally. At this stage, I've not yet decided.
  • Add BalancedPrioritisedThreadPool
    This thread pool will share time equally between groups but will
    not share time equally between queues within the groups. The task
    execution order is determined by priority then by suborder. This
    results is more fair task execution as determined by queue size
    (i.e more tasks in one queue should generally receive more time).
  • Rewrite spinwait logic in PrioritisedQueueExecutorThread
    1. Do not yield and park immediately upon emptying the queue
      Instead, set the parked field. This allows wakeup to occur if
      a task is queued while short parking.
    2. Only spinwait if configured to
  • Fix PrioritisedQueueExecutorThread#close(wait=true, ...) not waiting
    Need to only break when the thread dies. Forgot to invert the alive
    check.
  • Add COWArrayList
    The underlying array is not Object[] but is actually of the
    element type. The list also works only through reference equality
    as well. The array is retrievable for faster iteration.
  • Change coordinates from x/z to x/y coordinates in ReentrantAreaLock
  • Use AtomicLong for size is ConcurrentLong2ReferenceChainedHashTable
    We really don't see any benefit from using LongAdder since on
    additions we need to sum over the entire adder (defeating the
    purpose of splitting the additions for parallelism). There should
    be a minor improvement in put/remove performance, even in contended
    scenarios.
  • Remove ConcurrentUtil#rethrow
    Use ThrowUtil#throwUnchecked
  • Remove PrioritisedThreadPool
    Use BalancedPrioritisedThreadPool, or in the future even
    StreamOrderedThreadPool
  • Remove Validate class
  • Add ConcurrentLong2LongChainedHashTable
  • Only use acquire ordering when retrieving bin entries for concurrent tables
    This doesn't improve performance on x86. However, on other platforms
    there may be a performance improvement.

0.0.3

Choose a tag to compare

@Spottedleaf Spottedleaf released this 11 Jan 14:22

Add basic values() and entrySet() view for concurrent long map

0.0.2

Choose a tag to compare

@jpenilla jpenilla released this 04 Dec 02:54
ed6dd25

Initial release