Hi Jamie,
It is because of so called starvation issue.

I will provide small fix today.
It is not deadlock but because of intensive use of wal in use places this
method freeze.

We eventually move to lock free  or at least high lock granularity approach
so all such mt bottlenecks will eventually disappear.


On Fri, Jul 18, 2014 at 6:58 PM, Jamie <[email protected]> wrote:

> Greetings!
>
> We are seeing  strange behaviour where by Orient DB is blocked
> indefinitely at OWriteAheadLog.getFlushedLSN(). Is this normal?
>
> Stacks at 05:57:35 PM (uptime 1m 19s)
>
>
> OrientDB Write Cache Flush Task (archiva) [BLOCKED] CPU time: 1d 15h 5m 31s
>
> com.orientechnologies.orient.core.storage.impl.local.paginated.wal.OWriteAheadLog.getFlushedLSN()
> com.orientechnologies.orient.core.index.hashindex.local.cache.OWOWCache.flushPage(long,
> long, ODirectMemoryPointer)
> com.orientechnologies.orient.core.index.hashindex.local.cache.OWOWCache.access$1000(OWOWCache,
> long, long, ODirectMemoryPointer)
> com.orientechnologies.orient.core.index.hashindex.local.cache.OWOWCache$PeriodicFlushTask.iterateBySubRing(NavigableMap,
> int, int, boolean)
> com.orientechnologies.orient.core.index.hashindex.local.cache.OWOWCache$PeriodicFlushTask.flushRing(int,
> int, boolean)
>
> com.orientechnologies.orient.core.index.hashindex.local.cache.OWOWCache$PeriodicFlushTask.run()
> java.lang.Thread.run()
>
>
> OrientDB Write Cache Flush Task (archiva) <--- Frozen for at least 2m 6s
>
> com.orientechnologies.orient.core.storage.impl.local.paginated.wal.OWriteAheadLog.getFlushedLSN()
> com.orientechnologies.orient.core.index.hashindex.local.cache.OWOWCache.flushPage(long,
> long, ODirectMemoryPointer)
> com.orientechnologies.orient.core.index.hashindex.local.cache.OWOWCache.access$1000(OWOWCache,
> long, long, ODirectMemoryPointer)
> com.orientechnologies.orient.core.index.hashindex.local.cache.OWOWCache$PeriodicFlushTask.iterateBySubRing(NavigableMap,
> int, int, boolean)
> com.orientechnologies.orient.core.index.hashindex.local.cache.OWOWCache$PeriodicFlushTask.flushRing(int,
> int, boolean)
>
> com.orientechnologies.orient.core.index.hashindex.local.cache.OWOWCache$PeriodicFlushTask.run()
> java.util.concurrent.Executors$RunnableAdapter.call()
> java.util.concurrent.FutureTask.runAndReset()
>
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor$ScheduledFutureTask)
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run()
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker)
> java.util.concurrent.ThreadPoolExecutor$Worker.run()
> java.lang.Thread.run()
>
>
>  --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "OrientDB" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Best regards,
Andrey Lomakin.

Orient Technologies
the Company behind OrientDB

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to