[SOLVED] Java javascript # State tracking design

$25

File Name: Java_javascript_#_State_tracking_design.zip
File Size: 367.38 KB

5/5 - (1 vote)

# State tracking design

objectPool
constructor takes options for factory methods
create [required]
destroy [required]
validate [optional]
activate [optional, new]
passivate [optional, new]

internals
idleObjects : linkedlist
allObjects : object where, key = object, value = wrapper; what is the equivalent of a Java ConcurrentHashMap in javascript
this holds all objects associated with the pool in any state apart from destroyed.
use https://www.npmjs.com/package/hashmap

pooledObject
wraps an object/resource
id (internal)
resource/object
state
createTime
lastBorrowTime
lastUseTime
lastReturnTime
borrowCount

pooled object states
IDLE : in the queue, not in use
ALLOCATED : in use
EVICTION : In the queue, currently being tested for possible eviction.
EVICTION_RETURN_TO_HEAD : Not in the queue, currently being tested for possible eviction. An
attempt to borrow the object was made while being tested which removed it
from the queue. It should be returned to the head of the queue once
eviction testing completes.
VALIDATION : In the queue, currently being validated
VALIDATION_PREALLOCATED : Not in queue, currently being validated. The object was borrowed while
being validated and since testOnBorrow was configured, it was removed
from the queue and pre-allocated. It should be allocated once validation
completes.
VALIDATION_RETURN_TO_HEAD :Not in queue, currently being validated. An attempt to borrow the object
was made while previously being tested for eviction which removed it from
the queue. It should be returned to the head of the queue once validation
completes.
INVALID : Failed maintenance (e.g. eviction test or validation) and will be / has been destroyed
ABANDONED : Deemed abandoned, to be invalidated.
RETURNING : Returning to the pool

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[SOLVED] Java javascript # State tracking design
$25