• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
slides
 

slides

on

  • 460 views

 

Statistics

Views

Total Views
460
Views on SlideShare
460
Embed Views
0

Actions

Likes
0
Downloads
2
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    slides slides Presentation Transcript

    • Supporting RFID-based Item Tracking Applications in Oracle DBMS Using a Bitmap Datatype Ying Hu, Seema Sundara, Timothy Chorma, Jagannathan Srinivasan Oracle New England Development Center One Oracle Drive, Nashua, NH 03062
    • Talk Outline
      • Background
      • A Bitmap Datatype
      • Applications
      • Implementation
      • Performance Study
      • Conclusions
    • Background
    • Radio Frequency Identification
      • RFID uses radio frequency to automatically detect and identify individual items, which have RFID tags associated with them.
      • RFID technology is increasingly being used in applications such as
        • Asset Tracking,
        • Supply Chain Management, and
        • Retail Management.
    • Electronic Product Codes (EPCs)
      • EPC is a standard naming scheme proposed by Auto-Id Center for RFID applications.
      • An EPC uniquely identifies an item. It contains
        • < Header , Manager No., Object Class , Serial No.>
      • The header identifies the format of the EPCtype, the next two components identify the product, whereas the last component uniquely identifies the item within the product.
    • Item Tracking
      • RFID Technology enables item tracking applications
      • However, there is a need for efficient mechanism for managing the high volume of item tracking information .
    • A Bitmap Type for Item Tracking
      • Key Observation : RFID Items can be efficiently tracked by tracking the groups to which an item belongs. For example
        • Groups of items in the same proximity : e.g. on a shelf, on a shipment
        • Groups of items with same property : e.g. items of a single product, items of a single product with same expiry date
      • Our Solution : Use a bitmap type for modeling a collection of EPCs that can occur in item tracking applications.
    • A Bitmap Datatype
    • Example: Product Inventory
      • With EPC Collections
      • With epc_bitmaps
      … p2 p1 Prod_id … t2 t1 Time … s1 s1 Store_id … epc21, epc22, epc23, … epc11, epc12, epc13, … Item_collection … p2 p1 Prod_id … t2 t1 Time … s1 s1 Store_id … bmap2 bmap1 Item_bmap
    • epc_bitmap Datatype
      • A new type to represent a collection of EPCs with a common prefix
      • CREATE TYPE epc_bitmap_segment
      • ( epc_length NUMBER,
      • epc_suffix_length NUMBER,
      • epc_prefix RAW,
      • epc_suffix_start RAW,
      • epc_suffix_end RAW,
      • epc_suffix_bitmap RAW
      • );
      • epc_bitmap type to represent a collection of EPCs
      • CREATE TYPE epc_bitmap IS
      • TABLE of epc_bitmap_segment;
    • epc_bitmap_segment Datatype
      • Header EPC_Manager Object_Class Serial_Number
      • 2-bits 21-bits 17-bits 24-bits
      • 0x 4AA890001F 62C160
      • …………………………
      • 0x 4AA890001F A0B38E
      101001…00010 0xA0B38E 0x62C160 0x4AA890001F 24 64 bitmap Suff_end Suff_start Prefix Suff_len Len
    • epc_bitmap Operations
      • Conversion Operations
        • epc2Bmap , bmap2Epc, and bmap2Count
      • Pairwise Logical Operations
        • bmapAnd , bmapOr , bmapMinus , and bmapXor
      • Maintenance Operations
        • bmapInsert and bmapDelete
      • Membership Testing Operation
        • bmapExists
      • Comparison Operation
        • bmapEqual
    • Applications
    • Applications: Shelf Analytics
      • Determine the items added to a shelf between time t1 and t2
      • SELECT bmap2Epc ( bmapMinus (s2.item_bmap, s1.item_bmap))
      • FROM Shelf_Inventory s1, Shelf_Inventory s2
      • WHERE s1.shelf_id = <sid1> AND
      • s1.shelf_id = s2.shelf_id AND
      • s1.time=<t1> AND s2.time=<t2>;
      • Shelf_Inventory
      … … … bmp2 t2 sid1 bmp1 t1 sid1 Item_bmap Time Shelf_id
    • Applications: Product Recall
      • Identify the stores that currently have recalled items
      • SELECT Store_id FROM Product_Inventory P
      • WHERE bmap2Count ( bmapAnd (P.Item_bmap,
      • epc2Bmap (<recall_items>))) > 0
      • AND P.Product_id=<recall_product_id>
      • AND P.Time = <current_time>;
      • Product_Inventory
      … s2 s1 Store_id … t2 t1 Time … p1 p1 Prod_id … bmap2 bmap1 Item_bmap
    • Implementation
    • Implementation
      • Leverages Oracle’s Bitmap Index Implementation
      • Uses G. Antoshenkov’s “ Byte Aligned Data Compression ” for creation and operation of bitmaps for rowid collections.
      • A collection of EPCs is grouped into different epc_bitmap_segments,
        • When the previous epc_suffix_bitmap (maximum size of RAW = 2000) can not hold any more EPCs
        • When epc_prefixes are different
    • Persistent epc_bitmap
      • Stored in a primary B+-tree structure
      primary B+-tree structure primary key columns non-key columns … … … set_id_I … … … … … Epc_bitmap Data2 Data1 epc_suffix_start epc_ prefix epc_suffix_length epc_ length set_id_i epc_suffix_bitmap epc_suffix_end
    • Query Processing & Optimization
      • epc_bitmap function is executed per row
      • Queries with predicates on bitmap columns can be speeded up
        • Using Function-based B-tree index: On pre-computed value of bmap2Count(bmap_col)
        • SELECT S.shelf_id
        • FROM Shelf_inventory S
        • WHERE bmap2Count (S.item_bmap) > 0 ;
        • Using Summary Bitmap Index
    • Summary Bitmap
      • Specialized index structure to speed up query to detect the presence of an epc identifier
      • SELECT s.shelf_id, s.time FROM Shelf_Inventory s
      • WHERE bmapExists (s.item_bmap, <epc1>);
      • Create a summary bitmap sbmap using OR operation on { bmap 1 , …, bmap k } :
      • bmapExists(sbmap)
      •   i  1…k: bmapExists(bmap i )
    • Summary Bitmap Index Structure root node leaf nodes branch nodes … … EPC Bitmap column Bmp1 Bmp2 <Bmp1,rowid1> Table A Summary Bitmap Tree … … Bmpn <Bmpn,rowidn>
    • Summary Bitmap Index Algorithm
      • DFS(X, epc):
      • X: a node in the tree index;
      • epc: a given epc;
      • bmp(X): the epc_bitmap associated with node X;
      •  
      • if ( bmapExists(bmp(X), epc)== TRUE)
      • { if (X == leaf node)
      • report bmp(X);
      • else
      • for each child node V of X do
      • DFS(V, epc);
      • }
      • Complexity:O(1) , no candidate
      • O(m log N), m: fan-out, N: no. of rows
    • Performance Study
    • Experimental Setup
      • Data represents EPC-64 collections, which are randomly generated with a uniform distribution
      • Data sampled every hour for 30 days(720 obs.), 300 days (7200 obs) and 3000 days (72000 obs).
      • EPC collections of size 100000, 10000 and 1000 represent typical number of items in department and/or shelf
    • Storage Comparison
    • Bulk Load Performance
    • Query 1: Enumerate Removed Items
      • Enumerate the items removed from a shelf between 2 time intervals
      • Collection Type Query
      • SELECT b.epc_value FROM epc_coll a, TABLE(a.epcs) b
      • WHERE a.time = '2004-03-04 10:00 AM'
      • MINUS
      • SELECT b2.epc_value FROM epc_coll a2, TABLE(a2.epcs) b2
      • WHERE a2.time = '2004-03-04 11:00 AM';
      • epc_bitmap Type Query
      • SELECT * FROM TABLE(
      • SELECT bmap2Epc(bmapMinus(p1.epcs,p2.epcs)) 
      • FROM epc_bmp p1, epc_bmp p2
      • WHERE p1.time = '2004-03-04 10:00 AM' AND
      • p2.time = '2004-03-04 11:00 AM');
    • Query 1: Enumerate Removed Items
    • Query 1 with Variant Datasets
    • Query 2: Report All Observations
      • Report all observations when a given EPC was present
      • Collection Type Query
      • SELECT a.time FROM epc_coll a
      • WHERE EXISTS(SELECT 1
      • FROM TABLE(a.epcs) b
      • WHERE b.epc_value = ‘400003000300052A’);
      • epc_bitmap Type Query
      •   SELECT time FROM epc_bmp
      • WHERE bmapExists(epcs, ‘400003000300052A’);
    • Query 2: Report All Observations
    • Performance Discussion
      • Storage savings of 2 to 8 times due to compressed bitmaps
      • Bulk load performance faster due to smaller storage needs
      • For collections of size > 1000, query performance gains of 10% to 1200%
      • For smaller collection sizes, performance is same as native collections
    • Conclusions
      • epc_bitmap can model transient and persistent EPC collections
      • epc_bitmap can be used to support RFID-based item tracking applications
      • An efficient primary B+-tree based storage and access mechanism
      • Performance experiments validate the feasibility and benefits of the epc_bitmap
      • Support can be extended to Row Identifier (rowid) and Life Science Identifier (LSID) collections
    • A Q & Q U E S T I O N S A N S W E R S