SlideShare a Scribd company logo
1




 Jan Høydahl


               Scaling search with
Cominvent AS




                    SolrCloud
2




Jan Høydahl

              1995: Developer telecom
              1998: Java developer
              2000: Search - FAST
              2006: Lucene
              2007: new Cominvent()
              2009: Lucene/Solr
              2011: Lucene committer
              2012: Lucene PMC


              > 100 projects
3
4




                About Cominvent

                  Business critical search
             Domain knowledge & best practices:




Consulting              Training                  Support
5




SolrTraining.com

                            Next course in Oslo:

                                       SEPTEMBER 2012
                   MONDAY    TUESDAY   WEDNESDAY   THURSDAY   FRIDAY   SATURDAY   SUNDAY



                                                                         1         2
                    3         4          5           6        7          8         9
                   10 11 12 13 14 15 16
                   17 18 19 20 21 22 23
                   24 25 26 27 28 29 30
                            Calendar from www.calendar-of-2012.com
6




http://www.meetup.com/Oslo-Solr-Community
             CommunityZone talk:
                 «Solr 101»
               Thursday 14:20
7




http://www.meetup.com/Oslo-Solr-Community
                next MeetUp:
8




ApacheCon Europe 2012
• Sinsheim, Germany     • Lucene/Solr track
• November 5-8          • www.apachecon.eu
9




Agenda

• Intro to Solr
• Scaling search - before
• Introduction to SolrCloud
• Demo with Wikipedia data
• Plans for Solr going forward
• Q&A
10




Intro to Solr
11




Apache Solr




              Search Server
12




Completely HTTP based
13
14




Areas of use
15




Example: e-commerce




          www.libris.no
16




Boosting by function

Boosting on review popularity
and sales numbers:

log(sum(popularity,numsold))
17




Auto suggest & phonetic normalization
18




Example: classifieds/auctions




          www.finn.no
18




Example: classifieds/auctions




          www.finn.no
19




Who use Apache Lucene/Solr™ ?




..and many more:
http://wiki.apache.org/solr/PublicServers
20




Versions

• Current stable = 3.6.1
• Latest release = 4.0-beta
• Next release = 4.0-FINAL --- «soon» :-)

                                                            v3.6.1

   v1.1     v1.3    v1.4      v3.1    v3.3      v3.6     v4.0a   v4.0ß   v4.0


 01/2007   09/2008 11/2009   03/2011 06/2011   04/2012 06/2012 08/2012 ??/2012

                                                           07/2012
21




Scaling search
22




Why scale?

• One single Solr server handles...
 –millions of documents (per shard)
 –hundreds of queries per second (per replica)
• We need to scale if...
 –data volume increases
 –query volume increases
 –we need high availability / fault tolerance
23




Scaling search - before

       Solr shard 1

       - config, schema
       - synonyms
23




Scaling search - before
                                         - Add shard node
                                         - Manually copy config
                                         - Manually index to right shard
                                         - Manually shards query parameter
       Solr shard 1       Solr shard 2

       - config, schema   - config, schema
       - synonyms         - synonyms
23




Scaling search - before
                                           - Add shard node
                                           - Manually copy config
                                           - Manually index to right shard
                                           - Manually shards query parameter
       Solr shard 1       Solr shard 2

       - config, schema   - config, schema
       - synonyms         - synonyms




       Solr 1 replica     Solr 2 replica

       - config, schema   - config, schema
       - synonyms         - synonyms         - Add replica node
                                             - Copy config
                                             - Setup poll based replication
                                             - No indexing failover
                                             - Monitor every node
24




Solr Cloud
25




What is SolrCloud?

• New in Solr 4.0
• Easier scaling
                                         ZooKeeper: «Because
• Centralized config                     coordinating distributed
                                         systems is a Zoo»
• Fault tolerant indexing and querying
• Using Apache ZooKeeper as «registry»
26




What is SolrCloud
26




What is SolrCloud
26




What is SolrCloud
26




What is SolrCloud




      Logical collection
26




What is SolrCloud




      Logical collection   Soft commit


                           Transaction log
27




Scaling search - with SolrCloud


Solr master 1

ZK aware
                 Apache
                ZooKeeper
27




Scaling search - with SolrCloud
                                            - Add shard node, point it to ZK
                                            - It assumes the role of shard 2
                                            - Automatic document distribution
                                            - Automatic querying across cluster
                                            - Centralized config & monitoring
Solr master 1               Solr master 2

ZK aware                    ZK aware
                 Apache
                ZooKeeper
27




Scaling search - with SolrCloud
                                              - Add shard node, point it to ZK
                                              - It assumes the role of shard 2
                                              - Automatic document distribution
                                              - Automatic querying across cluster
                                              - Centralized config & monitoring
Solr master 1                Solr master 2

ZK aware                     ZK aware
                  Apache
                 ZooKeeper




Solr replica 1               Solr replica 2

ZK aware                     ZK aware
                                              - Add replica node(s)
                                              - Auto role assignment
                                              - Push based replication
                                              - Indexing failover
                                              - Leader election through ZK
27




Scaling search - with SolrCloud


Solr master 1                Solr master 2

ZK aware                     ZK aware
                  Apache
                 ZooKeeper




Solr replica 1               Solr replica 2

ZK aware                     ZK aware
27




Scaling search - with SolrCloud


Solr master 1                Solr master 2

ZK aware                     ZK aware
                  Apache
                 ZooKeeper




Solr replica 1               Solr replica 2
                                  master

ZK aware                     ZK aware
27




Scaling search - with SolrCloud


Solr master 1                Solr master 2
                                  replica

ZK aware                     ZK aware
                  Apache
                 ZooKeeper




Solr replica 1               Solr replica 2
                                  master

ZK aware                     ZK aware
28




Configuration


Solr master 1         Solr master 2

ZK aware              ZK aware
                 ZK




Solr replica 1        Solr replica 2

ZK aware              ZK aware
28




Configuration

                      -DzkRun
Solr master 1         -Dcollection.configName=jz             Solr master 2
                      -DnumShards=2
ZK aware              -Dbootstrap_confdir=./solr/coll/conf   ZK aware
                 ZK




Solr replica 1                                               Solr replica 2

ZK aware                                                     ZK aware
28




Configuration

                      -DzkRun
Solr master 1         -Dcollection.configName=jz             Solr master 2
                      -DnumShards=2                                           -DzkHost=localhost:xxxx
ZK aware              -Dbootstrap_confdir=./solr/coll/conf   ZK aware
                 ZK




Solr replica 1                                               Solr replica 2
                      -DzkHost=localhost:xxxx                                 -DzkHost=localhost:xxxx
ZK aware                                                     ZK aware
29




       Demo
indexing & querying
30




Solr 4.0 and beyond

• Other news in v4.0 FINAL (expected later this autumn)
 –NRT
 –Real-time GET
 –Smaller index & memory footprint
 –New «modern» Admin GUI
 –Incremental updates
 –Pseudo-join
• Future plans
 –More shard distribution mechanisms
 –Re-balancing cluster (split shards)
 –...
31




Recap

• Apache Solr open source enterprise search
• Scaling Solr was hard
• Solr 4.0 with SolrCloud makes it easy :)
 –Centralized config
 –Effortless scaling of cluster
 –Fault tolerant indexing & querying
• Download the 4.0-beta today, 4.0-FINAL soon
32




Remember
                         Next Solr course in Oslo:

                                               SEPTEMBER 2012
                        MONDAY   TUESDAY      WEDNESDAY   THURSDAY      FRIDAY      SATURDAY   SUNDAY



                                                                                      1         2
                         3        4              5           6           7            8         9
                        10 11 12 13 14 15 16
  CommunityZone talk:
      «Solr 101»        17 18 19 20 21 22 23
    Thursday 14:20      24 25 26 27 28 29 30
                                           Calendar from www.calendar-of-2012.com



                                    www.solrkurs.no
33




?    Jan Høydahl
    Cominvent AS
     @cominvent

More Related Content

PDF
First oslo solr community meetup lightning talk janhoy
PPTX
Scaling Solr with Solr Cloud
PDF
SolrCloud Failover and Testing
PDF
Scaling SolrCloud to a Large Number of Collections - Fifth Elephant 2014
PDF
How SolrCloud Changes the User Experience In a Sharded Environment
ODP
Apache SolrCloud
PPTX
Solr 4: Run Solr in SolrCloud Mode on your local file system.
PPTX
SFBay Area Solr Meetup - June 18th: Benchmarking Solr Performance
First oslo solr community meetup lightning talk janhoy
Scaling Solr with Solr Cloud
SolrCloud Failover and Testing
Scaling SolrCloud to a Large Number of Collections - Fifth Elephant 2014
How SolrCloud Changes the User Experience In a Sharded Environment
Apache SolrCloud
Solr 4: Run Solr in SolrCloud Mode on your local file system.
SFBay Area Solr Meetup - June 18th: Benchmarking Solr Performance

What's hot (20)

PDF
Scaling SolrCloud to a Large Number of Collections: Presented by Shalin Shekh...
PPTX
Scaling SolrCloud to a large number of Collections
PDF
Deploying and managing Solr at scale
PDF
Scaling search with SolrCloud
PDF
Cross Datacenter Replication in Apache Solr 6
PPTX
Deploying and managing SolrCloud in the cloud using the Solr Scale Toolkit
PPTX
Solr Compute Cloud - An Elastic SolrCloud Infrastructure
PDF
Best practices for highly available and large scale SolrCloud
PDF
SolrCloud on Hadoop
PPTX
Solrcloud Leader Election
PPTX
Scaling Through Partitioning and Shard Splitting in Solr 4
PDF
Introduction to SolrCloud
PPTX
Solr Exchange: Introduction to SolrCloud
PDF
Oslo Enterprise MeetUp May 12th 2010 - Jan Høydahl
PDF
Call me maybe: Jepsen and flaky networks
PDF
Ease of use in Apache Solr
PDF
Inside Solr 5 - Bangalore Solr/Lucene Meetup
PDF
What's New in Apache Solr 4.10
PPTX
NYC Lucene/Solr Meetup: Spark / Solr
PDF
Building and Running Solr-as-a-Service: Presented by Shai Erera, IBM
Scaling SolrCloud to a Large Number of Collections: Presented by Shalin Shekh...
Scaling SolrCloud to a large number of Collections
Deploying and managing Solr at scale
Scaling search with SolrCloud
Cross Datacenter Replication in Apache Solr 6
Deploying and managing SolrCloud in the cloud using the Solr Scale Toolkit
Solr Compute Cloud - An Elastic SolrCloud Infrastructure
Best practices for highly available and large scale SolrCloud
SolrCloud on Hadoop
Solrcloud Leader Election
Scaling Through Partitioning and Shard Splitting in Solr 4
Introduction to SolrCloud
Solr Exchange: Introduction to SolrCloud
Oslo Enterprise MeetUp May 12th 2010 - Jan Høydahl
Call me maybe: Jepsen and flaky networks
Ease of use in Apache Solr
Inside Solr 5 - Bangalore Solr/Lucene Meetup
What's New in Apache Solr 4.10
NYC Lucene/Solr Meetup: Spark / Solr
Building and Running Solr-as-a-Service: Presented by Shai Erera, IBM
Ad

Viewers also liked (20)

PPT
Elastic search apache_solr
PDF
Real-time Inverted Search in the Cloud Using Lucene and Storm
PPT
Implementing Powerful IT Search on the Cloud
PDF
Practical Search in the Cloud - By Marc Krellenstein
PPTX
Wikipedia Cloud Search Webinar
PDF
Solr cloud the 'search first' nosql database extended deep dive
PPT
Faceting optimizations for Solr
PPTX
Introduction to apache zoo keeper
PDF
Semantic search in the cloud
PDF
Faceting Optimizations for Solr: Presented by Toke Eskildsen, State & Univers...
PPTX
Apache zookeeper seminar_trinh_viet_dung_03_2016
PDF
Top apache solr features
PDF
Solr: 4 big features
DOCX
Amazon cloud search comparison report
PDF
Lessons From Sharding Solr At Etsy: Presented by Gregg Donovan, Etsy
PPTX
Cloud powered search
PDF
EISHI CO. main eps machine catalogue
PPTX
The Cure: A Game with the Purpose of Gene Selection for Breast Cancer Surviva...
PDF
Open source breakfast norge findwise
PPT
Buyer Remorse
Elastic search apache_solr
Real-time Inverted Search in the Cloud Using Lucene and Storm
Implementing Powerful IT Search on the Cloud
Practical Search in the Cloud - By Marc Krellenstein
Wikipedia Cloud Search Webinar
Solr cloud the 'search first' nosql database extended deep dive
Faceting optimizations for Solr
Introduction to apache zoo keeper
Semantic search in the cloud
Faceting Optimizations for Solr: Presented by Toke Eskildsen, State & Univers...
Apache zookeeper seminar_trinh_viet_dung_03_2016
Top apache solr features
Solr: 4 big features
Amazon cloud search comparison report
Lessons From Sharding Solr At Etsy: Presented by Gregg Donovan, Etsy
Cloud powered search
EISHI CO. main eps machine catalogue
The Cure: A Game with the Purpose of Gene Selection for Breast Cancer Surviva...
Open source breakfast norge findwise
Buyer Remorse
Ad

Similar to Scaling search with Solr Cloud (20)

PDF
Oslo Solr MeetUp March 2012 - Solr4 alpha
KEY
ApacheCon Europe 2012 -Big Search 4 Big Data
PDF
Seeley yonik solr performance key innovations
PDF
Building Lanyrd
PDF
Solr4 nosql search_server_2013
PDF
Apache Solr 1.4 – Faster, Easier, and More Versatile than Ever
PPTX
Search Engine Building with Lucene and Solr (So Code Camp San Diego 2014)
PDF
Introduction to Solr
PPTX
Solr site search makes shopping simple
KEY
Solr 101
PDF
Rapid Prototyping with Solr
PDF
Solr @ eBay Kleinanzeigen
PDF
Solr 4 highlights - Mark Miller
PPT
KEY
Big Search with Big Data Principles
PDF
Apache Solr crash course
PDF
[Hic2011] using hadoop lucene-solr-for-large-scale-search by systex
PDF
Taking eZ Find beyond full-text search
Oslo Solr MeetUp March 2012 - Solr4 alpha
ApacheCon Europe 2012 -Big Search 4 Big Data
Seeley yonik solr performance key innovations
Building Lanyrd
Solr4 nosql search_server_2013
Apache Solr 1.4 – Faster, Easier, and More Versatile than Ever
Search Engine Building with Lucene and Solr (So Code Camp San Diego 2014)
Introduction to Solr
Solr site search makes shopping simple
Solr 101
Rapid Prototyping with Solr
Solr @ eBay Kleinanzeigen
Solr 4 highlights - Mark Miller
Big Search with Big Data Principles
Apache Solr crash course
[Hic2011] using hadoop lucene-solr-for-large-scale-search by systex
Taking eZ Find beyond full-text search

More from Cominvent AS (7)

PDF
Solr's missing plugin ecosystem
PDF
Improving the Solr Update Chain
PDF
Dagens Næringslivs overgang til Lucene/Solr søk
PDF
Key topics when migrating from FAST to Solr, EuroCon 2010
PDF
Frokostseminar mai 2010 solr open source cominvent as
PDF
Migrating Fast to Solr
ODP
Cominvent AS company Presentation
Solr's missing plugin ecosystem
Improving the Solr Update Chain
Dagens Næringslivs overgang til Lucene/Solr søk
Key topics when migrating from FAST to Solr, EuroCon 2010
Frokostseminar mai 2010 solr open source cominvent as
Migrating Fast to Solr
Cominvent AS company Presentation

Recently uploaded (20)

PPTX
Big Data Technologies - Introduction.pptx
PDF
Approach and Philosophy of On baking technology
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Encapsulation theory and applications.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Cloud computing and distributed systems.
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PPT
Teaching material agriculture food technology
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Review of recent advances in non-invasive hemoglobin estimation
Big Data Technologies - Introduction.pptx
Approach and Philosophy of On baking technology
Digital-Transformation-Roadmap-for-Companies.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Encapsulation theory and applications.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
20250228 LYD VKU AI Blended-Learning.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Cloud computing and distributed systems.
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Machine learning based COVID-19 study performance prediction
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Chapter 3 Spatial Domain Image Processing.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Unlocking AI with Model Context Protocol (MCP)
Teaching material agriculture food technology
Dropbox Q2 2025 Financial Results & Investor Presentation
The Rise and Fall of 3GPP – Time for a Sabbatical?
Review of recent advances in non-invasive hemoglobin estimation

Scaling search with Solr Cloud

  • 1. 1 Jan Høydahl Scaling search with Cominvent AS SolrCloud
  • 2. 2 Jan Høydahl 1995: Developer telecom 1998: Java developer 2000: Search - FAST 2006: Lucene 2007: new Cominvent() 2009: Lucene/Solr 2011: Lucene committer 2012: Lucene PMC > 100 projects
  • 3. 3
  • 4. 4 About Cominvent Business critical search Domain knowledge & best practices: Consulting Training Support
  • 5. 5 SolrTraining.com Next course in Oslo: SEPTEMBER 2012 MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY SUNDAY 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Calendar from www.calendar-of-2012.com
  • 6. 6 http://www.meetup.com/Oslo-Solr-Community CommunityZone talk: «Solr 101» Thursday 14:20
  • 8. 8 ApacheCon Europe 2012 • Sinsheim, Germany • Lucene/Solr track • November 5-8 • www.apachecon.eu
  • 9. 9 Agenda • Intro to Solr • Scaling search - before • Introduction to SolrCloud • Demo with Wikipedia data • Plans for Solr going forward • Q&A
  • 11. 11 Apache Solr Search Server
  • 13. 13
  • 15. 15 Example: e-commerce www.libris.no
  • 16. 16 Boosting by function Boosting on review popularity and sales numbers: log(sum(popularity,numsold))
  • 17. 17 Auto suggest & phonetic normalization
  • 20. 19 Who use Apache Lucene/Solr™ ? ..and many more: http://wiki.apache.org/solr/PublicServers
  • 21. 20 Versions • Current stable = 3.6.1 • Latest release = 4.0-beta • Next release = 4.0-FINAL --- «soon» :-) v3.6.1 v1.1 v1.3 v1.4 v3.1 v3.3 v3.6 v4.0a v4.0ß v4.0 01/2007 09/2008 11/2009 03/2011 06/2011 04/2012 06/2012 08/2012 ??/2012 07/2012
  • 23. 22 Why scale? • One single Solr server handles... –millions of documents (per shard) –hundreds of queries per second (per replica) • We need to scale if... –data volume increases –query volume increases –we need high availability / fault tolerance
  • 24. 23 Scaling search - before Solr shard 1 - config, schema - synonyms
  • 25. 23 Scaling search - before - Add shard node - Manually copy config - Manually index to right shard - Manually shards query parameter Solr shard 1 Solr shard 2 - config, schema - config, schema - synonyms - synonyms
  • 26. 23 Scaling search - before - Add shard node - Manually copy config - Manually index to right shard - Manually shards query parameter Solr shard 1 Solr shard 2 - config, schema - config, schema - synonyms - synonyms Solr 1 replica Solr 2 replica - config, schema - config, schema - synonyms - synonyms - Add replica node - Copy config - Setup poll based replication - No indexing failover - Monitor every node
  • 28. 25 What is SolrCloud? • New in Solr 4.0 • Easier scaling ZooKeeper: «Because • Centralized config coordinating distributed systems is a Zoo» • Fault tolerant indexing and querying • Using Apache ZooKeeper as «registry»
  • 32. 26 What is SolrCloud Logical collection
  • 33. 26 What is SolrCloud Logical collection Soft commit Transaction log
  • 34. 27 Scaling search - with SolrCloud Solr master 1 ZK aware Apache ZooKeeper
  • 35. 27 Scaling search - with SolrCloud - Add shard node, point it to ZK - It assumes the role of shard 2 - Automatic document distribution - Automatic querying across cluster - Centralized config & monitoring Solr master 1 Solr master 2 ZK aware ZK aware Apache ZooKeeper
  • 36. 27 Scaling search - with SolrCloud - Add shard node, point it to ZK - It assumes the role of shard 2 - Automatic document distribution - Automatic querying across cluster - Centralized config & monitoring Solr master 1 Solr master 2 ZK aware ZK aware Apache ZooKeeper Solr replica 1 Solr replica 2 ZK aware ZK aware - Add replica node(s) - Auto role assignment - Push based replication - Indexing failover - Leader election through ZK
  • 37. 27 Scaling search - with SolrCloud Solr master 1 Solr master 2 ZK aware ZK aware Apache ZooKeeper Solr replica 1 Solr replica 2 ZK aware ZK aware
  • 38. 27 Scaling search - with SolrCloud Solr master 1 Solr master 2 ZK aware ZK aware Apache ZooKeeper Solr replica 1 Solr replica 2 master ZK aware ZK aware
  • 39. 27 Scaling search - with SolrCloud Solr master 1 Solr master 2 replica ZK aware ZK aware Apache ZooKeeper Solr replica 1 Solr replica 2 master ZK aware ZK aware
  • 40. 28 Configuration Solr master 1 Solr master 2 ZK aware ZK aware ZK Solr replica 1 Solr replica 2 ZK aware ZK aware
  • 41. 28 Configuration -DzkRun Solr master 1 -Dcollection.configName=jz Solr master 2 -DnumShards=2 ZK aware -Dbootstrap_confdir=./solr/coll/conf ZK aware ZK Solr replica 1 Solr replica 2 ZK aware ZK aware
  • 42. 28 Configuration -DzkRun Solr master 1 -Dcollection.configName=jz Solr master 2 -DnumShards=2 -DzkHost=localhost:xxxx ZK aware -Dbootstrap_confdir=./solr/coll/conf ZK aware ZK Solr replica 1 Solr replica 2 -DzkHost=localhost:xxxx -DzkHost=localhost:xxxx ZK aware ZK aware
  • 43. 29 Demo indexing & querying
  • 44. 30 Solr 4.0 and beyond • Other news in v4.0 FINAL (expected later this autumn) –NRT –Real-time GET –Smaller index & memory footprint –New «modern» Admin GUI –Incremental updates –Pseudo-join • Future plans –More shard distribution mechanisms –Re-balancing cluster (split shards) –...
  • 45. 31 Recap • Apache Solr open source enterprise search • Scaling Solr was hard • Solr 4.0 with SolrCloud makes it easy :) –Centralized config –Effortless scaling of cluster –Fault tolerant indexing & querying • Download the 4.0-beta today, 4.0-FINAL soon
  • 46. 32 Remember Next Solr course in Oslo: SEPTEMBER 2012 MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY SUNDAY 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 CommunityZone talk: «Solr 101» 17 18 19 20 21 22 23 Thursday 14:20 24 25 26 27 28 29 30 Calendar from www.calendar-of-2012.com www.solrkurs.no
  • 47. 33 ? Jan Høydahl Cominvent AS @cominvent