SLIDE 1
Hey, Google: Scan Away! Jake Harr and Jeff Pool tell you why A - - PowerPoint PPT Presentation
Hey, Google: Scan Away! Jake Harr and Jeff Pool tell you why A - - PowerPoint PPT Presentation
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
SLIDE 2
SLIDE 3
Storage
- Correctness
- Extendable design
SLIDE 4
Storage
- Correctness
– Integrity checking within the database – NormalizaGon
- Extendable design
SLIDE 5
Storage
- Correctness
- Extendable design
– Not locked into predetermined publicaGon types – Can add full texts simply – Can also add other objects
- Images
- Video
SLIDE 6
Storage Details
SLIDE 7
Retrieval
- Robust
- Extendable
- Modular
- Synergy
- Performant
SLIDE 8
Retrieval
- Robust
– Unit tesGng
- Extendable
- Modular
- Synergy
- Performant
SLIDE 9
Retrieval
- Robust
- Extendable
– Different DB engine – Different language
- Modular
- Synergy
- Performant
SLIDE 10
Retrieval
- Robust
- Extendable
- Modular
– Each class encapsulates funcGonality – DB gateway, SQL interface
- Synergy
- Performant
SLIDE 11
Retrieval
- Robust
- Extendable
- Modular
- Synergy
– It’s bigger than all of us – You can’t fight it
- Performant
SLIDE 12
Retrieval
- Robust
- Extendable
- Modular
- Synergy
- Performant
– DB is only accessed when necessary – Query caching system in place and modifiable
SLIDE 13
Retrieval
- C++/Java/Python
- Mapping
- SQL Layer
- JDBC Layer
SLIDE 14
Mappers
- Deliver Objects to the Client
- Only accept certain requests
– Find ____ by _____
- Don’t know anything about:
– SQL – JDBC – Databases
SLIDE 15
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
SLIDE 16
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
SLIDE 17
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
SLIDE 18
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