SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
German in 7 Million
  Shared Objects
    Jan Schümmer, intelligent views
          Darmstadt, Germany
       j.schuemmer@i-views.de
Outline



       Background
            • intelligent views & K-Infinity
            • BI & Duden
       K-Infinity as a production environment
            • demo
       How we did it
            • architecture
            • scale-up of the standard product
            • Improvements in COAST


© intelligent views gmbh 2002                    2
intelligent views




       • located in Darmstadt, Gemany
       • founded in 1997
       • spin-off enterprise of former GMD – National Research
         Center for Information Technology, institute IPSI




© intelligent views gmbh 2002                                    3
What we are doing




                    add meaning to your data   CMS    content provider
                                                WWW   news, company data etc.



© intelligent views gmbh 2002                                                   4
K-Infinity tool suite

                     Knowledge Builder
                          • schema definition

                     Markup Tool
                          • link documents
                            to the net

                     Usage tools (Java)
                           • Net Navigator
                           • Knowledge
                             Accelerator
                           • Web presentation
                             engines


© intelligent views gmbh 2002                   5
our customer


       publisher of the „Duden“ dictionaries, encyclopaedias etc
       several „Duden“ products
                • German language (10 volumes)
                • standard dictionary (1 volume)
                • specialized dictionaries (etymology, foreign words,
                  sayings, ...)
       requirement: single repository
         for all dictionary
         publications



© intelligent views gmbh 2002                                           6
problem domain


                       dictionary entries contain ...
                                grammar
                       keyword
   origin
                               pragmatics
                                 quotations
                      definition
                   different usages / meanings
                                  references to other entries
                                           phrases
                                examples



© intelligent views gmbh 2002                                   7
knowledge model

                                            grammar
                       Term
             (different meanings)
                                                                 quotations
                                                related lemma
                                                   (keyword)
                                                definition
                                    lemma
                                    (keyword)

                         phrases
                     (usage examples)




          pragmatics                                   sayings
© intelligent views gmbh 2002                                                 8
demo


       organizer
       term editor
       preview




© intelligent views gmbh 2002   9
need to scale up


       211839 keywords (lemmas)
       248965 meanings (terms)
       ± 250000 definitions
       234826 quotations and examples
       17 average attributes & relations per
          lemma with terms
       4 average attributes & relations per
          quotation
       à calculates to 5 998 000 shared        480 MB
          objects
       à actual: 8 177 364 (incl. Index)
       à far too much for K-Infinity in 2001


© intelligent views gmbh 2002                           10
what we did


       measure first
            • there always is a screw
              to turn
            • memory usage and
              performance are related
            • have a look at the
              allocation profiler when
              time profiling doesn‘t
              show results




© intelligent views gmbh 2002            11
Slim down: Object loading (1)


       only load into memory what you really need
            • model objects are organized in clusters
            • clusters are the smallest unit that can be requested from
              the central server (mediator)
            • COAST 1.0
                - whole clusters are loaded on demand

                           frame                  slot              slot value    value
       cluster                        frame                 slot                 value
                         dictionary            dictionary             holder


                                       frame
                                      frame                  slot
                                                            slot



© intelligent views gmbh 2002                                                             12
Slim down: Object loading (2)


       first commercial project
            • delay unmarshaling of structures until they are accessed
              (lazy unmarshaling)
            • keep persistent representation in ByteArrays
            → reduced number of objects to be created during cluster
              loading
            → untouched objects can be directly written from their
              ByteArray representation

                              frame
         cluster                         frame    unmarshaled byte array
                            dictionary


                                          frame
                                         frame
© intelligent views gmbh 2002                                              13
Slim down: Object loading (3)


       latest improvement
            • stream clusters to disk cache
            • create empty frames for those objects that are not needed
              at the moment
            • lazy unmarshaling/loading from disk cache




                                            frame                pointer to
                                cluster                frame
                                          dictionary            disk cache


                                                        frame
                                                       frame
© intelligent views gmbh 2002                                                 14
object loading: memory footprints



                                          before               after
        Class                       instances     bytes instances    bytes   +- byte
      1 ByteArray                     275976 22723153         172    96926 -22626227
      2 TwoByteString                   74554 2655308       74554 2655308          0
      3 Array                            7710 2597668        7662 2592020      -5648
      4 IdentityDictionary                620 2389560         603 2385784      -3776
      5 COAST.CatCSFrameLocator         79182 1583640       79182 1583640          0
      6 KInfinity.KMarkupAttribute      50759 1421252       50759 1421252          0
     14 IdentitySet                     14517    555636     14523 555852         216
     15 KInfinity.BIFABChangeRecord     16696    467488     16696 467488           0
     16 COAST.CatFSSlot                  9138    328968      9143 329148         180
     17 ByteString                       1403     54734      1509    55400       666




© intelligent views gmbh 2002                                                          15
Slim down at application level


            • shortcuts within the model to avoid loading
              intermediate objects
            • re-clustering to have those objects together that
              are typically needed together
            • add index structures to avoid searching
            • in general: Be careful when traversing object
              structures




© intelligent views gmbh 2002                                     16
Slim down: Programming tricks


          avoid large ST Dictionaries and Sets, instead
            •    use more compact data types (e.g. Array)
            •    teach WeakDictionary to shrink
            •    consider using IdentityDictionary instead of Dictionary
            •    get rid of instance variables
            •    have a look at memory allocation for temporaries:
                   importantObjects := (myLargeCollection collect:
                                               [ :e | e -> e foo1 ])
                            select: [ :assoc | assoc key foo2 ].
                   ^ importantObjects anyElement value


© intelligent views gmbh 2002                                              17
Lowest level possible


       The VisualWorks VM
            • bulk load problems in 2001 were finally solved by
              reducing object allocation and –footprint (lazy
              unmarshaling)
            • specialised MemoryPolicy
               - thanks to John M. McIntosh and ESUG 2001
            • hard problems while importing
               - Out of memory in scavange.c (ine 1622)
                           - This was not an endless loop
                    - Solved by setting FreeMemoryUperBound to max
                           - Thanks to Cincom support and Eliot Miranda



© intelligent views gmbh 2002                                             18
Performance: Get the sumo to dance




© intelligent views gmbh 2002               19
performance 1


       some user interfaces simply don‘t scale up
            • drop down lists
            • composite views with many elements
       strategy: change the interface without losing functionality




© intelligent views gmbh 2002                                        20
performance 2



       even slim sumos get fat when they are fed too much
            • e.g. structural queries
       strategy: let others do the work ;-)
            • delegate time/resource consuming tasks to dedicated
              processes




© intelligent views gmbh 2002                                       21
Behind the Scenes

          K-Infinity standard architecture

                                                XML cache
                                       XML                  XML
                                                            XML
                                                             XML

                        XML bridge                 XML                servlet
                                                                                web server

                                       native


                      administration
                          tool
                                       native
                                                 COAST       native
                                                                             external
                                                 server                     interfaces
                        Knowledge
                          builder                 native
                                                                                              legacy
                                                                                             systems
                                                 storage

© intelligent views gmbh 2002                                                                          22
architecture scale-up


     fat-client architecture, but time- and/or memory
           consuming tasks are better performed on on a server
     solution: specialised servers for e.g. structural queries, full
           text index queries

              administration tool
                                      COAST               query
                                      server              server
                        knowledge
                        Knowledge-
                         Knowledge-
                          builder
                          Builder
                           Builder
                        term editor
                                      storage

© intelligent views gmbh 2002                                          23
programmer‘s view


       Distributed computing with COAST
            • process communication via shared state
            • c.f. Linda tuple spaces




       shared between UI & job clients
© intelligent views gmbh 2002                          24
programmer‘s view (2)

                                ui client         job executor client
        • create a (search) job object
        • add it to the global job pool
        • open a view on the result set
                                            • wake up & take job (mark it as
                                              #inProgress)
        • Coast view updating visualizes
          #inProgress
                                            • execute job
                                            • write result into some shared
                                              object

        • Coast view updating visualizes
          results
© intelligent views gmbh 2002                                                  25
tools & practices


       „Take advantage of the tools“
            •    no magic involved
            •    allocation profiler
            •    time profiler
            •    SystemAnalyzer>>showSystemHistogram

       optimisations in underlying layers rather than in the
       concrete application
              •... application tuning has local effect
              •... low level optimizations let the whole system benefit
       get it run – get it right – get it fast
© intelligent views gmbh 2002                                             26
The COAST Framework

                           ere it
                         wh
                    ber an
                  em eg
               Rem all b

    Support the development of
                 - object oriented
                 - synchronous
                 - interactive, and
                 - complex
    groupware applications

© intelligent views gmbh 2002         27
How we use COAST


       underlying technology for K-Infinity
            •    persistence
            •    transactions & concurrency control
            •    user interface (automatic view updating)
            •    modelling (object behavior framework)
       COAST evolves towards an OO database
            • data volume is still growing
            • most features that you would expect from an OODBMS
            • we are tuning COAST as well as K-Infinity
               • 12 800 empty transactions/second on this 500 MHz PC

© intelligent views gmbh 2002                                          28
you can use COAST for free



       COAST is open source

       It is included as a goodie in Cincom‘s VisualWorks 7 release

       Feedback, usage experiences, and contributions are highly
         welcomed




© intelligent views gmbh 2002                                         29
further information




     www.i-views.de

     www.opencoast.org
© intelligent views gmbh 2002   30

Weitere ähnliche Inhalte

Ähnlich wie German in 7 Million Shared Objects

Domain Driven Design Development Spring Portfolio
Domain Driven Design Development Spring PortfolioDomain Driven Design Development Spring Portfolio
Domain Driven Design Development Spring PortfolioSrini Penchikala
 
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...lseinturier
 
Migrating from Unstructured to Structured FrameMaker
Migrating from Unstructured to Structured FrameMakerMigrating from Unstructured to Structured FrameMaker
Migrating from Unstructured to Structured FrameMakerScott Abel
 
Framework Engineering
Framework EngineeringFramework Engineering
Framework EngineeringYoungSu Son
 
Optimizing HTML5 Sites with CQ5/WEM
Optimizing HTML5 Sites with CQ5/WEMOptimizing HTML5 Sites with CQ5/WEM
Optimizing HTML5 Sites with CQ5/WEMGabriel Walt
 
EclipseConEurope2012 SOA - Models As Operational Documentation
EclipseConEurope2012 SOA - Models As Operational DocumentationEclipseConEurope2012 SOA - Models As Operational Documentation
EclipseConEurope2012 SOA - Models As Operational DocumentationMarc Dutoo
 
Cloud Foundry Open Tour - London
Cloud Foundry Open Tour - LondonCloud Foundry Open Tour - London
Cloud Foundry Open Tour - Londonmarklucovsky
 
Best practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini PatilBest practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini PatilRoopa Nadkarni
 
Cast Iron Overview Webinar 6.13
Cast Iron Overview Webinar 6.13Cast Iron Overview Webinar 6.13
Cast Iron Overview Webinar 6.13gaborvodics
 
From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012
From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012
From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012Marc Dutoo
 
Framework Engineering_Final
Framework Engineering_FinalFramework Engineering_Final
Framework Engineering_FinalYoungSu Son
 
The NRB Group mainframe day 2021 - Containerisation on Z - Paul Pilotto - Seb...
The NRB Group mainframe day 2021 - Containerisation on Z - Paul Pilotto - Seb...The NRB Group mainframe day 2021 - Containerisation on Z - Paul Pilotto - Seb...
The NRB Group mainframe day 2021 - Containerisation on Z - Paul Pilotto - Seb...NRB
 
Dynamic Languages in Production: Progress and Open Challenges
Dynamic Languages in Production: Progress and Open ChallengesDynamic Languages in Production: Progress and Open Challenges
Dynamic Languages in Production: Progress and Open Challengesbcantrill
 
IBM Cloud Paris Meetup - 20180628 - Rex on ODM on Cloud
IBM Cloud Paris Meetup - 20180628 - Rex on ODM on CloudIBM Cloud Paris Meetup - 20180628 - Rex on ODM on Cloud
IBM Cloud Paris Meetup - 20180628 - Rex on ODM on CloudIBM France Lab
 
X plat dev - part ii publish
X plat dev - part ii publishX plat dev - part ii publish
X plat dev - part ii publishTekObserver
 
Cast Iron Overview Webinar 6.13.12 Final(Jb)
Cast Iron Overview Webinar 6.13.12 Final(Jb)Cast Iron Overview Webinar 6.13.12 Final(Jb)
Cast Iron Overview Webinar 6.13.12 Final(Jb)Carolyn Crowe
 
Distributed Software Development with Scrum and Social Coding
Distributed Software Development with Scrum and Social Coding Distributed Software Development with Scrum and Social Coding
Distributed Software Development with Scrum and Social Coding Intland Software GmbH
 
Dancing about architecture
Dancing about architectureDancing about architecture
Dancing about architectureCoraline Ehmke
 

Ähnlich wie German in 7 Million Shared Objects (20)

Domain Driven Design Development Spring Portfolio
Domain Driven Design Development Spring PortfolioDomain Driven Design Development Spring Portfolio
Domain Driven Design Development Spring Portfolio
 
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...
 
Migrating from Unstructured to Structured FrameMaker
Migrating from Unstructured to Structured FrameMakerMigrating from Unstructured to Structured FrameMaker
Migrating from Unstructured to Structured FrameMaker
 
Framework Engineering
Framework EngineeringFramework Engineering
Framework Engineering
 
Optimizing HTML5 Sites with CQ5/WEM
Optimizing HTML5 Sites with CQ5/WEMOptimizing HTML5 Sites with CQ5/WEM
Optimizing HTML5 Sites with CQ5/WEM
 
EclipseConEurope2012 SOA - Models As Operational Documentation
EclipseConEurope2012 SOA - Models As Operational DocumentationEclipseConEurope2012 SOA - Models As Operational Documentation
EclipseConEurope2012 SOA - Models As Operational Documentation
 
Cloud Foundry Open Tour - London
Cloud Foundry Open Tour - LondonCloud Foundry Open Tour - London
Cloud Foundry Open Tour - London
 
Best practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini PatilBest practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini Patil
 
Dan Haywood
Dan HaywoodDan Haywood
Dan Haywood
 
Cast Iron Overview Webinar 6.13
Cast Iron Overview Webinar 6.13Cast Iron Overview Webinar 6.13
Cast Iron Overview Webinar 6.13
 
From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012
From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012
From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012
 
PIM4Cloud
PIM4CloudPIM4Cloud
PIM4Cloud
 
Framework Engineering_Final
Framework Engineering_FinalFramework Engineering_Final
Framework Engineering_Final
 
The NRB Group mainframe day 2021 - Containerisation on Z - Paul Pilotto - Seb...
The NRB Group mainframe day 2021 - Containerisation on Z - Paul Pilotto - Seb...The NRB Group mainframe day 2021 - Containerisation on Z - Paul Pilotto - Seb...
The NRB Group mainframe day 2021 - Containerisation on Z - Paul Pilotto - Seb...
 
Dynamic Languages in Production: Progress and Open Challenges
Dynamic Languages in Production: Progress and Open ChallengesDynamic Languages in Production: Progress and Open Challenges
Dynamic Languages in Production: Progress and Open Challenges
 
IBM Cloud Paris Meetup - 20180628 - Rex on ODM on Cloud
IBM Cloud Paris Meetup - 20180628 - Rex on ODM on CloudIBM Cloud Paris Meetup - 20180628 - Rex on ODM on Cloud
IBM Cloud Paris Meetup - 20180628 - Rex on ODM on Cloud
 
X plat dev - part ii publish
X plat dev - part ii publishX plat dev - part ii publish
X plat dev - part ii publish
 
Cast Iron Overview Webinar 6.13.12 Final(Jb)
Cast Iron Overview Webinar 6.13.12 Final(Jb)Cast Iron Overview Webinar 6.13.12 Final(Jb)
Cast Iron Overview Webinar 6.13.12 Final(Jb)
 
Distributed Software Development with Scrum and Social Coding
Distributed Software Development with Scrum and Social Coding Distributed Software Development with Scrum and Social Coding
Distributed Software Development with Scrum and Social Coding
 
Dancing about architecture
Dancing about architectureDancing about architecture
Dancing about architecture
 

Mehr von ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsESUG
 

Mehr von ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Kürzlich hochgeladen

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 

Kürzlich hochgeladen (20)

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

German in 7 Million Shared Objects

  • 1. German in 7 Million Shared Objects Jan Schümmer, intelligent views Darmstadt, Germany j.schuemmer@i-views.de
  • 2. Outline Background • intelligent views & K-Infinity • BI & Duden K-Infinity as a production environment • demo How we did it • architecture • scale-up of the standard product • Improvements in COAST © intelligent views gmbh 2002 2
  • 3. intelligent views • located in Darmstadt, Gemany • founded in 1997 • spin-off enterprise of former GMD – National Research Center for Information Technology, institute IPSI © intelligent views gmbh 2002 3
  • 4. What we are doing add meaning to your data CMS content provider WWW news, company data etc. © intelligent views gmbh 2002 4
  • 5. K-Infinity tool suite Knowledge Builder • schema definition Markup Tool • link documents to the net Usage tools (Java) • Net Navigator • Knowledge Accelerator • Web presentation engines © intelligent views gmbh 2002 5
  • 6. our customer publisher of the „Duden“ dictionaries, encyclopaedias etc several „Duden“ products • German language (10 volumes) • standard dictionary (1 volume) • specialized dictionaries (etymology, foreign words, sayings, ...) requirement: single repository for all dictionary publications © intelligent views gmbh 2002 6
  • 7. problem domain dictionary entries contain ... grammar keyword origin pragmatics quotations definition different usages / meanings references to other entries phrases examples © intelligent views gmbh 2002 7
  • 8. knowledge model grammar Term (different meanings) quotations related lemma (keyword) definition lemma (keyword) phrases (usage examples) pragmatics sayings © intelligent views gmbh 2002 8
  • 9. demo organizer term editor preview © intelligent views gmbh 2002 9
  • 10. need to scale up 211839 keywords (lemmas) 248965 meanings (terms) ± 250000 definitions 234826 quotations and examples 17 average attributes & relations per lemma with terms 4 average attributes & relations per quotation à calculates to 5 998 000 shared 480 MB objects à actual: 8 177 364 (incl. Index) à far too much for K-Infinity in 2001 © intelligent views gmbh 2002 10
  • 11. what we did measure first • there always is a screw to turn • memory usage and performance are related • have a look at the allocation profiler when time profiling doesn‘t show results © intelligent views gmbh 2002 11
  • 12. Slim down: Object loading (1) only load into memory what you really need • model objects are organized in clusters • clusters are the smallest unit that can be requested from the central server (mediator) • COAST 1.0 - whole clusters are loaded on demand frame slot slot value value cluster frame slot value dictionary dictionary holder frame frame slot slot © intelligent views gmbh 2002 12
  • 13. Slim down: Object loading (2) first commercial project • delay unmarshaling of structures until they are accessed (lazy unmarshaling) • keep persistent representation in ByteArrays → reduced number of objects to be created during cluster loading → untouched objects can be directly written from their ByteArray representation frame cluster frame unmarshaled byte array dictionary frame frame © intelligent views gmbh 2002 13
  • 14. Slim down: Object loading (3) latest improvement • stream clusters to disk cache • create empty frames for those objects that are not needed at the moment • lazy unmarshaling/loading from disk cache frame pointer to cluster frame dictionary disk cache frame frame © intelligent views gmbh 2002 14
  • 15. object loading: memory footprints before after Class instances bytes instances bytes +- byte 1 ByteArray 275976 22723153 172 96926 -22626227 2 TwoByteString 74554 2655308 74554 2655308 0 3 Array 7710 2597668 7662 2592020 -5648 4 IdentityDictionary 620 2389560 603 2385784 -3776 5 COAST.CatCSFrameLocator 79182 1583640 79182 1583640 0 6 KInfinity.KMarkupAttribute 50759 1421252 50759 1421252 0 14 IdentitySet 14517 555636 14523 555852 216 15 KInfinity.BIFABChangeRecord 16696 467488 16696 467488 0 16 COAST.CatFSSlot 9138 328968 9143 329148 180 17 ByteString 1403 54734 1509 55400 666 © intelligent views gmbh 2002 15
  • 16. Slim down at application level • shortcuts within the model to avoid loading intermediate objects • re-clustering to have those objects together that are typically needed together • add index structures to avoid searching • in general: Be careful when traversing object structures © intelligent views gmbh 2002 16
  • 17. Slim down: Programming tricks avoid large ST Dictionaries and Sets, instead • use more compact data types (e.g. Array) • teach WeakDictionary to shrink • consider using IdentityDictionary instead of Dictionary • get rid of instance variables • have a look at memory allocation for temporaries: importantObjects := (myLargeCollection collect: [ :e | e -> e foo1 ]) select: [ :assoc | assoc key foo2 ]. ^ importantObjects anyElement value © intelligent views gmbh 2002 17
  • 18. Lowest level possible The VisualWorks VM • bulk load problems in 2001 were finally solved by reducing object allocation and –footprint (lazy unmarshaling) • specialised MemoryPolicy - thanks to John M. McIntosh and ESUG 2001 • hard problems while importing - Out of memory in scavange.c (ine 1622) - This was not an endless loop - Solved by setting FreeMemoryUperBound to max - Thanks to Cincom support and Eliot Miranda © intelligent views gmbh 2002 18
  • 19. Performance: Get the sumo to dance © intelligent views gmbh 2002 19
  • 20. performance 1 some user interfaces simply don‘t scale up • drop down lists • composite views with many elements strategy: change the interface without losing functionality © intelligent views gmbh 2002 20
  • 21. performance 2 even slim sumos get fat when they are fed too much • e.g. structural queries strategy: let others do the work ;-) • delegate time/resource consuming tasks to dedicated processes © intelligent views gmbh 2002 21
  • 22. Behind the Scenes K-Infinity standard architecture XML cache XML XML XML XML XML bridge XML servlet web server native administration tool native COAST native external server interfaces Knowledge builder native legacy systems storage © intelligent views gmbh 2002 22
  • 23. architecture scale-up fat-client architecture, but time- and/or memory consuming tasks are better performed on on a server solution: specialised servers for e.g. structural queries, full text index queries administration tool COAST query server server knowledge Knowledge- Knowledge- builder Builder Builder term editor storage © intelligent views gmbh 2002 23
  • 24. programmer‘s view Distributed computing with COAST • process communication via shared state • c.f. Linda tuple spaces shared between UI & job clients © intelligent views gmbh 2002 24
  • 25. programmer‘s view (2) ui client job executor client • create a (search) job object • add it to the global job pool • open a view on the result set • wake up & take job (mark it as #inProgress) • Coast view updating visualizes #inProgress • execute job • write result into some shared object • Coast view updating visualizes results © intelligent views gmbh 2002 25
  • 26. tools & practices „Take advantage of the tools“ • no magic involved • allocation profiler • time profiler • SystemAnalyzer>>showSystemHistogram optimisations in underlying layers rather than in the concrete application •... application tuning has local effect •... low level optimizations let the whole system benefit get it run – get it right – get it fast © intelligent views gmbh 2002 26
  • 27. The COAST Framework ere it wh ber an em eg Rem all b Support the development of - object oriented - synchronous - interactive, and - complex groupware applications © intelligent views gmbh 2002 27
  • 28. How we use COAST underlying technology for K-Infinity • persistence • transactions & concurrency control • user interface (automatic view updating) • modelling (object behavior framework) COAST evolves towards an OO database • data volume is still growing • most features that you would expect from an OODBMS • we are tuning COAST as well as K-Infinity • 12 800 empty transactions/second on this 500 MHz PC © intelligent views gmbh 2002 28
  • 29. you can use COAST for free COAST is open source It is included as a goodie in Cincom‘s VisualWorks 7 release Feedback, usage experiences, and contributions are highly welcomed © intelligent views gmbh 2002 29
  • 30. further information www.i-views.de www.opencoast.org © intelligent views gmbh 2002 30