{"id":3130,"date":"2014-02-14T08:21:08","date_gmt":"2014-02-14T08:21:08","guid":{"rendered":"http:\/\/www.odbms.org\/blog\/?p=2874"},"modified":"2015-02-11T07:45:30","modified_gmt":"2015-02-11T07:45:30","slug":"big-data-three-questions-to-mcobject","status":"publish","type":"post","link":"https:\/\/www.odbms.org\/blog\/2014\/02\/big-data-three-questions-to-mcobject\/","title":{"rendered":"Big Data: Three questions to McObject."},"content":{"rendered":"<blockquote><p><strong>&#8220;In a nutshell, pipelining is a programming technique that combines functions from the database system\u2019s library of vector-based functions into an assembly line of processing for market data, with the output of one function becoming input for the next.&#8221;&#8211;Steven T. Graves.<\/strong><\/p><\/blockquote>\n<p>The fourth interview in the \u201c<em>Big Data: three questions to <\/em>\u201c series of interviews, is with<strong> Steven T. Graves<\/strong>, President and CEO<strong><a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/www.mcobject.com');\"  href=\"http:\/\/www.mcobject.com\"> McObject<\/a><\/strong><\/p>\n<p>RVZ<\/p>\n<p><strong>Q1. What is your current product offering?<\/strong><\/p>\n<p><strong>Steven T. Graves<\/strong>: McObject has two product lines. One is the <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/www.mcobject.com\/extremedbfamily.shtml');\"  href=\"http:\/\/www.mcobject.com\/extremedbfamily.shtml\">eXtremeDB <\/a>product family. eXtremeDB is a real-time embedded database system built on a core in-memory database system (IMDS) architecture, with the eXtremeDB IMDS edition representing the &#8220;standard&#8221; product. Other eXtremeDB editions offer special features and capabilities such as an optional SQL API, high availability, clustering, 64-bit support, optional and selective persistent storage, transaction logging and more.<\/p>\n<p>In addition, our <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/financial.mcobject.com\/extremedb-financial-edition\/platform\/');\"  href=\"http:\/\/financial.mcobject.com\/extremedb-financial-edition\/platform\/\">eXtremeDB Financial Edition<\/a> database system targets real-time capital markets systems such as algorithmic trading and risk management (and has its own Web site). eXtremeDB Financial Edition comprises a super-set of the individual eXtremeDB editions (bundling together all specialized libraries such as clustering, 64-bit support, etc.) and offers features including columnar data handling and vector-based statistical processing for managing market data (or any other type of time series data).<\/p>\n<p>Features shared across the eXtremeDB product family include: ACID-compliant transactions; multiple application programming interfaces (a native and type-safe C\/C++ API; SQL\/ODBC\/JDBC; native Java, C# and Python interfaces); multi-user concurrency with an optional multi-version concurrency control (MVCC) transaction manager; event notifications; cache prioritization; and support for multiple database indexes (b-tree, <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/en.wikipedia.org\/wiki\/R-tree');\"  href=\"http:\/\/en.wikipedia.org\/wiki\/R-tree\">r-tree<\/a>,<a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/en.wikipedia.org\/wiki\/K-d_tree');\"  href=\"http:\/\/en.wikipedia.org\/wiki\/K-d_tree\"> kd-tree<\/a>, hash, <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/en.wikipedia.org\/wiki\/Radix_tree');\"  href=\"http:\/\/en.wikipedia.org\/wiki\/Radix_tree\">Patricia trie<\/a>, etc.). eXtremeDB&#8217;s footprint is small, with an approximately 150K code size. eXtremeDB is available for a wide range of server, real-time operating system (RTOS) and desktop operating systems, and McObject provides eXtremeDB source code for porting.<\/p>\n<p>McObject&#8217;s second product offering is the <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/www.mcobject.com\/perst');\"  href=\"http:\/\/www.mcobject.com\/perst\">Perst open source<\/a>, object-oriented embedded database system, available in all-Java and all-C# (.NET) versions. Perst is small (code size typically less than 500K) and very fast, with features including ACID-compliant transactions; specialized collection classes (such as a classic b-tree implementation; r-tree indexes for spatial data; database containers optimized for memory-only access, etc.); garbage collection; full-text search; schema evolution; a \u201cwrapper\u201d that provides a SQL-like interface (SubSQL); XML import\/export; database replication, and more.<\/p>\n<p>Perst also operates in specialized environments. Perst for .NET includes support for .NET Compact Framework, Windows Phone 8 (WP8) and Silverlight (check out our <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/www.mcobject.com\/silverlight-demo');\"  href=\"http:\/\/www.mcobject.com\/silverlight-demo\">browser-based Silverlight CRM demo<\/a>, which showcases Perst&#8217;s support for storage on users&#8217; local file systems). The Java edition supports the Android smartphone platform, and includes the Perst Lite embedded database for Java ME. <\/p>\n<p><strong>Q2. Who are your current customers and how do they typically use your products? <\/strong><\/p>\n<p><strong>Steven T. Graves<\/strong>: eXtremeDB initially targeted real-time embedded systems, often residing in non-PC devices such as set-top boxes, telecom switches or industrial controllers.<br \/>\nThere are literally millions of eXtremeDB -based devices deployed by our customers; a few examples are set-top boxes from <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/www.directv.com');\"  href=\"http:\/\/www.directv.com\">DIRECTV<\/a> (eXtremeDB is the basis of an electronic programming guide); F5 Networks\u2019 BIG-IP network infrastructure (eXtremeDB is built into the devices\u2019 proprietary embedded operating system); and BAE Systems (avionics in the <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/en.wikipedia.org\/wiki\/Panavia_Tornado');\"  href=\"http:\/\/en.wikipedia.org\/wiki\/Panavia_Tornado\">Panavia Tornado GR4 <\/a>combat jet). A recent new customer in telecom\/networking is <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/compass-eos.com');\"  href=\"http:\/\/compass-eos.com\">Compass-EOS<\/a>, which has released the first photonics-based core IP router, using eXtremeDB High Availability to manage the device\u2019s control plane database.<\/p>\n<p>Addition of \u201centerprise-friendly\u201d features (support for SQL, Java, 64-bit, MVCC, etc.) drove eXtremeDB\u2019s adoption for non-embedded systems that demand fast performance. Examples include software-as-a-service provider <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/www.odbms.org\/blog\/2013\/07\/cloud-based-hotel-management-interview-with-keith-gruen\/');\"  href=\"http:\/\/www.odbms.org\/blog\/2013\/07\/cloud-based-hotel-management-interview-with-keith-gruen\/\">hetras Gmbh<\/a> (eXtremeDB handles the most performance-intensive queries in its Cloud-based hotel management system); Transaction Network Services (eXtremeDB is used in a highly scalable system for real-time phone number lookups\/ routing); and MeetMe.com (formerly MyYearbook.com \u2013 eXtremeDB manages data in social networking applications).<\/p>\n<p>In the financial industry, eXtremeDB is used by a variety of trading organizations and technology providers. Examples include the broker-dealer <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/www.tradestation.com');\"  href=\"http:\/\/www.tradestation.com\">TradeStation<\/a> (McObject\u2019s database technology is part of its next-generation order execution system); <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/www.ftindia.com');\"  href=\"http:\/\/www.ftindia.com\">Financial Technologies of India<\/a>, Ltd. (FTIL), which has deployed eXtremeDB in the order-matching application used across its network of financial exchanges in Asia and the Middle East; and <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/www.nseit.com');\"  href=\"http:\/\/www.nseit.com\">NSE.IT<\/a> (eXtremeDB supports risk management in algorithmic trading).<\/p>\n<p>Users of Perst are many and varied, too. You can find Perst in many commercial software applications such as enterprise application management solutions from the <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/www.ca.com\/us\/application-performance-management.aspx');\"  href=\"http:\/\/www.ca.com\/us\/application-performance-management.aspx\">Wily Division<\/a> of CA. Perst has also been adopted for community-based open source projects, including the Frost client for the Freenet global peer-to-peer network. Some of the most interesting Perst-based applications are mobile. For example, <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/www.fitchlearning.com\/uk\/');\"  href=\"http:\/\/www.fitchlearning.com\/uk\/\">7City Learning<\/a>, which provides training for financial professionals, gives students an Android tablet with study materials that are accessed using Perst. Several other McObject customers use Perst in mobile medical apps.<\/p>\n<p><strong>Q3. What are the main new technical features you are currently working on and why?<\/strong><\/p>\n<p><strong>Steven T. Graves<\/strong>: One feature we\u2019re very excited about is the ability to pipeline vector-based statistical functions in eXtremeDB Financial Edition \u2013 we\u2019ve even released a <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/financial.mcobject.com\/extremedb-financial-edition\/in-memory-analytics\/');\"  href=\"http:\/\/financial.mcobject.com\/extremedb-financial-edition\/in-memory-analytics\/\">short video and a 10-page white paper<\/a> describing this capability. In a nutshell, pipelining is a programming technique that combines functions from the database system\u2019s library of vector-based functions into an assembly line of processing for market data, with the output of one function becoming input for the next.<\/p>\n<p>This may not sound unusual, since almost any algorithm or program can be viewed as a chain of operations acting on data.<br \/>\nBut this pipelining has a unique purpose and a powerful result: it keeps market data inside CPU cache as the data is being worked.<br \/>\nWithout pipelining, the results of each function would typically be materialized outside cache, in temporary tables residing in main memory. Handing interim results back and forth \u201cacross the transom\u201d between CPU cache and main memory imposes significant latency, which is eliminated by pipelining. We\u2019ve been improving this capability by adding new statistical functions to the library. (For an explanation of pipelining that\u2019s more in-depth than the video but shorter than the white paper, check out this <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/intelligenttradingtechnology.com\/article\/qa-mcobject-steve-graves-vectors-cpu-cache-pipelining-boost-analytics-performance');\"  href=\"http:\/\/intelligenttradingtechnology.com\/article\/qa-mcobject-steve-graves-vectors-cpu-cache-pipelining-boost-analytics-performance\">article<\/a> on the financial technology site Low-Latency.com.)<\/p>\n<p>We are also adding to the capabilities of eXtremeDB Cluster edition to make clustering faster and more flexible, and further simplify cluster administration. Improvements include a local tables option, in which database tables can be made exempt from replication, but shareable through a scatter\/gather mechanism. Dynamic clustering, added in our recent v. 5.0 upgrade, enables nodes to join and leave clusters without interrupting processing. This further simplifies administration for a clustering database technology that counts minimal run-time maintenance as a key benefit. On selected platforms, clustering now supports the Infiniband switched fabric interconnect and Message Passing Interface (MPI) standard. In our tests, these high performance networking options accelerated performance more than 7.5x compared to \u201cplain vanilla\u201d gigabit networking (TCP\/IP and Ethernet).<\/p>\n<p><strong>Related Posts<\/strong><\/p>\n<p>&#8211; <a href=\"http:\/\/www.odbms.org\/blog\/2014\/02\/big-data-three-questions-to-voltdb\/\">Big Data: Three questions to VoltDB.<br \/>\nODBMS INdustry Watch, February 6, 2014<\/a><\/p>\n<p>&#8211; <a href=\"http:\/\/www.odbms.org\/blog\/2014\/01\/big-data-three-questions-to-pivotal\/\">Big Data: Three questions to Pivotal.<br \/>\nODBMS Industry Watch, January 20, 2014.<\/a><\/p>\n<p>&#8211;<a href=\"http:\/\/www.odbms.org\/blog\/2014\/01\/big-data-three-questions-to-intersystems\/\">Big Data: Three questions to InterSystems.<br \/>\nODBMS Industry Watch, January 13, 2014.<\/a> <\/p>\n<p>&#8211; <a href=\"http:\/\/www.odbms.org\/blog\/2013\/07\/cloud-based-hotel-management-interview-with-keith-gruen\/\">Cloud based hotel management\u2013 Interview with Keith Gruen.<br \/>\nODBMS Industry Watch, July 25, 2013<\/a><\/p>\n<p>&#8211; <a href=\"http:\/\/www.odbms.org\/blog\/2012\/03\/in-memory-database-systems-interview-with-steve-graves-mcobject\/\">In-memory database systems. Interview with Steve Graves, McObject.<br \/>\nODBMS Industry Watch, March 16, 2012<\/a><\/p>\n<p><strong>Resources<\/strong><\/p>\n<p>&#8211; <strong>ODBMS.org:<\/strong> <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/www.odbms.org\/free-downloads-and-links\/');\"  href=\"http:\/\/www.odbms.org\/free-downloads-and-links\/\" target=\"_blank\">Free resources on Big Data, Analytics, Cloud Data Stores, Graphs Databases, NewSQL, NoSQL, Object Databases.<\/a> <\/p>\n<li>Follow ODBMS.org on Twitter: <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/twitter.com\/odbmsorg');\"  href=\"https:\/\/twitter.com\/odbmsorg\">@odbmsorg<\/a><\/li>\n<p>##<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>&#8220;In a nutshell, pipelining is a programming technique that combines functions from the database system\u2019s library of vector-based functions into an assembly line of processing for market data, with the output of one function becoming input for the next.&#8221;&#8211;Steven T. Graves. The fourth interview in the \u201cBig Data: three questions to \u201c series of interviews, [&hellip;]<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[34,35,66,67,192,275,276,370,416,427,446,648,549,651],"_links":{"self":[{"href":"https:\/\/www.odbms.org\/blog\/wp-json\/wp\/v2\/posts\/3130"}],"collection":[{"href":"https:\/\/www.odbms.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.odbms.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.odbms.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.odbms.org\/blog\/wp-json\/wp\/v2\/comments?post=3130"}],"version-history":[{"count":3,"href":"https:\/\/www.odbms.org\/blog\/wp-json\/wp\/v2\/posts\/3130\/revisions"}],"predecessor-version":[{"id":3775,"href":"https:\/\/www.odbms.org\/blog\/wp-json\/wp\/v2\/posts\/3130\/revisions\/3775"}],"wp:attachment":[{"href":"https:\/\/www.odbms.org\/blog\/wp-json\/wp\/v2\/media?parent=3130"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.odbms.org\/blog\/wp-json\/wp\/v2\/categories?post=3130"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.odbms.org\/blog\/wp-json\/wp\/v2\/tags?post=3130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}