Inside Marklogic Server

Total Page:16

File Type:pdf, Size:1020Kb

Inside Marklogic Server Inside MarkLogic Server Its data model, indexing system, update model, and operational behaviors April 28, 2013 Jason Hunter, MarkLogic Corporation Licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License. Some features discussed are covered by MarkLogic patents. Download at http://developer.marklogic.com/inside-marklogic. April 28, 2013 Inside MarkLogic Server This paper describes the MarkLogic Server internals: its data model, indexing system, update model, and operational behaviors. It's intended for a technical audience — either someone new to MarkLogic wanting to understand its capabilities, or someone already familiar with MarkLogic who wants to understand what's going on under the hood. This paper is not an introduction to using MarkLogic Server. For that you can read the official product documentation. Instead, this paper explains the principles on which MarkLogic is built. The goal isn't to teach you to write code, but to help you understand what's going on behind your code, and thus help you write better and more robust applications. The paper is organized into sections. The first section provides a high-level overview of MarkLogic Server. The next few sections explain MarkLogic's core indexes. The sections after that explain the transactional storage system, multi-host clustering, and the various connection options. At this point there's a natural stopping point for the casual reader, but those who read on will find sections covering advanced indexing features as well as topics like replication and failover. The final section discusses the ecosystem built up around MarkLogic. This major update to the original version adds discussion on features introduced in MarkLogic 5 and MarkLogic 6: Database replication, journal archiving with point-in- time recovery, multi-statement transactions, XA transactions, Hadoop integration, tiered storage, large binary support, compartment security, SQL/ODBC access for BI tool integration, REST API access, user-defined functions, JSON support, document filters, path range indexes, application packaging, and system performance monitoring. It also adds coverage for several older features: text value matching, phrase handling, stop words, lexicons, and document compression. 2 April 28, 2013 Table of Contents What Is MarkLogic Server? ............................................................................................ 6! Document-Centric ....................................................................................................... 6! Transactional ............................................................................................................... 7! Search-Centric ............................................................................................................. 7! Structure-Aware .......................................................................................................... 7! Schema-Agnostic ........................................................................................................ 8! Programmatic .............................................................................................................. 9! High Performance ..................................................................................................... 10! Clustered .................................................................................................................... 10! Database Server ......................................................................................................... 11! Core Topics ...................................................................................................................... 12! Indexing Text and Structure .......................................................................................... 12! Indexing Words ......................................................................................................... 12! Indexing Phrases ....................................................................................................... 13! Indexing Longer Phrases ........................................................................................... 14! Indexing Structure ..................................................................................................... 14! Indexing Values ......................................................................................................... 15! Indexing Text Values ................................................................................................ 16! Indexing Text with Structure ..................................................................................... 17! Special Phrase Handling ............................................................................................ 17! Index Size .................................................................................................................. 18! Reindexing ................................................................................................................ 19! Relevance .................................................................................................................. 19! Lifecycle of a Query .................................................................................................. 19! Indexing Document Metadata ....................................................................................... 21! Collection Indexes ..................................................................................................... 21! Directory Indexes ...................................................................................................... 21! Security Indexes ........................................................................................................ 22! Properties Indexes ..................................................................................................... 22! Fragmentation ................................................................................................................ 23! Fragment vs. Document ............................................................................................ 23! Estimate and Count ................................................................................................... 24! Unfiltered .................................................................................................................. 25! The Range Index ........................................................................................................... 25! Range Queries ........................................................................................................... 26! Data-Type Aware Equality Queries .......................................................................... 27! Extracting Values ...................................................................................................... 27! Optimized "Order By" ............................................................................................... 28! Using Range Indexes for Joins .................................................................................. 29! Using Path Range Indexes for Extra Optimization ................................................... 30! Lexicons .................................................................................................................... 30! Data Management ......................................................................................................... 31! What's on Disk: Databases, Forests, and Stands ....................................................... 31! Ingesting Data ........................................................................................................... 31! 3 April 28, 2013 Modifying Data ......................................................................................................... 33! Multi-Version Concurrency Control ......................................................................... 34! Time Travel ............................................................................................................... 34! Locking ...................................................................................................................... 35! Updates ...................................................................................................................... 35! Documents are Like Rows ........................................................................................ 36! Lifecycle of a Document ........................................................................................... 37! Multi-Statement Transactions ................................................................................... 38! XA Transactions ........................................................................................................ 39! Tiered Storage ............................................................................................................... 40! Fast Data Directory on SSDs .................................................................................... 40! Large Data Directory for Binaries ............................................................................. 40! Clustering and Caching ................................................................................................. 41! Cluster Management ................................................................................................. 42! Caching .....................................................................................................................
Recommended publications
  • Introduction How Marklogic Works?
    MarkLogic Database – Only Enterprise NoSQL DB Sanket V. Patel, Aashi Rastogi Department of Computer Science University of Bridgeport, Bridgeport, CT Abstract MarkLogic DB is one of the Enterprise NoSQL database that supports multiple-model database design. It is optimized for structured and unstructured data that allows to store, manage, query and search across JSON, XML, RDF (Triplestore) and can handle data with a schema free and leads to faster time-to-results by providing handling of different types of data. It provides ACID Transactions using MVCC (multi-version concurrency control). One of the important key feature of MarkLogic is its Bitemporal behavior by providing data at every point in time. Due to its shared-nothing architecture it is highly available and easily and massively scalable with no single point of failure making structured data integration easier. It also has incremental backup means to only backup the updated data. Marklogic provides Hadoop integration and Hadoop is designed to store large amount of data in Hadoop Distributed File System (HDFS) and works better with the transactional applications. Introduction NoSQL means non-SQL or non-relational databases which provides mechanism to store and retrieve the data other than relational databases. NoSQL database is in use nowadays because of simplicity of design, easy to scale out and control over availability. Implementation Types of NoSQL Databases: Key-value based Column oriented Graph oriented Document based Multi-model Multi-model database is an only designed to support multiple data models against a single application. Marklogic DB is one of the NoSQL database that uses multi-model database design.
    [Show full text]
  • Release Notes (PDF)
    MarkLogic Server Release Notes 2 MarkLogic 9 May, 2017 Last Revised: 9.0-13, July, 2020 Copyright © 2020 MarkLogic Corporation. All rights reserved. MarkLogic Server Version MarkLogic 9—May, 2017 Page 2—Release Notes MarkLogic Server Table of Contents Table of Contents Release Notes 1.0 Introduction ..................................................................................................13 1.1 Bug Fixes ..............................................................................................................13 2.0 Installation and Upgrade ..............................................................................15 2.1 Supported Platforms .............................................................................................15 2.2 Supported Filesystems ..........................................................................................15 2.3 Upgrade Support ...................................................................................................15 3.0 New Features in MarkLogic 9 .....................................................................17 3.1 Template Driven Extraction (TDE) ......................................................................18 3.2 SQL Enhancements ...............................................................................................18 3.3 Optic API ..............................................................................................................18 3.4 Enhanced Tiered Storage ......................................................................................19
    [Show full text]
  • Marklogic 10 Upgrade Accelerator Datasheet
    MarkLogic 10 Upgrade Accelerator DATASHEET The MarkLogic 10 Upgrade Accelerator is designed to help our existing customers put the powerful features of MarkLogic 10 into action and to educate you on the art of the possible with this significant release. MarkLogic 10 is a free upgrade to all customers with an active support contract. The accelerator starts with a collaboration between MarkLogic Consulting and your team to determine which new features apply to your business and how they can best benefit you. Then we will work together to plan and implement your upgrade. MarkLogic Consulting has been working with MarkLogic 10 throughout the product development lifecycle and is uniquely positioned with deep reachback capability to MarkLogic Engineering. This ensures our customers will have access to the most extensive and current information to take full advantage of MarkLogic 10. Gain All the Benefits of MarkLogic 10 MarkLogic 10 includes a variety of robust new features that we can help you take advantage of. The following focus areas highlight some, but not all, of the new capabilities in MarkLogic 10. Embedded Machine Learning MarkLogic 10 ships with a complete machine-learning toolkit. This enables data scientists to develop and train machine-learning models in MarkLogic. The machine learning modules are deeply embedded into the MarkLogic engine, meaning inference models can be woven into the fabric of our MarkLogic application and run as part of an ACID-compliant transaction, close to the data for optimal performance and under the best-of-breed security of the MarkLogic database. MarkLogic 10 also includes Nvidia’s CUDA libraries, enabling GPU acceleration for machine learning training and execution.
    [Show full text]
  • Marklogic® Developer Training and Support
    MarkLogic® Developer Training and Support The Developer Training and Support package is a combination • Administering MarkLogic Server – a seat for your of pre-production training and support to help you and your database administrator at a hands-on course team get the most out of MarkLogic, getting you that much that will teach you about installing, deploying, monitoring, and maintaining your MarkLogic closer to a live application. database • Six months of email and web support for two named Overview contacts in your organization. With the release of the free Developer License for MarkLogic Enterprise Edition, developers can now begin Getting Started building pre-production applications without waiting Download a free Developer License for MarkLogic for funds to be allocated for production software Enterprise Edition and begin developing and testing an licenses. The Developer Training and Support package application on the only Enterprise NoSQL database. You is a cost-effective way to help your team become more can use the software for six months, giving you plenty proficient using MarkLogic, so you can reach your goals of time to get ready before your organization needs to even sooner. buy production licenses. The Developer License includes nearly all features of Enterprise Edition and can be used Details for databases up to 1TB, which makes it easy for you to The Developer Training and Support package includes try out MarkLogic for real problems you need to solve. a full-day MarkLogic Fundamentals workshop, a seat If you’ve already started working with MongoDB, use our in two of our public training courses, and six months of MarkLogic Converter for MongoDB to move your data support, as described below.
    [Show full text]
  • Data Hub Guide for Architects What Is a Data Hub? How Does It Simplify Data Integration? Marklogic Corporation 999 Skyway Road, Suite 200 San Carlos, CA 94070
    Data Hub Guide for Architects What is a data hub? How does it simplify data integration? MarkLogic Corporation 999 Skyway Road, Suite 200 San Carlos, CA 94070 +1 650 655 2300 +1 877 992 8885 www.marklogic.com [email protected] ©2020 MarkLogic Corporation. MarkLogic and the MarkLogic logo are trademarks or registered trademarks of MarkLogic Corporation in the United States and other countries. All other trademarks are the property of their respective owners. Data Hub Guide for Architects What is a data hub? How does it simplify data integration? Lead Author Ken Krupa heads MarkLogic’s Global Solutions Engineering team and has over 25 years of professional IT experience. Prior to joining MarkLogic, Ken advised some of the largest global financial institutions, delivering technology solutions and advising C-level executives on technology strategy and data architecture. In addition to his consulting work, Ken worked as a direct partner to Sun Microsystems and also served as Chief Architect of GFI Group leading up to the company’s IPO. At MarkLogic, Ken is an enterprise architect who plays the role of pragmatic visionary. He was instrumental in developing the vision for the data hub, and now oversees the customer-facing team that helps implement data hub solutions. With years of experience along with deep technical expertise, Ken is the perfect guide to help fellow architects understand the challenges with legacy technologies and how to solve them with a new approach. Ken holds a B.S. Degree in Computer Science from the State University of New York, Albany. Additional Support This publication is the product of many minds and was made possible with input across the MarkLogic team, including but not limited to: • Gary Bloom, President & CEO • David Gorbet, SVP of Engineering • Dr.
    [Show full text]
  • Concepts Guide
    MarkLogic Server Concepts Guide 1 MarkLogic 10 May, 2019 Last Revised: 10.0, May, 2019 Copyright © 2019 MarkLogic Corporation. All rights reserved. MarkLogic Server Table of Contents Table of Contents Concepts Guide 1.0 Overview of MarkLogic Server .....................................................................5 1.1 Relational Data Model vs. Document Data Model .................................................5 1.2 XML Schemas ........................................................................................................6 1.3 High Performance Transactional Database .............................................................7 1.4 Rich Search Features ..............................................................................................7 1.5 Text and Structure Indexes .....................................................................................7 1.6 Semantics Support ..................................................................................................8 1.7 Binary Document Support ......................................................................................9 1.8 MarkLogic APIs and Communication Protocols ....................................................9 1.9 High Performance .................................................................................................10 1.10 Clustered ...............................................................................................................11 1.11 Cloud Capable .......................................................................................................11
    [Show full text]
  • Getting Started with Marklogic Server
    MarkLogic Server Getting Started With MarkLogic Server 1 MarkLogic 10 May, 2019 Last Revised: 10.0-5, September, 2020 Copyright © 2019 MarkLogic Corporation. All rights reserved. MarkLogic Server Table of Contents Table of Contents Getting Started With MarkLogic Server 1.0 Introduction to MarkLogic Server .................................................................4 1.1 Requirements ..........................................................................................................4 1.2 About this Document ..............................................................................................4 2.0 Getting Started with MarkLogic Cloud Services ...........................................5 3.0 Getting Started with MarkLogic Server-Side JavaScript ...............................6 3.1 About Query Console .............................................................................................6 3.2 JavaScript Examples ...............................................................................................6 3.2.1 Create a Simple JSON Document ...............................................................6 3.2.2 Creating and Searching Documents ............................................................8 3.3 Module Programs and Other Considerations ........................................................11 3.3.1 Converting Scripts to Modules .................................................................11 3.3.2 New Mimetype for Javascript Modules ....................................................11 4.0 Getting
    [Show full text]
  • Performance: Understanding System Resources
    PERFORMANCE Understanding System Resources MARKLOGIC WHITE PAPER · OCTOBER 2018 There are many aspects involved in understanding resource consumption. To make sense of them, this paper will break down the overall problem by describing common MarkLogic functions and then provide detail on system impact (I/O, CPU, memory, storage size, network). We also show examples of how to monitor these various system components, how to remediate problems, and important limits to keep in mind. About the Author Erin Miller Sr. Manager, Performance Engineering Erin Miller is a lead engineer for the MarkLogic Performance Engineering team. In her tenure at MarkLogic, she has worked with many of MarkLogic's largest and most complex deployments. Erin is an expert in performance and application tuning and served as a key contributor at enterprise software companies for over 20 years. Prior to MarkLogic, Erin specialized in enterprise search and has deep expertise in Java and J2EE technologies. Erin holds a Bachelor's Degree from Harvard College. ii Contents Overview ................................................................................................................................................................... 1 MarkLogic Server Architecture at a Glance Terminology and General Concepts What is a Database Server? Part I: Ingestion ..................................................................................................................................................... 4 Ingestion 30,000 Foot View: Ingest Summary Ingest in Detail Important
    [Show full text]
  • Marklogic Server Node.Js Application Developer's Guide
    MarkLogic Server Node.js Application Developer’s Guide 1 MarkLogic 9 May, 2017 Last Revised: 9.0-4, January 2018 Copyright © 2018 MarkLogic Corporation. All rights reserved. MarkLogic Server Table of Contents Table of Contents Node.js Application Developer’s Guide 1.0 Introduction to the Node.js Client API ..........................................................9 1.1 Getting Started ........................................................................................................9 1.2 Required Software ................................................................................................14 1.3 Security Requirements ..........................................................................................15 1.3.1 Basic Security Requirements ....................................................................15 1.3.2 Controlling Document Access ..................................................................16 1.3.3 Evaluating Requests Against a Different Database ..................................16 1.3.4 Evaluating or Invoking Server-Side Code ................................................16 1.4 Terms and Definitions ..........................................................................................17 1.5 Key Concepts and Conventions ............................................................................18 1.5.1 MarkLogic Namespace .............................................................................18 1.5.2 Parameter Passing Conventions ................................................................18
    [Show full text]
  • Release Notes
    MarkLogic Server Release Notes 1 MarkLogic 10 May, 2019 Last Revised: 10.0-7, June, 2021 Copyright © 2021 MarkLogic Corporation. All rights reserved. MarkLogic Server Table of Contents Table of Contents Release Notes 1.0 Introduction ..................................................................................................10 1.1 Bug Fixes ..............................................................................................................10 2.0 Installation and Upgrade ..............................................................................11 2.1 Supported Platforms .............................................................................................11 2.2 Supported Filesystems ..........................................................................................11 2.3 Upgrade Support ...................................................................................................11 3.0 New Features in MarkLogic 10 ...................................................................13 3.1 JavaScript Engine Upgrade ...................................................................................13 3.2 Element Level Security (ELS) in the Triple Index ...............................................13 3.3 Machine Learning .................................................................................................13 3.4 Security Library Upgrades ....................................................................................14 3.5 Triggers and Amps Creation .................................................................................14
    [Show full text]
  • The Design of a SQL Interface for a Nosql Database
    The Design of a SQL Interface for a NoSQL Database Mary Holstege, PhD, Principal Engineer Nov 7, 2012 @mathling Slide 1 Copyright © 2012 MarkLogic® Corporation. All rights reserved. Topics § MarkLogic: Enterprise NoSQL Database § SQL over NoSQL, What’s The Point? § How Does It Work? § Technical Nitty Gritty § Q&A Slide 2 Copyright © 2012 MarkLogic® Corporation. All rights reserved. MarkLogic NoSQL Database ü Shared-nothing Host Host Host ü Clustered 1 2 3 ü Non-relational ü Schema-free ü Scalable Host 4 Host 5 Host 6 Host k partition1 partition2 partitionpartition3 4 partitionm Slide 3 Copyright © 2012 MarkLogic® Corporation. All rights reserved. MarkLogic Enterprise NoSQL Database ü ACID ü Real-time full-text search ü Automatic failover ü Replication ü Point in-time recovery ü Government-grade security Slide 4 Copyright © 2012 MarkLogic® Corporation. All rights reserved. Keep This In Mind § Non-relational data model § Documents (XML, JSON, binary, text) § Rich “query” language (XQuery+extension functions) § Really a complete language for application development § Search engine core § Full-text § Hierarchical, structure § Geospatial § Values Slide 5 Copyright © 2012 MarkLogic® Corporation. All rights reserved. What’s the Point? Slide 6 Copyright © 2012 MarkLogic® Corporation. All rights reserved. MarkLogic and BI Tools § Use familiar relational tools with non-relational data § Such as BI tools § Standard connection – no code, no custom integration § All the benefits of a BI tool – data analysis, visualization - with an operational Big Data database Slide 7 Copyright © 2012 MarkLogic® Corporation. All rights reserved. Structured and Unstructured Data Personal Info Aliases Phone numbers Bank accounts Credit cards Vehicles § MarkLogic’s XML data model was designed to handle rich structured and unstructured data Slide 8 Copyright © 2012 MarkLogic® Corporation.
    [Show full text]
  • Advanced Databases
    ADVANCED DATABASES Distributed and high performance NoSQL database systems Dr. NGUYEN Hoang Ha Email: [email protected] I have no SQL experience But I am good at NO SQL 2 Agenda NoSQL Overview Introduction to MongoDB MongoDb Sharding 3 Relational database 4 A NoSQL example 5 NoSQL: Documents and Collections Customer CustomerCustomer OrderOrder Customer collections Order collections 6 Web Scale This term used to justify NoSQL Millions concurrent users Amazon Google Non-transactional tasks Loading catalog Environment preferences 7 What is NoSQL? NoSQL is a class of database management system identified by its non-adherence to the widely used relational database management system (RDBMS) model with its structured query language (SQL). NoSQL has evolved to mean “Not Only” SQL NoSQL has become prominent with the advent of web scale data and systems created by Google, Facebook, Amazon, Twitter and others to manage data for which SQL was not the best fit. 8 NoSQL Definition From www.nosql-database.org: Next Generation Databases mostly addressing some of the points: being non-relational, distributed, open-source and horizontal scalable. The original intention has been modern web-scale databases. The movement began early 2009 and is growing rapidly. Often more characteristics apply as: schema-free, easy replication support, simple API, eventually consistent / BASE (not ACID), a huge data amount, and more. 9 Beginning NoSQL One of first uses of the phrase NoSQL is due to Carlo Strozzi, circa 1998. Characteristics: A fast, portable, open-source RDBMS A derivative of the RDB database system Not a full-function DBMS, per se, but a shell-level tool User interface: Unix shell Strozzi’s NoSQL RDBMS was based on the relational model Does not have an SQL interface → NoSQL means “no sql” i.e., we are not using the SQL language.
    [Show full text]