Jump to: navigation, search

Difference between revisions of "MetadataSearch"

(Filled out part of proposed structure from Lincoln's talk... more to come)
(Referencing openstack-dev email thread)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
=Proposed Metadata Search API=
 
=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.
+
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 Icehouse design summit in Hong Kong.
  
Blueprint: https://blueprints.launchpad.net/swift/+spec/searchable-metadata<br/>
+
See the [[MetadataSearchAPI]] Wiki page for the entire API specification. It now supersedes the original PDF of the specification, which can still be found here for historic purposes: [[File:OSMS API v0.8 external.pdf]]
Etherpad: https://etherpad.openstack.org/p/icehouse-swift-metadata-search<br />
 
Session: http://icehousedesignsummit.sched.org/event/66176e0859c0fc933d50988b5dc89c12<br />
 
  
* Existing implementations
+
Feel free to edit the Wiki pages to add your comments about the API, either to the  [[MetadataSearchAPI]] Wiki page or its [[Talk:MetadataSearchAPI]] Discussion page. (Pull down Page... Discussion from the API page to get to that page.)
** SoftLayer: http://sldn.softlayer.com/article/API-Operations-Search-Services
+
Use the signature Wiki notation of 4 tilde chars: <nowiki>~~~~</nowiki> so others can easily see who said what. Example:
 +
[[User:Lincoln Thomas|lincoln-thomas]] ([[User talk:Lincoln Thomas|talk]]) 01:38, 11 January 2014 (UTC)
  
==Search API Version==
+
Other resources:
* 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==
+
Blueprint: https://blueprints.launchpad.net/swift/+spec/searchable-metadata<br />
* An object (unlikely to be used): <code>/acct1/cont2/obj3</code>
+
Design session: http://icehousedesignsummit.sched.org/event/66176e0859c0fc933d50988b5dc89c12<br />
* A container (and all of its objects): <code>/acct1/cont2</code>
+
Slides presented and discussed at design session: [[File:Object Storage Metadata Search Design Session v4.pdf]]<br />
* An account (and all of its containers and objects): <code>/acct1</code>
+
Etherpad: https://etherpad.openstack.org/p/icehouse-swift-metadata-search<br />
* The entire object store (across all accounts): <code>[/]</code>
 
  
==Search criteria==
+
Swift meeting discussion: [http://eavesdrop.openstack.org/meetings/swift/2013/swift.2013-11-13-19.01.log.html#l-126 2013-11-13 initial discussion] ([http://eavesdrop.openstack.org/meetings/swift/2013/swift.2013-11-13-19.01.html full meeting])<br />
    [&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)
+
Email discussion thread on openstack-dev:  
* Simpler: support only AND (multiple ANDs OK)
+
[http://lists.openstack.org/pipermail/openstack-dev/2013-November/thread.html#19014 initial thread Nov 2013]
* Services request shows whether simple (ANDs only) or complex supported
+
[http://lists.openstack.org/pipermail/openstack-dev/2014-January/thread.html#24041 Jan 2014]<br/>
 +
(See also later months TBD, same thread)
  
===Searching across accounts===
+
* Existing implementations
 
+
** SoftLayer: http://sldn.softlayer.com/article/API-Operations-Search-Services
==="Authorized Searchers" feature===
 
 
 
===Search live and recently deleted items===
 
 
 
==Complete URI structure==
 
 
 
==List of attributes to return==
 
 
 
==Filter parameters==
 
 
 
==Output format parameters==
 

Latest revision as of 03:08, 22 January 2014

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 Icehouse design summit in Hong Kong.

See the MetadataSearchAPI Wiki page for the entire API specification. It now supersedes the original PDF of the specification, which can still be found here for historic purposes: File:OSMS API v0.8 external.pdf

Feel free to edit the Wiki pages to add your comments about the API, either to the MetadataSearchAPI Wiki page or its Talk:MetadataSearchAPI Discussion page. (Pull down Page... Discussion from the API page to get to that page.) Use the signature Wiki notation of 4 tilde chars: ~~~~ so others can easily see who said what. Example: lincoln-thomas (talk) 01:38, 11 January 2014 (UTC)

Other resources:

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

Swift meeting discussion: 2013-11-13 initial discussion (full meeting)

Email discussion thread on openstack-dev: initial thread Nov 2013 Jan 2014
(See also later months TBD, same thread)