Life of a GSoC Student

Embed Size (px)

Citation preview

  • 1. Raj Kissu Rajandran Life of A GsoC Student

2. Google Summer of Code

  • What Is It?
  • How I Got Involved
  • The Project:
    • BLOBStreaming Support in phpMyAdmin
  • Mentors:
    • Marc Delisle
    • Paul McCullagh

3. What Is A BLOB?

  • Binary Large Object
  • Commonly used to store files in databases
  • File types: MP3s, Videos, Photos, etc
  • Advantages of BLOBs:
    • Transactional operations
    • Consistent Backups
  • Disadvantages of BLOBs:
    • BLOB columns slow down reading of tables
    • Databases become large easily

4. BLOBStreaming

  • What Is It?
  • Advantages:
    • Avoid dangling references
    • Fast backups
    • Fast replication
    • Better scalability
  • Requires:
    • MySQL, phpMyAdmin
    • PBXT, MyBS

5. Goals of BLOBStreaming

  • Store BLOBs of any size
  • Stream BLOBs in and out of databases
  • Open system usable by all storage engines
  • Standardised client API for applications

6. What Is phpMyAdmin?

  • Web-based GUI for managing MySQL
  • Open Source community-driven project
  • SourceForge.Net Community Choice Awards 2008 Winner:
    • Most Likely to Be the Next $1B Acquisition
    • Best Tool or Utility for SysAdmins
  • SourceForge.Net Community Choice Awards 2008 Finalist:
    • Best Tool or Utility for Developers

7. What Is PBXT?

  • Pluggable storage engine (MySQL v5.1.x)
  • Supports Transactions
  • ACID Compliance (PBXT v1.0 onwards)
  • Referential Integrity
  • Supports BLOBStreaming
  • Open Source
  • Developed by PrimeBase Technologies (http://www.primebase.org)

8. What Is MyBS?

  • Storage Engine
  • Stores/Streams BLOBs (MySQL v5.1.x)
  • Built-in Web Server
  • BLOB Repository
  • Provides API for storage engines to reference/dereference BLOBs
  • Open Source
  • Developed By PrimeBase Technologies

9. BLOBStreaming Architecture Reproduced with permission from Paul McCullagh, (c) 2008 PrimeBase Technologies 10. BLOBStreaming Support in phpMyAdmin

  • How It Works:
    • Plugin Detection
    • Supported Databases Detection
    • CURL Detection
    • Upload to BLOB Repository
    • Streaming of BLOBs via BLOB References
    • Removal of BLOB References

11. PROJECT DEMONSTRATION 12. Project Limitations

  • CURL
  • No uploading to BLOB Repository via FTP
  • Upload Limitations imposed by PHP:
    • memory_limit
    • max_execution_time
    • upload_max_filesize
    • post_max_size

13. Future Goals

  • Feature Customisation
  • Support for CURL alternatives (like wput)
  • Upload to the BLOB repository via FTP
  • Multipart/form-data handling

14. Resources

  • phpMyAdmin:
    • http://www.phpmyadmin.net
  • PBXT:
    • http://sourceforge.net/projects/pbxt
  • MyBS:
    • http://sourceforge.net/projects/mybs
  • Project SVN:
    • svn://sebastianmendel.de/phpMyAdmin_gsoc2008_bs
  • PBXT/MyBS Blog:
    • http://pbxt.blogspot.com
  • Project Blog:
    • http://code.kissu.org

15. Q & A 16. THANKS FOR LISTENING!