Copyright © 2005-2011 Transactum

Questions and Answers

 

Question 1 : To execute 1000 process instances, Transactum uses two CPU cores. Since for the same task alternative platforms use more CPUs, they should provide higher throughput. Is that correct?

Answer : No.

Performance speed of a system with parallel and sequentially executed elements is limited by the speed of its sequential fraction. Parallel business process instances, executed on 1 CPU or on 1000 CPUs, have common sequential part - execution of database transactions, which is the throughput-limiting factor. Each of the following approaches provides a degree of parallelism in database transactions:

  • Database partitioning
  • Running database partitions on multiple pieces of hardware
  • Chopping large serialized database transactions into shorter serialized steps.

Transactum Process Engine eliminates the necessity of two-phase locking and ensures process consistency by taking the business logic out of database transactions and handling semantic failures with branching the process flow. It guarantees the atomic execution of chopped transactions chain with implementation of just open nested transactions.

 

Question 2 : Could you explain what you can do with C++ threads and not with the .NET threads?

Answer : The objective of .Net design is faster time to market paid with negligible increase of latency. Threading with .Net could perform everything C++ threading can, except:

  • Direct execution of COM-encapsulated binary code. For example, sensitive algorithms might have to be handed to application developers in binary form only.

  • Creation of lean threads that do not exhaust system resources with chunky building blocks – OS APIs and synchronization & signaling OS primitives wrapped in classes. In C#, instantiation of these classes carries considerable overhead. In contrast, C++ permits writing of tight code with negligible memory overhead.

  • Scaling up the throughput of a business process application 10 or more times on the same hardware and with virtually the same latency. (Experimentally confirmed with Transactum.)

.Net was designed at the time when Intel was regularly doubling the CPU frequency. Now, the free lunch is over. Increasing the number of CPU cores leads to memory contention and using more CPU cores to run .Net threads cannot fully compensate the exhausting of system resources.

 

Question 3: Although C++ is still the choice in financial services industry, will multi-core D and F# be better alternatives?

Answer : F# is for short time to market (.Net targeting). D might be better than F# in respect to latency. Multithreading-focused alternatives to C++ could only take the art out of multi-threaded programming. With Transactum, the development needs coding for business components (COM/C++) only and absolutely no multi-threaded programming, and its time to market is even shorter.