GemStone/S Indexed Collection Primer


Published on

Title: GemStone/S Indexed Collection Primer
Speaker: Dale Henrichs
Thu, August 21, 12:00pm – 12:30pm

Video Part1:
Video Part2:

Abstract: GemStone/S indexes provide a way to locate specific objects in a collection by value. Indexing a Collection creates internal structures such as balanced trees (Btrees). Only a few message sends are needed to lookup a value or range of values in the indexing structures. When collections are indexed, they can return results without having to iterate the collection or send messages to each object.

In this talk Dale will provide a detailed overview of the capabilities of GemStone/S indexes.

Bio: Dale Henrichs has been working in Smalltalk since 1985 when he developed an internal application on the Tektronix 4404. The internal application was used at Tektronix for at least 25 years and may still be in use today! Since 1985 he has been lucky enough to work in Smalltalk nearly full-time, spending the last 15 years at GemStone give or take a couple of years.

Published in: Software
1 Comment
  • Video Part1:
    Video Part2:
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

GemStone/S Indexed Collection Primer

  1. 1. GemStone/S Indexed Collection Primer Dale Henrichs GemTalk Systems ESUG 2014
  2. 2. Why Indexes? Efficient Query Execution! 1.6M element population (8300 element result set): 3800ms - select block query 10ms - indexed query
  3. 3. GemStone/S Indexes ! • Indexes are built against UnorderedCollections • Indexes are based on the instance variables of the objects in the collection. • Indexes are automatically updated when instance variables are changed • Indexes use B-trees for efficient equality-based lookup
  4. 4. Query derived from select expression
  5. 5. Query Predicates
  6. 6. Query variable binding and execution
  7. 7. Index derived from Query
  8. 8. Last ElementClass • Expected class of last element in path term • Any class that responds to comparison messages (< > <= >= = ~=) can be used • “Basic” Classes cache representative values in B-tree and are restricted to #isKindOf:.
  9. 9. Additional Path Terms and Operators
  10. 10. Index Options
  11. 11. Query Evaluation Options
  12. 12. Query Object Model
  13. 13. GsDevKit Tutorial
  14. 14. Futures • We intend to open source the Query API and implementation • Hasso Plattner Institut Senior project to port the Query API to Squeak
  15. 15. Resources • GemTalk Systems • • GsDevKit GitHub project • • GsDevKit Indexing tutorial (mail me for availability of tutorial) •