Squeak DBX

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Squeak DBX - Presentation Transcript

    1. Smalltalk Programmer Ing. Mariano Martínez Peck marianopeck@gmail.com
    2. SqueakDBX The complete and G IN to E T open-source solution Kdatabase A R relational M access
    3. SqueakDBX team Mariano Germán Hernán Cassinelli M. Peck Esteban Lorenzano Palacios
    4. F.A.Q Who are we? How did it begin? What is actually SqueakDBX?
    5. RDBMS VS. OODB Please, don't fight ;)
    6. Anyway, we rather program in objects and use RDBMS than using Java with RDBMS ;)
    7. Survey 1/2 How many times were you forced to use a particular database?
    8. Survey 2/2 Which databases?
    9. Squeak's current situation Only MySQL and PostgreSQL native drivers. Limited ODBC driver Glorp in Squeak only works with PostgreSQL
    10. We are in trouble... Direct SQL queries: 20% Using GLORP: 8.52%
    11. Our goal Direct SQL queries: 100% Using GLORP: 100%
    12. Our purpose
    13. OpenDBX architecture Oracle uses oci.h and and libmysqlclient_r. MySQL uses mysql.h libclntsh. It has N functions. M functions. Common API for all backends!!! Examples: OCIHandleAlloc(), OCIServerAttach(), mysql_real_connect(), mysql_server_end(), OCISessionEnd(), etc. mysql_real_query(), etc. Oracle MySQL PosgreSQL Sqlite SQLServer client client client client client library library library library library
    14. Why OpenDBX? It is fast Simple to use Flexible Cross platform Asynchronous queries Specific RDBMS features Good documentation
    15. Deployment and infrastructure PC1 PC2 Squeak image Database OpenDBX Database Client Library
    16. Smalltalk and C Squeak image | OpenDBX #include <stdio.h> #include <stdio.h> static int mysql_odbx_get_option( odbx_t*) static int mysql_odbx_get_option( odbx_t*) switch( option ) switch( option ) ..... .....
    17. Smalltalk-C Connector FFI (Foreign Function Interface) Main problem: Locks the entire VM
    18. Squeak ODBC driver queries VM locked time
    19. OpenDBX Connector FFI (Foreign Function Interface) Main problem: Locks the entire VM Our solution: ✔ Asynchronous queries ✔ “Mini” VM locks ✔ Retry schema ✔ DBXQuerySettings>>timeout:
    20. SqueakDBX queries VM locked time
    21. Database access in Smalltalk SqueakDBX Smalltalk driver ✔ One for all databases ✗ One for each database ✔ Less time and effort ✗ More time and effort ✔ Good performace ✗ Performance issues? ✔ OSS and proprietary ✗ Only OSS ✗ Difficult to debug ✔ Easier to debug ✗ Platform dependent ✔ Platform independent ✗ FFI locks the VM ✔ Non-locking
    22. SqueakDBX design SqueakDBX Structure (API) SqueakDBX Structure (API) SqueakDBX Platform SqueakDBX Platform OpenDBX Connector OpenDBX Connector { { DBXConnection DBXConnectionSettings DBXResultSet DBXPlatform DBXResult DBXSpecialOptions DBXRow DBXErrorSeverity ... DBXTimeSpec ... FFI FFI SqueakDBXPlugin SqueakDBXPlugin OpenDBX
    23. Showtime
    24. Who can use SqueakDBX? An application Glorp Magritte-RDB SqueakSave Moe
    25. Current backends and OS
    26. Benchmark for PostgreSQL 1800 1600 1400 1200 1000 ms 800 SqueakDBX Native 600 400 200 0 Converted Insert Select1000 Insert Select100 tests
    27. Benchmark for MySQL 700 600 500 400 ms 300 SqueakDBX Native 200 100 0 Converted Insert Select1000 Insert Select100 tests
    28. Features Mini VM locks SqueakDBXPlugin Automatic fields conversion Configurable logging/trace Special RDBMS features Multistatements Automatic release of resources
    29. What do we have? Enough unit tests Acceptable test coverage SmallLint runs Good enough design GLORP integration
    30. Documentation Website Documented code Mailing list Benchmarks
    31. What will come Complete Glorp refactor and integration More backends in more OS Large objects support Better SPs and functions support Continue with SqueakDBXPlugin Try Alien FFI Port to Smalltalk/X ?
    32. Glorp progress Port from Squeak to Pharo First refactor to SqueakDatabaseAccesor Driver for native driver Driver for SqueakDBX (PostgreSQL)
    33. Glorp before SqueakDBX
    34. Glorp after SqueakDBX
    35. Special thanks to... Norbert Sendetzky GLORP Alan Knight Stéphane Ducasse
    36. aConnection execute: 'select * from questions where has_answer = true' Ing. Mariano Martínez Peck marianopeck@gmail.com
    37. Thank you very much

    + ESUGESUG, 2 months ago

    custom

    619 views, 0 favs, 2 embeds more stats

    Squeak DBX

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 619
      • 609 on SlideShare
      • 10 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 5
    Most viewed embeds
    • 6 views on http://www.squeakdbx.org
    • 4 views on http://squeakdbx.smallworks.com.ar

    more

    All embeds
    • 6 views on http://www.squeakdbx.org
    • 4 views on http://squeakdbx.smallworks.com.ar

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories