Jump to: navigation, search

Difference between revisions of "MetadataSearch"

(Filled out part of proposed structure from Lincoln's talk... more to come)
(Added design session slides and API doc)
Line 3: Line 3:
 
This document is a work in progress used to define the proposed API for searching account, container, and object metadata in Swift/Object Storage. It was discussed in a design summit session on 7 November 2013 at the Ice House summit in Hong Kong.
 
This document is a work in progress used to define the proposed API for searching account, container, and object metadata in Swift/Object Storage. It was discussed in a design summit session on 7 November 2013 at the Ice House summit in Hong Kong.
  
 +
Proposed REST API: [[File:OSMS API v0.8 external.pdf]]<br/>
 
Blueprint: https://blueprints.launchpad.net/swift/+spec/searchable-metadata<br/>
 
Blueprint: https://blueprints.launchpad.net/swift/+spec/searchable-metadata<br/>
 +
Design session: http://icehousedesignsummit.sched.org/event/66176e0859c0fc933d50988b5dc89c12<br />
 +
Slides presented and discussed at design session: [[File:Object Storage Metadata Search Design Session v4.pdf]]<br/>
 
Etherpad: https://etherpad.openstack.org/p/icehouse-swift-metadata-search<br />
 
Etherpad: https://etherpad.openstack.org/p/icehouse-swift-metadata-search<br />
Session: http://icehousedesignsummit.sched.org/event/66176e0859c0fc933d50988b5dc89c12<br />
 
  
 
* Existing implementations
 
* Existing implementations

Revision as of 04:06, 12 November 2013

Proposed Metadata Search API

This document is a work in progress used to define the proposed API for searching account, container, and object metadata in Swift/Object Storage. It was discussed in a design summit session on 7 November 2013 at the Ice House summit in Hong Kong.

Proposed REST API: File:OSMS API v0.8 external.pdf
Blueprint: https://blueprints.launchpad.net/swift/+spec/searchable-metadata
Design session: http://icehousedesignsummit.sched.org/event/66176e0859c0fc933d50988b5dc89c12
Slides presented and discussed at design session: File:Object Storage Metadata Search Design Session v4.pdf
Etherpad: https://etherpad.openstack.org/p/icehouse-swift-metadata-search

Search API Version

  • Extends base Swift API
  • Doesn't affect existing base request handling
  • Search API Version independent of base API version, e.g.:
    GET /<object storage API version>[/<account>[/<container>[/<object>]]]?<search API version>/...

Search scopes

  • An object (unlikely to be used): /acct1/cont2/obj3
  • A container (and all of its objects): /acct1/cont2
  • An account (and all of its containers and objects): /acct1
  • The entire object store (across all accounts): [/]

Search criteria

   [&query=[(]<query expr1>[ [AND|OR] <query expr2>][)][ [AND|OR]...] ]

...where:

   query expr=<query attr><operator><query value>

...and `<operator>` is one of:

   =, !=, <, <=, >, >=, ~
  • Note: Generating SQL query for complex boolean expressions across multiple tables may be complex! (If using SQL)
  • Simpler: support only AND (multiple ANDs OK)
  • Services request shows whether simple (ANDs only) or complex supported

Searching across accounts

"Authorized Searchers" feature

Search live and recently deleted items

Complete URI structure

List of attributes to return

Filter parameters

Output format parameters