- 
                            
    Keynote - Vision & Strategy
    Fabien PinckaersWykonano
- 
                            
    Opening Keynote - Unveiling Odoo 17
    Fabien PinckaersWykonano
- 
                            
    OdooGPT: LLMs based on ChatGPT Trained specifically for Odoo Customers, Consultants, Developers and Partners
    Sohel MerchantWykonano
- 
                            
    How-to: From Netsuite to Odoo
    Marek ZádaWykonano
- 
                            
    Transforming Real Estate Management: The Palm City Residences Odoo Success Story
    Ghaith Sadok ammarWykonano
- 
                            
    Implementing headless eCommerce with Odoo / Nuxt.js and Redis cache
    Diogo DuarteWykonano
- 
                            
    Revolutionising Real Estate Management with Odoo
    Van Baelen GeertWykonano
- 
                            
    Automatic classification of  helpdesk tickets on the Odoo platform through Natural Language Processing techniques
    Serena PalazzoWykonano
- 
                            
    Bay Alarm Rings the Sound of Success with a 36% Increase in ROI through Odoo
    Chintan ShahWykonano
- 
                            
    Data Migrator Tool
    Tony MasciWykonano
Alexandre has been working with Odoo at Camptocamp since 2012 and OpenERP 6.1. He is a long time Odoo community contributor, and he is passionate about sharing knowledge.
Odoo is using the Repeatable Read isolation level of PostgreSQL, and this has some implications on how the server behaves and how you should write the code of your custom addons to avoid costly retries or completely blocking interactive usage of the Odoo instance because a of a long running scheduled action.
This talk targets experienced Odoo developers. We will start by explaining the differences between the PostgreSQL transaction isolation level used by Odoo (Repeatable Read) and the default isolation level used by PostgreSQL (Read Committed). We will then see how concurrent access errors are reported and dealt with by Odoo server. Finally we will dig into the topic of correctly locking in custom modules, using both implicit locks and explicit locking, and how to properly wait for a lock to be released or check for the existence of a lock on some rows. We will also see some SQL tricks enabling to skip locked rows in a transaction.
