Hey, Google: Scan Away! Jake Harr and Jeff Pool tell you why
A Match Made in Heaven
Storage • Correctness • Extendable design
Storage • Correctness – Integrity checking within the database – NormalizaGon • Extendable design
Storage • Correctness • Extendable design – Not locked into predetermined publicaGon types – Can add full texts simply – Can also add other objects • Images • Video
Storage Details
Retrieval • Robust • Extendable • Modular • Synergy • Performant
Retrieval • Robust – Unit tesGng • Extendable • Modular • Synergy • Performant
Retrieval • Robust • Extendable – Different DB engine – Different language • Modular • Synergy • Performant
Retrieval • Robust • Extendable • Modular – Each class encapsulates funcGonality – DB gateway, SQL interface • Synergy • Performant
Retrieval • Robust • Extendable • Modular • Synergy – It’s bigger than all of us – You can’t fight it • Performant
Retrieval • Robust • Extendable • Modular • Synergy • Performant – DB is only accessed when necessary – Query caching system in place and modifiable
Retrieval • C++/Java/Python • Mapping • SQL Layer • JDBC Layer
Mappers • Deliver Objects to the Client • Only accept certain requests – Find ____ by _____ • Don’t know anything about: – SQL – JDBC – Databases
Gateway • Accepts an AbstractQuery, made of: – Tables to join – A\ributes to find – RestricGons (WHERE clause) • Equality, substring matching, regexp, etc. • Queries the QueryCache • Generates a proper query, depending on flavor • Returns a relaGon to the calling Mapper
QueryCache • Hashes AbstractQueries to their associated RelaGons • Simple for now, but effecGve with mulGple users • Can be easily modified and extended • No extra work is necessary, will improve performance much like a hardware cache
SQLGenerator • Can be wri\en in many flavors • Factory pa\ern – mySQLGenerator – MSSQLGenerator – Etc… • Take a list of tables, a\ributes, and restricGons • Generates properly forma\ed SQL query
DBConnecGon • Currently JDBC • Can change with minimal effort (single class) • Accepts a properly forma\ed query • Executes the query, packages the resulGng RelaGon • RelaGon is returned to Gateway
Recommend
More recommend