An analysis of building as an example of a spontaneous content from the unconsciousFull description
Khacakrapancakastotra
Definitions of Architecture Origin of Architecture Architecture as a discipline Context for architecture as satisfying human needs: functional, aesthetic and psychological Outline of co...
basic to candlestick pattern
basic to candlestick patternFull description
An Introduction to Combustion. Stephen R. Turns. Second Edition
An introduction to the essential techniques of drawing in a full range of media. It provides fully annotated, photographic sequences to guide the reader from the first strokes to the final composit...
Full description
Full description
An astrological article or book by Michael Erlewine, well-known astrologer with fifty years of experience. This book is copyright by Michael Erlewine and is available free and may be shared,…Full description
Deskripsi lengkap
Introduction to MOCAng Archtecture September 28, 2009
The Basics -- How We Got Here • Legacy MOCA has a scalability problem > MOCA is Centered around MOCA Server Processes > We spawn mocasrvprc, as needed, to support load > Each mocasrvprc contains • • • • •
Single DB connection (traditionally) The MOCA engine Command configuration (via memory file) Loaded libraries for commands JVM (since 2005.2)
• Loaded Java classes and libraries • Various ad-hoc caches, depending on what commands have been run > Policies > Integrator metadata
> Process startup time has become a problem • We’ve implemented changes to the connection manager process limits to avoid spawning too often.
Side Effects • 64/32-bit capability > C code can still be 32-bit, to avoid risk. > Java VM can run 64-bit, to increase scalability > JVM heap size can be quite large (many GB on server-class hardware)
Performance Overhead - How Slow is Slow? • Two types of overhead should be considered > Calling SQL from C > Calling C components from C
• Generally, SQL overhead is less than initiating C components > SQL execution involves an additional copy of the result data over the native socket. > C component involves potentially many additional copies
SQL Performance Overhead • When calling SQL from C, one extra data copy must be made • Overhead varies with amount of data sent > Note: this test data was from a local database using a very fast single-table SELECT statement. Size (rows)
C Performance Overhead Explained • When a C component initiates another command, it talks to the MOCA server to do it • If that command invocation needs to execute C, it comes back around to the C process MOCA Server
Native Process Call C Function A srvInitiate(...) Call C Function B sqlExec* sqlExec Results C Function B Results srvInitiate(...) Results C Function A Results
C Performance Overhead • Overhead varies with amount of data sent and depth of call stack • Test Case illustrates worst-case situation, but indicates a problem area Call Depth
So What? • Despite appearances, those are not disastrous overheads • If a component is called only few times per day, a few milliseconds of overhead is not a huge problem. • However, when a component gets called several thousand times per hour, it becomes an issue. • Look For > Commands that get run a lot in day-to-day operations > Commands that expect to operate on larger data sets > Commands that initiate a lot of other commands