Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

Performance Improvements in hybris 5.1

Performance Improvements in hybris 5.1

Avatar for Thomas Hertz @ hybris

Thomas Hertz @ hybris

June 24, 2013
Tweet

Other Decks in Technology

Transcript

  1. New Initialization Process (5.1) Service Layer Direct (5.1) Media CDN

    Integration Standard Cache Cluster Communication JGroups Tenant Handling Optimized DB Writes Impact Mass Data, Catalog Sync CPU / Page Impressions NoSQL Persistence (5.1) Cockpit Improvements Overview Improvements Scenario
  2. New Initialization Process (5.1) Service Layer Direct (5.1) Media CDN

    Integration Standard Cache Cluster Communication JGroups Tenant Handling Optimized DB Writes Impact Mass Data, Catalog Sync CPU / Page Impressions NoSQL Persistence (5.1) Cockpit Improvements Overview Improvements Scenario
  3. Tenant Simplifications ➡ Get rid of the “hacked” tenant scope

    in Spring and go back to standard Spring ➡ KEEP IT SIMPLE! ➡ Not only is this much cleaner in terms of architecture… ➡ ...it also is much faster
  4. Tenant Simplifications – How it works <bean id=“someService“ scope="tenant"> <aop:scoped-proxy/>

    </bean> <bean id=“anotherService“ scope="tenant“/> <bean id=“someSingleton“> <property name=“service“ ref=“someService“/> <lookup-method name=“service“ bean=“anotherService“/> </bean> 4.x <bean id=“someService“/> <bean id=“anotherService“/> <bean id=“someSingleton“> <property name=“service“ ref=“someService“/> <property name=“serviceToo“ ref=“anotherService“/> </bean> 5.x
  5. New Initialization Process (5.1) Service Layer Direct (5.1) Media CDN

    Integration Standard Cache Cluster Communication JGroups Tenant Handling Optimized DB Writes Impact Mass Data, Catalog Sync CPU / Page Impressions NoSQL Persistence (5.1) Cockpit Improvements Overview Improvements Scenario
  6. Optimized DB Writes ➡ For Creation of Items avoid unnecessary

    UPDATE’s after the initial INSERT ➡ Can reduce # of statements by 50% ➡ Helps during mass data Impex Imports and Catalog Synchronization
  7. New Initialization Process (5.1) Service Layer Direct (5.1) Media CDN

    Integration Standard Cache Cluster Communication JGroups Tenant Handling Optimized DB Writes Impact Mass Data, Catalog Sync CPU / Page Impressions NoSQL Persistence (5.1) Cockpit Improvements Overview Improvements Scenario
  8. Cache Improvements ➡ EHCache as default Cache Provider ➡ Generational

    Keys and Serializable Keys/Content (as preparation for remote cache) ➡ Reduced Object Creation (good for GC) ➡ Reduced Memory Footprint ➡ Cache Regions (since 4.6)
  9. Cache – Region Cache Example 400000 Business Objects Size: Eviction

    Strategy: FIFO 20000 Query Results Size: Eviction Strategy: FIFO 100000 Medias Size: Eviction Strategy: LRU Unlimited Languages/Currencies Size: Eviction Strategy: None
  10. New Initialization Process (5.1) Service Layer Direct (5.1) Media CDN

    Integration Standard Cache Cluster Communication JGroups Tenant Handling Optimized DB Writes Impact Mass Data, Catalog Sync CPU / Page Impressions NoSQL Persistence (5.1) Cockpit Improvements Overview Improvements Scenario
  11. Propriatary TCP Propriatary UDP JGroups # local.properties cluster.broadcast.methods=jgroups cluster.broadcast.jgroups.bind_addr=127.0.0.1 cluster.broadcast.jgroups.bind_port=7800

    cluster.broadcast.jgroups.channel.name=hybris-broadcast JGroups Cluster Communication hybri Cluste ris ter 4 hybris Cluster 5 hybris Cluster 6 hybris Cluster 7
  12. New Initialization Process (5.1) Service Layer Direct (5.1) Media CDN

    Integration Standard Cache Cluster Communication JGroups Tenant Handling Optimized DB Writes Impact Mass Data, Catalog Sync CPU / Page Impressions NoSQL Persistence (5.1) Cockpit Improvements Overview Improvements Scenario
  13. ➡ Operational Transparency (see all schema modifications upfront) ➡ Massively

    reduced initialization times (around 3x) ➡ 1 pass generation, pure SQL statements executed against DB ➡ First tests for “Update system” suggest even higher improvements (coming in later releases) New System Initialization
  14. Meta Data Generator meta-data.sql system- data.sql Types, Attributes, Relations, Enums,...

    PK Ranges, System Users, Languages, ... Schema Generator schema.ddl Tables, Columns, Indexes, Constraints platform$ ant createschema * New System Initialization – How it works * final name of ant target could vary
  15. New Initialization Process (5.1) Service Layer Direct (5.1) Media CDN

    Integration Standard Cache Cluster Communication JGroups Tenant Handling Optimized DB Writes Impact Mass Data, Catalog Sync CPU / Page Impressions NoSQL Persistence (5.1) Cockpit Improvements Overview Improvements Scenario
  16. JDBC / Database Service Layer Cache ServiceLayer Direct Persistence Jalo

    Item API HJMP Service Layer Direct – How it works
  17. ➡ Next step in removing “Jalo” – completely bypass Jalo

    Persistence ➡ Much faster writes ➡ Better cache usage (1 cache entry per business object instead of 2) ➡ If you still use Jalo Logic  don’t worry, this optimization can be activated by type Service Layer Direct
  18. New Initialization Process (5.1) Service Layer Direct (5.1) Media CDN

    Integration Standard Cache Cluster Communication JGroups Tenant Handling Optimized DB Writes Impact Mass Data, Catalog Sync CPU / Page Impressions NoSQL Persistence (5.1) Cockpit Improvements Overview Improvements Scenario
  19. Cockpit Improvements ➡ Goal was to improve performance for cockpit

    customers with complex data and large data sets ➡ Improvements were made to all cockpits! ➡ Significant Improvements in UI Responsiveness ➡ Significant server side improvements in memory consumption and data transmitted to browser ➡ One Customer showed a 54x improvement (from 54s to 1s for a single page rendering)
  20. New Initialization Process (5.1) Service Layer Direct (5.1) Media CDN

    Integration Standard Cache Cluster Communication JGroups Tenant Handling Optimized DB Writes Impact Mass Data, Catalog Sync CPU / Page Impressions NoSQL Persistence (5.1) Cockpit Improvements Overview Improvements Scenario
  21. Media CDN Integration – How it works CLIENT Local Disk/NFS

    in hybris f1 f2 Amazon S3 f1 f2 Cloudfront f1 f2 Local Disk/NFS in hybris f1 f2 public interface MediaStorageStrategy { StoredMediaData storeMedia( String folder, String dataPK, Map metaData, InputStream data); ... }
  22. Media CDN Integration ➡ Transparentely configure how and where media

    files are stored and referenced from ➡ New Remote Storage Strategies shipped: ➡ Amazon S3 with Cloudfront CDN ➡ Microsoft Azure Blob Storage with Azure CDN ➡ GridFS local storage ➡ Akamai (coming later) ➡ Easy to configure / extend through simple interface
  23. New Initialization Process (5.1) Service Layer Direct (5.1) Media CDN

    Integration Standard Cache Cluster Communication JGroups Tenant Handling Optimized DB Writes Impact Mass Data, Catalog Sync CPU / Page Impressions NoSQL Persistence (5.1) Cockpit Improvements Overview Improvements Scenario
  24. NoSQL Persistence ➡ Support for NoSQL Data Storages (5.1: Cassandra,

    MongoDB, Neo4J) ➡ Support of schemaless attributes (“Zero Downtime”) ➡ Integrated Pluggable Distributed Cache ➡ Coming OnPremise with improved Core / ServiceLayer architecture in 5.1 ➡ Already used in hybris OMS OnDemand for Inventory/Stock (MongoDB)
  25. hybris Core Ext1 Ext2 Ext3 OCC Ext4 ServiceLayer ServiceLayer+ Ext5

    hybris Core+ Oracle SQL Server MySQL + Cassandra MongoDB Neo4J Ext6 Ext7 Ext8 Core and Core+ with NoSQL
  26. REMARKS? QUESTIONS? We answer them all! Also, visit our public

    Google+ Technology Blog: http://gplus.to/hybristech YOU