SlideShare a Scribd company logo
1 of 18
Download to read offline
Manticore 6
March 10th 2023
Manticore Buddy
● Written in PHP 8
● Supports multithreading
● Comes as a self-extracting PHAR
● Requires manticore-executor
● manticore-executor is just statically built PHP with all needed
modules
● apt/yum install manticore manticore-extra installs
everything including:
○ Manticore Server
○ Manticore Buddy
○ Manticore-executor
● Works in Linux, Windows and MacOS
● Manticore Search starts Buddy on start
○ And restarts it in case it stops
○ Can be disabled
● Pluggable architecture in progress
● Applications: SHOW QUERIES, auto schema, mysqldump, shards
orchestration, Apache superset, Grafana,
Opensearch/Elasticsearch Kibana/Logstash/Elasticsearch, new /cli
and many-many more
● SHOW THREADS shows threads with thread ids
● SHOW QUERIES shows queries with session ids
● KILL <session id> KILLs the SELECT running in the
session
● Only SELECTs can be killed
SHOW QUERIES and KILL
Elasticsearch-compatible writes
New endpoints
● POST /<table name>/_create/<id>
● POST /<table name>/_create/ (auto id)
● PUT /<table name>/_doc/<id>
● POST /_bulk
Secondary indexes are ON by default
● Manticore 5: secondary indexes are OFF for searching, but ON for
indexing
● Manticore 6: ON for searching too
● SI index format has been changed
● The algorithms have been optimized too
Auto-schema
● You don’t have to create a table before
writing to it
● Manticore can do auto type-detection
○ Textual data => text
○ Email => string
○ Numeric => int/bigint/float
○ JSON => json
○ Array => multi/multi64
● ON by default
● searchd.auto_schema=0 disables it
● Manticore uses CBO to decide what to use for non-full-text queries:
○ Just do plain scan
○ Additional data/algorithms:
■ Docid index
■ Columnar scan
■ Secondary indexes
● CBO estimates execution cost using attribute statistics like histograms, PGM and
columnar storage statistics
● Execution cost is calculated for every filter in the query
● Multithreaded query execution is considered
○ E.g. queries using secondary/docid indexes always run in a single thread
● Optimizer hints:
○ /*+ DocidIndex(id) */
○ /*+ SecondaryIndex(<attr_name1>) */
○ /*+ ColumnarScan(<attr_name1>) */
○ /*+ NO_ColumnarScan(id) */
Revamp of cost-based query optimizer
● What for: to understand what features we need to prioritize working on
● How do disable:
○ searchd.telemetry = 0
○ Env. var. TELEMETRY=0
● All metrics are completely anonymous and no sensitive information is transmitted
● Ex. of what we don’t collect:
○ Any data
○ Table names, field names, hostnames
● Ex. of what we collect:
○ Depersonalized machine ID (hash(machine id))
○ OS name
○ Manticore version information
○ Instance uptime
○ Whether the instance is running in RT mode or plain mode
○ Whether MCL is used or not
○ Whether crash happened or not
○ Whether backup was called
Telemetry
FREEZE/UNFREEZE and manticore-backup
● FREEZE is not LOCK. After FREEZE you can:
○ Read from the table.
○ And write to the table to some extent.
● FREEZE returns the list of table files that are
immutable until you UNFREEZE
● Eventually the table will be locked, but chances
are the backup will be already made then
● Manticore-backup uses
FREEZE/UNFREEZE
● Use manticore-backup --restore to
restore the whole instance
● Use IMPORT TABLE to restore a specific table
● manticore-backup is written in PHP and
uses manticore-executor
SQL BACKUP
● SQL BACKUP command does the
same as manticore-backup
and uses the same code
● BACKUP … OPTION async=1
● No RESTORE command yet
Plans:
● Plain tables backup
● Backup to an external storage
(e.g. S3)
● Default max_matches (1000) can be automatically
increased up to max_matches_increase_threshold
(16384)
○ Useful when pseudo sharding is on (which is by
default)
● SELECT .. OPTION accurate_aggregation=1:
○ May disable query parallelization to guarantee
accuration aggregation
Dynamic max_matches and accurate aggregation
● Manticore Search
● Manticore Columnar Library
● Official docker image
Arm64 support
● Manticore 5: from 1 to 263
-1
● Manticore 6: from -263
+1 to 263
-1
● Next version: from 1 to 264
-1 + UINT64()
64-bit ID
● History: “full-text index”
● Then we added attributes, docid index,
secondary index
● “Index” became confusing
● So we renamed “index” to “table”:
○ in the docs
○ in all the commands
● The old commands are still working
Index -> table
● New columnar storage format
○ Have to rebuild the tables
● New secondary indexes file format
○ ALTER TABLE <table name> REBUILD SECONDARY
○ Since it’s on by default now, backwards compatibility will be
maintained
● New binlog file format
○ Have to stop cleanly
Breaking changes in Manticore 6
● 80+ bugs fixed in Manticore 6
● New known: memory leak related with Buddy
● Preparing Manticore 6.0.4 maintenance
release
● Updated release process: will release more
frequently
Bugs
● Performance:
○ FT + secondary: ✅
○ select count(*) where attr… (in progress)
○ Weak-AND for FT (nearest plans)
○ Per-index binlog
○ Parallel merging
● Buddy-related:
○ Mysqldump ✅
○ /cli ✅
○ Auto-schema for Elastic-like writes ✅
○ Various clients integrations (in progress)
○ Kibana / Opensearch dashboards
● Features:
○ Auto-sharding and orchestration
Plans
Questions

More Related Content

What's hot

HTTP - The Other Face Of Domino
HTTP - The Other Face Of DominoHTTP - The Other Face Of Domino
HTTP - The Other Face Of DominoGabriella Davis
 
RethinkConn 2022!
RethinkConn 2022!RethinkConn 2022!
RethinkConn 2022!NATS
 
Squid, SquidGuard, and Lightsquid on pfSense 2.3 & 2.4 - pfSense Hangout Janu...
Squid, SquidGuard, and Lightsquid on pfSense 2.3 & 2.4 - pfSense Hangout Janu...Squid, SquidGuard, and Lightsquid on pfSense 2.3 & 2.4 - pfSense Hangout Janu...
Squid, SquidGuard, and Lightsquid on pfSense 2.3 & 2.4 - pfSense Hangout Janu...Netgate
 
High Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando PatroniHigh Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando PatroniZalando Technology
 
MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용I Goo Lee
 
Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기NeoClova
 
Engage2022 - Domino Admin Tips
Engage2022 - Domino Admin TipsEngage2022 - Domino Admin Tips
Engage2022 - Domino Admin TipsGabriella Davis
 
Building Real-Time BI Systems with Kafka, Spark, and Kudu: Spark Summit East ...
Building Real-Time BI Systems with Kafka, Spark, and Kudu: Spark Summit East ...Building Real-Time BI Systems with Kafka, Spark, and Kudu: Spark Summit East ...
Building Real-Time BI Systems with Kafka, Spark, and Kudu: Spark Summit East ...Spark Summit
 
Ssh (The Secure Shell)
Ssh (The Secure Shell)Ssh (The Secure Shell)
Ssh (The Secure Shell)Mehedi Farazi
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetesRishabh Indoria
 
DNS High-Availability Tools - Open-Source Load Balancing Solutions
DNS High-Availability Tools - Open-Source Load Balancing SolutionsDNS High-Availability Tools - Open-Source Load Balancing Solutions
DNS High-Availability Tools - Open-Source Load Balancing SolutionsMen and Mice
 
V12 TLS証明書管理の自動化
V12 TLS証明書管理の自動化V12 TLS証明書管理の自動化
V12 TLS証明書管理の自動化Haruyuki Nakano
 
An overview of Neo4j Internals
An overview of Neo4j InternalsAn overview of Neo4j Internals
An overview of Neo4j InternalsTobias Lindaaker
 
Docker Swarm for Beginner
Docker Swarm for BeginnerDocker Swarm for Beginner
Docker Swarm for BeginnerShahzad Masud
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBRavi Teja
 
A brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsA brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsRamit Surana
 
Deep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingDeep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingSreenivas Makam
 

What's hot (20)

SSH - Secure Shell
SSH - Secure ShellSSH - Secure Shell
SSH - Secure Shell
 
HTTP - The Other Face Of Domino
HTTP - The Other Face Of DominoHTTP - The Other Face Of Domino
HTTP - The Other Face Of Domino
 
RethinkConn 2022!
RethinkConn 2022!RethinkConn 2022!
RethinkConn 2022!
 
Squid, SquidGuard, and Lightsquid on pfSense 2.3 & 2.4 - pfSense Hangout Janu...
Squid, SquidGuard, and Lightsquid on pfSense 2.3 & 2.4 - pfSense Hangout Janu...Squid, SquidGuard, and Lightsquid on pfSense 2.3 & 2.4 - pfSense Hangout Janu...
Squid, SquidGuard, and Lightsquid on pfSense 2.3 & 2.4 - pfSense Hangout Janu...
 
High Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando PatroniHigh Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando Patroni
 
MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용
 
Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기
 
Mac address authentication
Mac address authenticationMac address authentication
Mac address authentication
 
Engage2022 - Domino Admin Tips
Engage2022 - Domino Admin TipsEngage2022 - Domino Admin Tips
Engage2022 - Domino Admin Tips
 
Building Real-Time BI Systems with Kafka, Spark, and Kudu: Spark Summit East ...
Building Real-Time BI Systems with Kafka, Spark, and Kudu: Spark Summit East ...Building Real-Time BI Systems with Kafka, Spark, and Kudu: Spark Summit East ...
Building Real-Time BI Systems with Kafka, Spark, and Kudu: Spark Summit East ...
 
Ssh (The Secure Shell)
Ssh (The Secure Shell)Ssh (The Secure Shell)
Ssh (The Secure Shell)
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
DNS High-Availability Tools - Open-Source Load Balancing Solutions
DNS High-Availability Tools - Open-Source Load Balancing SolutionsDNS High-Availability Tools - Open-Source Load Balancing Solutions
DNS High-Availability Tools - Open-Source Load Balancing Solutions
 
V12 TLS証明書管理の自動化
V12 TLS証明書管理の自動化V12 TLS証明書管理の自動化
V12 TLS証明書管理の自動化
 
An overview of Neo4j Internals
An overview of Neo4j InternalsAn overview of Neo4j Internals
An overview of Neo4j Internals
 
Docker Swarm for Beginner
Docker Swarm for BeginnerDocker Swarm for Beginner
Docker Swarm for Beginner
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
A brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsA brief study on Kubernetes and its components
A brief study on Kubernetes and its components
 
Deep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingDeep dive into Kubernetes Networking
Deep dive into Kubernetes Networking
 
Kubernetes networking & Security
Kubernetes networking & SecurityKubernetes networking & Security
Kubernetes networking & Security
 

Similar to Manticore 6.pdf

Journey through high performance django application
Journey through high performance django applicationJourney through high performance django application
Journey through high performance django applicationbangaloredjangousergroup
 
MySQL HA Orchestrator Proxysql Consul.pdf
MySQL HA Orchestrator Proxysql Consul.pdfMySQL HA Orchestrator Proxysql Consul.pdf
MySQL HA Orchestrator Proxysql Consul.pdfYunusShaikh49
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAsFromDual GmbH
 
Computer Architecture and Organization
Computer Architecture and OrganizationComputer Architecture and Organization
Computer Architecture and Organizationssuserdfc773
 
Mongo nyc nyt + mongodb
Mongo nyc nyt + mongodbMongo nyc nyt + mongodb
Mongo nyc nyt + mongodbDeep Kapadia
 
Building a Unified Logging Layer with Fluentd, Elasticsearch and Kibana
Building a Unified Logging Layer with Fluentd, Elasticsearch and KibanaBuilding a Unified Logging Layer with Fluentd, Elasticsearch and Kibana
Building a Unified Logging Layer with Fluentd, Elasticsearch and KibanaMushfekur Rahman
 
NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1Ruslan Meshenberg
 
Introduction to redis - version 2
Introduction to redis - version 2Introduction to redis - version 2
Introduction to redis - version 2Dvir Volk
 
Distributed unique id generation
Distributed unique id generationDistributed unique id generation
Distributed unique id generationTung Nguyen
 
Introduction to Apache Tajo: Data Warehouse for Big Data
Introduction to Apache Tajo: Data Warehouse for Big DataIntroduction to Apache Tajo: Data Warehouse for Big Data
Introduction to Apache Tajo: Data Warehouse for Big DataJihoon Son
 
An Introduction to Apache Cassandra
An Introduction to Apache CassandraAn Introduction to Apache Cassandra
An Introduction to Apache CassandraSaeid Zebardast
 
Robust C++ Task Systems Through Compile-time Checks
Robust C++ Task Systems Through Compile-time ChecksRobust C++ Task Systems Through Compile-time Checks
Robust C++ Task Systems Through Compile-time ChecksStoyan Nikolov
 
MySQL Query Optimisation 101
MySQL Query Optimisation 101MySQL Query Optimisation 101
MySQL Query Optimisation 101Federico Razzoli
 
21st Athens Big Data Meetup - 1st Talk - Fast and simple data exploration wit...
21st Athens Big Data Meetup - 1st Talk - Fast and simple data exploration wit...21st Athens Big Data Meetup - 1st Talk - Fast and simple data exploration wit...
21st Athens Big Data Meetup - 1st Talk - Fast and simple data exploration wit...Athens Big Data
 
Cassandra 2.1 boot camp, Compaction
Cassandra 2.1 boot camp, CompactionCassandra 2.1 boot camp, Compaction
Cassandra 2.1 boot camp, CompactionJoshua McKenzie
 
EuroPython 2013 - FAST, DOCUMENTED AND RELIABLE JSON BASED WEBSERVICES WITH P...
EuroPython 2013 - FAST, DOCUMENTED AND RELIABLE JSON BASED WEBSERVICES WITH P...EuroPython 2013 - FAST, DOCUMENTED AND RELIABLE JSON BASED WEBSERVICES WITH P...
EuroPython 2013 - FAST, DOCUMENTED AND RELIABLE JSON BASED WEBSERVICES WITH P...Alessandro Molina
 
Type safe, versioned, and rewindable stream processing with Apache {Avro, K...
Type safe, versioned, and rewindable stream processing  with  Apache {Avro, K...Type safe, versioned, and rewindable stream processing  with  Apache {Avro, K...
Type safe, versioned, and rewindable stream processing with Apache {Avro, K...Hisham Mardam-Bey
 

Similar to Manticore 6.pdf (20)

Journey through high performance django application
Journey through high performance django applicationJourney through high performance django application
Journey through high performance django application
 
MySQL HA Orchestrator Proxysql Consul.pdf
MySQL HA Orchestrator Proxysql Consul.pdfMySQL HA Orchestrator Proxysql Consul.pdf
MySQL HA Orchestrator Proxysql Consul.pdf
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAs
 
Intro to cassandra
Intro to cassandraIntro to cassandra
Intro to cassandra
 
Computer Architecture and Organization
Computer Architecture and OrganizationComputer Architecture and Organization
Computer Architecture and Organization
 
Mongo nyc nyt + mongodb
Mongo nyc nyt + mongodbMongo nyc nyt + mongodb
Mongo nyc nyt + mongodb
 
Building a Unified Logging Layer with Fluentd, Elasticsearch and Kibana
Building a Unified Logging Layer with Fluentd, Elasticsearch and KibanaBuilding a Unified Logging Layer with Fluentd, Elasticsearch and Kibana
Building a Unified Logging Layer with Fluentd, Elasticsearch and Kibana
 
NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1
 
Introduction to redis - version 2
Introduction to redis - version 2Introduction to redis - version 2
Introduction to redis - version 2
 
Distributed unique id generation
Distributed unique id generationDistributed unique id generation
Distributed unique id generation
 
Introduction to Apache Tajo: Data Warehouse for Big Data
Introduction to Apache Tajo: Data Warehouse for Big DataIntroduction to Apache Tajo: Data Warehouse for Big Data
Introduction to Apache Tajo: Data Warehouse for Big Data
 
Redis
RedisRedis
Redis
 
An Introduction to Apache Cassandra
An Introduction to Apache CassandraAn Introduction to Apache Cassandra
An Introduction to Apache Cassandra
 
Robust C++ Task Systems Through Compile-time Checks
Robust C++ Task Systems Through Compile-time ChecksRobust C++ Task Systems Through Compile-time Checks
Robust C++ Task Systems Through Compile-time Checks
 
MySQL Query Optimisation 101
MySQL Query Optimisation 101MySQL Query Optimisation 101
MySQL Query Optimisation 101
 
21st Athens Big Data Meetup - 1st Talk - Fast and simple data exploration wit...
21st Athens Big Data Meetup - 1st Talk - Fast and simple data exploration wit...21st Athens Big Data Meetup - 1st Talk - Fast and simple data exploration wit...
21st Athens Big Data Meetup - 1st Talk - Fast and simple data exploration wit...
 
Cassandra 2.1 boot camp, Compaction
Cassandra 2.1 boot camp, CompactionCassandra 2.1 boot camp, Compaction
Cassandra 2.1 boot camp, Compaction
 
EuroPython 2013 - FAST, DOCUMENTED AND RELIABLE JSON BASED WEBSERVICES WITH P...
EuroPython 2013 - FAST, DOCUMENTED AND RELIABLE JSON BASED WEBSERVICES WITH P...EuroPython 2013 - FAST, DOCUMENTED AND RELIABLE JSON BASED WEBSERVICES WITH P...
EuroPython 2013 - FAST, DOCUMENTED AND RELIABLE JSON BASED WEBSERVICES WITH P...
 
Type safe, versioned, and rewindable stream processing with Apache {Avro, K...
Type safe, versioned, and rewindable stream processing  with  Apache {Avro, K...Type safe, versioned, and rewindable stream processing  with  Apache {Avro, K...
Type safe, versioned, and rewindable stream processing with Apache {Avro, K...
 
Solr workshop
Solr workshopSolr workshop
Solr workshop
 

Recently uploaded

Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 

Recently uploaded (20)

Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 

Manticore 6.pdf

  • 2. Manticore Buddy ● Written in PHP 8 ● Supports multithreading ● Comes as a self-extracting PHAR ● Requires manticore-executor ● manticore-executor is just statically built PHP with all needed modules ● apt/yum install manticore manticore-extra installs everything including: ○ Manticore Server ○ Manticore Buddy ○ Manticore-executor ● Works in Linux, Windows and MacOS ● Manticore Search starts Buddy on start ○ And restarts it in case it stops ○ Can be disabled ● Pluggable architecture in progress ● Applications: SHOW QUERIES, auto schema, mysqldump, shards orchestration, Apache superset, Grafana, Opensearch/Elasticsearch Kibana/Logstash/Elasticsearch, new /cli and many-many more
  • 3. ● SHOW THREADS shows threads with thread ids ● SHOW QUERIES shows queries with session ids ● KILL <session id> KILLs the SELECT running in the session ● Only SELECTs can be killed SHOW QUERIES and KILL
  • 4. Elasticsearch-compatible writes New endpoints ● POST /<table name>/_create/<id> ● POST /<table name>/_create/ (auto id) ● PUT /<table name>/_doc/<id> ● POST /_bulk
  • 5. Secondary indexes are ON by default ● Manticore 5: secondary indexes are OFF for searching, but ON for indexing ● Manticore 6: ON for searching too ● SI index format has been changed ● The algorithms have been optimized too
  • 6. Auto-schema ● You don’t have to create a table before writing to it ● Manticore can do auto type-detection ○ Textual data => text ○ Email => string ○ Numeric => int/bigint/float ○ JSON => json ○ Array => multi/multi64 ● ON by default ● searchd.auto_schema=0 disables it
  • 7. ● Manticore uses CBO to decide what to use for non-full-text queries: ○ Just do plain scan ○ Additional data/algorithms: ■ Docid index ■ Columnar scan ■ Secondary indexes ● CBO estimates execution cost using attribute statistics like histograms, PGM and columnar storage statistics ● Execution cost is calculated for every filter in the query ● Multithreaded query execution is considered ○ E.g. queries using secondary/docid indexes always run in a single thread ● Optimizer hints: ○ /*+ DocidIndex(id) */ ○ /*+ SecondaryIndex(<attr_name1>) */ ○ /*+ ColumnarScan(<attr_name1>) */ ○ /*+ NO_ColumnarScan(id) */ Revamp of cost-based query optimizer
  • 8. ● What for: to understand what features we need to prioritize working on ● How do disable: ○ searchd.telemetry = 0 ○ Env. var. TELEMETRY=0 ● All metrics are completely anonymous and no sensitive information is transmitted ● Ex. of what we don’t collect: ○ Any data ○ Table names, field names, hostnames ● Ex. of what we collect: ○ Depersonalized machine ID (hash(machine id)) ○ OS name ○ Manticore version information ○ Instance uptime ○ Whether the instance is running in RT mode or plain mode ○ Whether MCL is used or not ○ Whether crash happened or not ○ Whether backup was called Telemetry
  • 9. FREEZE/UNFREEZE and manticore-backup ● FREEZE is not LOCK. After FREEZE you can: ○ Read from the table. ○ And write to the table to some extent. ● FREEZE returns the list of table files that are immutable until you UNFREEZE ● Eventually the table will be locked, but chances are the backup will be already made then ● Manticore-backup uses FREEZE/UNFREEZE ● Use manticore-backup --restore to restore the whole instance ● Use IMPORT TABLE to restore a specific table ● manticore-backup is written in PHP and uses manticore-executor
  • 10. SQL BACKUP ● SQL BACKUP command does the same as manticore-backup and uses the same code ● BACKUP … OPTION async=1 ● No RESTORE command yet Plans: ● Plain tables backup ● Backup to an external storage (e.g. S3)
  • 11. ● Default max_matches (1000) can be automatically increased up to max_matches_increase_threshold (16384) ○ Useful when pseudo sharding is on (which is by default) ● SELECT .. OPTION accurate_aggregation=1: ○ May disable query parallelization to guarantee accuration aggregation Dynamic max_matches and accurate aggregation
  • 12. ● Manticore Search ● Manticore Columnar Library ● Official docker image Arm64 support
  • 13. ● Manticore 5: from 1 to 263 -1 ● Manticore 6: from -263 +1 to 263 -1 ● Next version: from 1 to 264 -1 + UINT64() 64-bit ID
  • 14. ● History: “full-text index” ● Then we added attributes, docid index, secondary index ● “Index” became confusing ● So we renamed “index” to “table”: ○ in the docs ○ in all the commands ● The old commands are still working Index -> table
  • 15. ● New columnar storage format ○ Have to rebuild the tables ● New secondary indexes file format ○ ALTER TABLE <table name> REBUILD SECONDARY ○ Since it’s on by default now, backwards compatibility will be maintained ● New binlog file format ○ Have to stop cleanly Breaking changes in Manticore 6
  • 16. ● 80+ bugs fixed in Manticore 6 ● New known: memory leak related with Buddy ● Preparing Manticore 6.0.4 maintenance release ● Updated release process: will release more frequently Bugs
  • 17. ● Performance: ○ FT + secondary: ✅ ○ select count(*) where attr… (in progress) ○ Weak-AND for FT (nearest plans) ○ Per-index binlog ○ Parallel merging ● Buddy-related: ○ Mysqldump ✅ ○ /cli ✅ ○ Auto-schema for Elastic-like writes ✅ ○ Various clients integrations (in progress) ○ Kibana / Opensearch dashboards ● Features: ○ Auto-sharding and orchestration Plans