|
|
| Line 8: |
Line 8: |
|
| |
|
| This page gives a high level overview of a potential solution to this problem that involves replacing the Thrift communication layer with a higher level API that lives outside of HBase and provides an intermediate queuing and temporary storage layer in addition to a REST interface that contains the necessary business logic needed to store and retrieve crash report data. | | This page gives a high level overview of a potential solution to this problem that involves replacing the Thrift communication layer with a higher level API that lives outside of HBase and provides an intermediate queuing and temporary storage layer in addition to a REST interface that contains the necessary business logic needed to store and retrieve crash report data. |
|
| |
| == REST Layer ==
| |
|
| |
| ;store single data value for a new or existing crash report
| |
| :takes an ooid in the URL and can store any one of the data types listed below.
| |
| * PUT /crash_report/<ooid>
| |
| ** raw meta JSON
| |
| ** raw minidump
| |
| ** processed JSON
| |
| ** flags (throttling, priority, crash type)
| |
| ** ids (hang_id, signature, etc)
| |
|
| |
| ;store multiple data values for one or more new or existing crash reports
| |
| :each section of the body contains the crash report ooid, column name, and column value
| |
| * PUT /crash_report/<false-row-key>
| |
|
| |
| ;retrieving crash report information
| |
| :takes an ooid and a comma separated list of data types (i.e. columns) to retrieve. i.e. /crash_report/d4e9616d-4197-4975-af04-de8942101002/meta,dump
| |
| * GET /crash_report/<ooid>
| |
| ** /(meta|dump|processed|flags|ids)*
| |
|
| |
| ;create a scanner on a table or queue
| |
| :Body of the post can take a batch size argument that will determine how many items will be returned on each call to the scanner's retrieval method. If creating the scanner succeeds, it returns a 201 response with a URI to call whenever more items are needed
| |
| * POST /<table>/scanner
| |
| ** batch=#
| |
| ** (meta|dump|processed|flags|ids)*
| |
| ** start key
| |
| ** end key
| |
| ** cache params
| |
|
| |
| ;retrieve next value(s) from scanner
| |
| :Each time this GET is called, it will return up to the number of items configured by the batch parameter of the scanner creation.
| |
| * GET /<table>/scanner/<scanner-id>
| |
|
| |
| HBase REST (Stargate) documentation can be found [http://wiki.apache.org/hadoop/Hbase/Stargate here].
| |
|
| |
|
| == Queue and persistance layer == | | == Queue and persistance layer == |