{"id":5957,"date":"2018-11-14T22:29:16","date_gmt":"2018-11-15T06:29:16","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=5957"},"modified":"2023-06-12T23:53:27","modified_gmt":"2023-06-13T06:53:27","slug":"its-the-workload-stupid","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/","title":{"rendered":"It&#8217;s the Workload, Stupid!"},"content":{"rendered":"<p><span style=\"font-weight: 400\">As an application architect, eventually, you\u2019d have to choose the database or database as a service (<a href=\"https:\/\/www.couchbase.com\/products\/cloud\/\">DBaaS<\/a>) to power your newest application or a micro-service. Selecting one of the databases among relational databases was easier. \u00a0The use cases were roughly divided into OLTP and OLAP (decision support). The workload differences between OLTP and OLAP were well known. OLTP workloads consist of short <a href=\"https:\/\/www.couchbase.com\/transactions\/\">transactions<\/a> on few random rows, expecting millisecond responses on pre-compiled queries; OLAP workloads consist of data loads, long-running queries scanning millions of rows of a fact table of a star\/snowflake schema. Each had the performance benchmark and TCO well defined, measured and audited via<\/span><a href=\"https:\/\/www.tpc.org\"> <span style=\"font-weight: 400\">TPC benchmarks<\/span><\/a><span style=\"font-weight: 400\">. \u00a0You can make use of these numbers, approximate your workload, understand the needs and capabilities match on other fronts like administration. \u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Then, there are No-SQL databases. NoSQL databases were invented to handle the web scale performance of operational applications. \u00a0It had to be elastic to handle the scale and tolerate nodes going down (aka partition tolerance). That sparked the innovation to create databases on a variety of data models and use cases. There are databases for JSON, graphs, time-series and more. From Azure databases to ZODB, from Couchbase to Cassandra. \u00a0MongoDB to TiDB, spatial to JSON databases &#8212; so many different kinds of databases. In fact,<\/span><a href=\"https:\/\/nosql-database.org\/\"> <span style=\"font-weight: 400\">NoSQL-databases.org<\/span><\/a><span style=\"font-weight: 400\"> lists 225 databases and <a href=\"https:\/\/www.couchbase.com\/products\/cloud\/\">DBaaS<\/a> as of November, 2018.<\/span><\/p>\n<p><span style=\"font-weight: 400\">E-Commerce applications need to generate the sales report, shopping cart applications need to report outstanding shopping carts, etc. Every application makes progress on the workflow on behalf of its user or customer. These operational queries can be simple key-value operations, short-range queries or complex search queries in NoSQL. This workload is the bread and butter of most businesses.\u00a0\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">The solutions for the high-volume transaction and high-volume analysis is seemingly contradictory.\u00a0 The lookup operations or queries (e.g. searching for flights) requires very efficient lookup, quick data flow back to the application. \u00a0Milliseconds matter.\u00a0<\/span><\/p>\n<blockquote><p><span style=\"font-weight: 400\"> \u00a0\u201cBy the way, most workloads are mixed workloads\u201d &#8212;\u00a0<\/span><a href=\"https:\/\/www.youtube.com\/watch?v=b5qZVk0F_yg\"><span style=\"font-weight: 400\">Larry Ellison<\/span><\/a><span style=\"font-weight: 400\">, Founder &amp; CTO of Oracle.<\/span><\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5959\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-14-at-3.46.47-PM-300x185.png\" alt=\"\" width=\"631\" height=\"389\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/11\/Screen-Shot-2018-11-14-at-3.46.47-PM-300x185.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/11\/Screen-Shot-2018-11-14-at-3.46.47-PM-1024x632.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/11\/Screen-Shot-2018-11-14-at-3.46.47-PM-768x474.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/11\/Screen-Shot-2018-11-14-at-3.46.47-PM-20x12.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/11\/Screen-Shot-2018-11-14-at-3.46.47-PM.png 1212w\" sizes=\"auto, (max-width: 631px) 100vw, 631px\" \/><\/p>\n<p style=\"padding-left: 270px;text-align: right\"><span style=\"font-weight: 400\">Source: BI Research<\/span><\/p>\n<p><span style=\"font-weight: 400\">Recognizing the need to address mixed workloads, OLTP databases have added features for complex queries (e.g. hash joins, window functions), \u00a0NoSQL databases have added SQL. SQL databases have added JSON. We may be reaching the state of the<\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/The_Paradox_of_Choice\"> <span style=\"font-weight: 400\">paradox of choice<\/span><\/a><span style=\"font-weight: 400\">!<\/span><\/p>\n<p><span style=\"font-weight: 400\">Until we have a universal solution, we\u2019d need to evaluate and stitch different products and services to provide the solution to support the business workload and business outcome. \u00a0E.g. You could run SQL Server for the OLTP and Teradata for OLAP. Use Couchbase for an e-commerce application and Hadoop for machine learning. First, you\u2019ll have to drill down the workload to understand the operations within a workload.<\/span><\/p>\n<p><span style=\"font-weight: 400\">So, what\u2019s a workload? \u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">The article \u00a0<\/span><a href=\"https:\/\/www.databasejournal.com\/features\/oracle\/article.php\/3794731\/What-Is-Your-Definition-of-Database-Workload.htm\"><span style=\"font-weight: 400\">What\u2019s your definition of the workload?<\/span><\/a><span style=\"font-weight: 400\"> gives examples database workload from various angles. Application designers may define by the application SLAs at a given concurrency. \u00a0DBAs may define the workload by the CPU, memory usage, I\/O throughput, etc. The advice is to understand the resource usage and tie them to higher level entities like the queries, users, and applications.<\/span><\/p>\n<p><a href=\"https:\/\/www.tpc.org\/tpcc\/detail.asp\"><span style=\"font-weight: 400\">TPC-C<\/span><\/a><span style=\"font-weight: 400\"> describes the benchmark workload and measurement in the following way:\u00a0<\/span><i><span style=\"font-weight: 400\">The most frequent transaction consists of entering a new order which, on average, is comprised of ten different items. Each warehouse tries to maintain stock for the 100,000 items in the Company&#8217;s catalog and fill orders from that stock. However, in reality, one warehouse will probably not have all the parts required to fill every order. Therefore, TPC-C requires that close to ten percent of all orders must be supplied by another warehouse of the Company. Another frequent transaction consists in recording a payment received from a customer. Less frequently, operators will request the status of a previously placed order, process a batch of ten orders for delivery, or query the system for potential supply shortages by examining the level of stock at the local warehouse. A total of five types of transactions, then, are used to model this business activity. The performance metric reported by TPC-C measures the number of orders that can be fully processed per minute and is expressed in tpm-C.<\/span><\/i><\/p>\n<p><span style=\"font-weight: 400\">For modern applications, as an architect, you\u2019ll have to understand all of the application operations, patterns, and their SLAs. Application performance isn\u2019t measured by a simple benchmark, but its ability to perform at the business scale over a long <em><span style=\"color: #0000ff\">period of time<\/span><\/em>. Adding the <em><span style=\"color: #0000ff\">period of time<\/span><\/em> factor means, you\u2019ll have to consider the scale, SLA and cost of the infrastructure on a slow summer day and the day 100 million customers on your site trying to add their favorite toy to the shopping cart and buy it.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">What are the application requests to the database? \u00a0<\/span>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Simple operations to get and set data (e.g.new customer, new order)<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Search requests (search for products, orders, etc)<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Pagination requests (list a customer orders, sorted by date)<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Reporting workload.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Queries from business intelligence tools.<\/span><\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">As the number of concurrent users increase, which of these operations need to scale?<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">What\u2019s the trigger point in the workload to add or remove database nodes?<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">What\u2019s the failover strategy?<\/span><\/li>\n<\/ul>\n<p><b>Comparing NoSQL Databases:<\/b><\/p>\n<p><span style=\"font-weight: 400\">Relational databases (aka SQL databases) had the same relational model, roughly same data types, implemented similar SQL. \u00a0The difference was in performance, which could be measured by TPC benchmarks, ease of administration, which was more subjective.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Variety is the name of the game for No-SQL databases. There are specialized databases for key-value, JSON, wide-column, graph, timeseries and spatial and more. These represent different data models and various operations that can be done effectively in this model. \u00a0Each of them their own APIs, query languages, performance characteristics, scaling capabilities.<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> If you showed the pending orders for a user in the app before, you still need to do that with the new database. You may change how you achieve the same result, but not the result itself. \u00a0This gets us back to the workload. You\u2019ll have to understand the full application workload and the database workload it generates. Then do the performance, scaling measurement and scaling. The simple use cases,<\/span><a href=\"https:\/\/github.com\/brianfrankcooper\/YCSB\"> <span style=\"font-weight: 400\">YCSB<\/span><\/a><span style=\"font-weight: 400\"> benchmark will help, but for complex use cases,<\/span><a href=\"https:\/\/dzone.com\/articles\/ycsb-json-benchmarking-json-databases-by-extending\"> <span style=\"font-weight: 400\">YCSB-JSON<\/span><\/a><span style=\"font-weight: 400\"> can be used. \u00a0This exercise will require you to translate the workload into respective database operations and measure them. \u00a0Measure them for each of the critical operations as well as system characteristics like elasticity, replication speed, and failover.<\/span><\/p>\n<p><span style=\"font-weight: 400\">The critical lesson while evaluating databases for your workload is:<\/span><\/p>\n<p><b>The business and application requirements on the database won\u2019t change just because you can use a new kind of database.<\/b><\/p>\n<p><span style=\"font-weight: 400\">To summarize, the workload is described by the modified<\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Pink_Floyd\"> <span style=\"font-weight: 400\">Pink Floyd<\/span><\/a><span style=\"font-weight: 400\">\u00a0lyric. (With apologies to Roger Waters).<\/span><\/p>\n<p><span style=\"color: #800080\"><strong>Database Workload<\/strong><\/span><\/p>\n<p><span style=\"color: #800080\">All that you cache<\/span><br \/>\n<span style=\"color: #800080\">And all that you flush<\/span><br \/>\n<span style=\"color: #800080\">All that you shard<\/span><br \/>\n<span style=\"color: #800080\">All you hash<\/span><\/p>\n<p><span style=\"color: #800080\">All that you scale<\/span><br \/>\n<span style=\"color: #800080\">All that you fail<\/span><br \/>\n<span style=\"color: #800080\">All you test<\/span><br \/>\n<span style=\"color: #800080\">All you save<\/span><\/p>\n<p><span style=\"color: #800080\">All that you share<\/span><br \/>\n<span style=\"color: #800080\">And all that you store<\/span><br \/>\n<span style=\"color: #800080\">And all that you transact<\/span><br \/>\n<span style=\"color: #800080\">Begin, commit or rollback<\/span><\/p>\n<p><span style=\"color: #800080\">All you create<\/span><br \/>\n<span style=\"color: #800080\">And all you do<\/span><br \/>\n<span style=\"color: #800080\">And all that you undo<\/span><br \/>\n<span style=\"color: #800080\">And all that you redo<\/span><\/p>\n<p><span style=\"color: #800080\">And all that you delete<\/span><br \/>\n<span style=\"color: #800080\">And every node you add (every node you add)<\/span><br \/>\n<span style=\"color: #800080\">And all that you search<\/span><br \/>\n<span style=\"color: #800080\">And every key you index<\/span><\/p>\n<p><span style=\"color: #800080\">And all that is planned<\/span><br \/>\n<span style=\"color: #800080\">And all that is run<\/span><br \/>\n<span style=\"color: #800080\">And all that\u2019s to change<\/span><\/p>\n<p><span style=\"color: #800080\">And everything under the (data)base is in tune<\/span><br \/>\n<span style=\"color: #800080\">But the base is running on the cloud<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>As an application architect, eventually, you\u2019d have to choose the database or database as a service (DBaaS) to power your newest application or a micro-service. Selecting one of the databases among relational databases was easier. \u00a0The use cases were roughly [&hellip;]<\/p>\n","protected":false},"author":55,"featured_media":10667,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1814,1821,1816,1812],"tags":[1261,2299,2298,1592,1385,2261,2297,2278],"ppma_author":[8929],"class_list":["post-5957","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-design","category-couchbase-architecture","category-couchbase-server","category-n1ql-query","tag-json","tag-olap","tag-oltp","tag-oracle","tag-rdbms","tag-tpc","tag-workload","tag-ycsb"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>It&#039;s the Workload, Stupid! - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Learn workload principles and the differences in OLTP and OLAP. Check the database workload described by the modified Pink Floyd lyric.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"It&#039;s the Workload, Stupid!\" \/>\n<meta property=\"og:description\" content=\"Learn workload principles and the differences in OLTP and OLAP. Check the database workload described by the modified Pink Floyd lyric.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-11-15T06:29:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-13T06:53:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/11\/online-shop-1-e1542238557159_RESIZED.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"1200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Keshav Murthy\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@rkeshavmurthy\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Keshav Murthy\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/\"},\"author\":{\"name\":\"Keshav Murthy\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c261644262bf98e146372fe647682636\"},\"headline\":\"It&#8217;s the Workload, Stupid!\",\"datePublished\":\"2018-11-15T06:29:16+00:00\",\"dateModified\":\"2023-06-13T06:53:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/\"},\"wordCount\":1247,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/11\/online-shop-1-e1542238557159_RESIZED.png\",\"keywords\":[\"JSON\",\"olap\",\"oltp\",\"oracle\",\"RDBMS\",\"TPC\",\"workload\",\"ycsb\"],\"articleSection\":[\"Application Design\",\"Couchbase Architecture\",\"Couchbase Server\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/\",\"name\":\"It's the Workload, Stupid! - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/11\/online-shop-1-e1542238557159_RESIZED.png\",\"datePublished\":\"2018-11-15T06:29:16+00:00\",\"dateModified\":\"2023-06-13T06:53:27+00:00\",\"description\":\"Learn workload principles and the differences in OLTP and OLAP. Check the database workload described by the modified Pink Floyd lyric.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/11\/online-shop-1-e1542238557159_RESIZED.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/11\/online-shop-1-e1542238557159_RESIZED.png\",\"width\":1200,\"height\":1200,\"caption\":\"Concept art of a storefront with a large \\\"sale\\\" sign atop\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"It&#8217;s the Workload, Stupid!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c261644262bf98e146372fe647682636\",\"name\":\"Keshav Murthy\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4e51d72fc07c662aa791316deafffac4\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g\",\"caption\":\"Keshav Murthy\"},\"description\":\"Keshav Murthy is a Vice President at Couchbase R&amp;D. Previously, he was at MapR, IBM, Informix, Sybase, with more than 20 years of experience in database design &amp; development. He lead the SQL and NoSQL R&amp;D team at IBM Informix. He has received two President's Club awards at Couchbase, two Outstanding Technical Achievement Awards at IBM. Keshav has a bachelor's degree in Computer Science and Engineering from the University of Mysore, India, holds eleven US patents and has four US patents pending.\",\"sameAs\":[\"https:\/\/blog.planetnosql.com\/\",\"https:\/\/x.com\/rkeshavmurthy\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/keshav-murthy\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"It's the Workload, Stupid! - The Couchbase Blog","description":"Learn workload principles and the differences in OLTP and OLAP. Check the database workload described by the modified Pink Floyd lyric.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/","og_locale":"en_US","og_type":"article","og_title":"It's the Workload, Stupid!","og_description":"Learn workload principles and the differences in OLTP and OLAP. Check the database workload described by the modified Pink Floyd lyric.","og_url":"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/","og_site_name":"The Couchbase Blog","article_published_time":"2018-11-15T06:29:16+00:00","article_modified_time":"2023-06-13T06:53:27+00:00","og_image":[{"width":1200,"height":1200,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/11\/online-shop-1-e1542238557159_RESIZED.png","type":"image\/png"}],"author":"Keshav Murthy","twitter_card":"summary_large_image","twitter_creator":"@rkeshavmurthy","twitter_misc":{"Written by":"Keshav Murthy","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/"},"author":{"name":"Keshav Murthy","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c261644262bf98e146372fe647682636"},"headline":"It&#8217;s the Workload, Stupid!","datePublished":"2018-11-15T06:29:16+00:00","dateModified":"2023-06-13T06:53:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/"},"wordCount":1247,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/11\/online-shop-1-e1542238557159_RESIZED.png","keywords":["JSON","olap","oltp","oracle","RDBMS","TPC","workload","ycsb"],"articleSection":["Application Design","Couchbase Architecture","Couchbase Server","SQL++ \/ N1QL Query"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/","url":"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/","name":"It's the Workload, Stupid! - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/11\/online-shop-1-e1542238557159_RESIZED.png","datePublished":"2018-11-15T06:29:16+00:00","dateModified":"2023-06-13T06:53:27+00:00","description":"Learn workload principles and the differences in OLTP and OLAP. Check the database workload described by the modified Pink Floyd lyric.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/11\/online-shop-1-e1542238557159_RESIZED.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/11\/online-shop-1-e1542238557159_RESIZED.png","width":1200,"height":1200,"caption":"Concept art of a storefront with a large \"sale\" sign atop"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/its-the-workload-stupid\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"It&#8217;s the Workload, Stupid!"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"The Couchbase Blog","description":"Couchbase, the NoSQL Database","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c261644262bf98e146372fe647682636","name":"Keshav Murthy","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4e51d72fc07c662aa791316deafffac4","url":"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g","caption":"Keshav Murthy"},"description":"Keshav Murthy is a Vice President at Couchbase R&amp;D. Previously, he was at MapR, IBM, Informix, Sybase, with more than 20 years of experience in database design &amp; development. He lead the SQL and NoSQL R&amp;D team at IBM Informix. He has received two President's Club awards at Couchbase, two Outstanding Technical Achievement Awards at IBM. Keshav has a bachelor's degree in Computer Science and Engineering from the University of Mysore, India, holds eleven US patents and has four US patents pending.","sameAs":["https:\/\/blog.planetnosql.com\/","https:\/\/x.com\/rkeshavmurthy"],"url":"https:\/\/www.couchbase.com\/blog\/author\/keshav-murthy\/"}]}},"authors":[{"term_id":8929,"user_id":55,"is_guest":0,"slug":"keshav-murthy","display_name":"Keshav Murthy","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g","author_category":"","last_name":"Murthy","first_name":"Keshav","job_title":"","user_url":"https:\/\/blog.planetnosql.com\/","description":"Keshav Murthy is a Vice President at Couchbase R&amp;D. Previously, he was at MapR, IBM, Informix, Sybase, with more than 20 years of experience in database design &amp; development. He lead the SQL and NoSQL R&amp;D team at IBM Informix. He has received two President's Club awards at Couchbase, two Outstanding Technical Achievement Awards at IBM. Keshav has a bachelor's degree in Computer Science and Engineering from the University of Mysore, India,  holds ten US patents and has three US patents pending."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/5957","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/55"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=5957"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/5957\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/10667"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=5957"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=5957"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=5957"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=5957"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}