denarius-exchange / denarius

An open-source financial exchange
Other
35 stars 5 forks source link

Restore infinite loop #17

Closed analyticbastard closed 10 years ago

analyticbastard commented 10 years ago

Order matching process start upon order arrival causes Denarius to be extremely underperformant due to Clojure's software transactional memory (see #16 ). We need to restore the previous implementation with a way of sleeping and restoring threads to save computation when no matchable exist on the book.

This could be done with the a core.async library. Where the infinite loop reads tokens sent by events modifying the order book.

analyticbastard commented 10 years ago

Even though we write into the async channel each time, there are still a few orders left to execute. I open new issue #20