Ask and You Shall Receive: Empirically Evaluating Declarative - - PowerPoint PPT Presentation
Ask and You Shall Receive: Empirically Evaluating Declarative - - PowerPoint PPT Presentation
Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps William F . Jones and Gregory M. Kapfhammer Allegheny College http://www.cs.allegheny.edu/ gkapfham/ 20th International
Introduction Query Methods Empirical Study Conclusion
Overview of the Presentation
Finding Data in Unstructured Heaps
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Overview of the Presentation
Finding Data in Unstructured Heaps Challenges
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Overview of the Presentation
Finding Data in Unstructured Heaps Challenges Solutions
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Overview of the Presentation
Finding Data in Unstructured Heaps Challenges Solutions Benchmarking Framework
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Overview of the Presentation
Finding Data in Unstructured Heaps Challenges Solutions Benchmarking Framework JQL: Java Query Language
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Overview of the Presentation
Finding Data in Unstructured Heaps Challenges Solutions Benchmarking Framework JQL: Java Query Language JoSQL: Java Objects Struc- tured Query Language
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Overview of the Presentation
Finding Data in Unstructured Heaps Challenges Solutions Benchmarking Framework JQL: Java Query Language JoSQL: Java Objects Struc- tured Query Language HC: Hand Coded Iterative Methods
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Overview of the Presentation
Finding Data in Unstructured Heaps Challenges Solutions Benchmarking Framework JQL: Java Query Language JoSQL: Java Objects Struc- tured Query Language HC: Hand Coded Iterative Methods Comprehensive Empirical Study
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Overview of the Presentation
Finding Data in Unstructured Heaps Challenges Solutions Benchmarking Framework JQL: Java Query Language JoSQL: Java Objects Struc- tured Query Language HC: Hand Coded Iterative Methods Comprehensive Empirical Study Experiments Reveal Trade-offs in Performance and Overall Viability
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Correctly and Efficiently Finding Objects in the Heap
The unstructured heap in a Java virtual machine stores
- bjects that are connected in
complex and unpredictable ways (Xu and Rountev, ICSE 2008)
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Correctly and Efficiently Finding Objects in the Heap
The unstructured heap in a Java virtual machine stores
- bjects that are connected in
complex and unpredictable ways (Xu and Rountev, ICSE 2008) When is an Object Allocated to the Heap? LinkedList list = new LinkedList()
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Correctly and Efficiently Finding Objects in the Heap
The unstructured heap in a Java virtual machine stores
- bjects that are connected in
complex and unpredictable ways (Xu and Rountev, ICSE 2008) When is an Object Allocated to the Heap? LinkedList list = new LinkedList() Let’s Allocate Some Objects to the Heap!
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Correctly and Efficiently Finding Objects in the Heap
uk−1 uk uk+1 wk−1 B wk B wk+1 B · · · xk−1 A xk A xk+1 · · · vk−1 H vk H vk+1 H zk−1 zk zk+1
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Correctly and Efficiently Finding Objects in the Heap
uk−1 uk uk+1 wk−1 B wk B wk+1 B · · · xk−1 A xk A xk+1 · · · vk−1 H vk H vk+1 H zk−1 zk zk+1
S00 T01 S01 T02 S02 T03 S03 T04 S04 T05 S05 T06 S06 T07 S07 T08 S08 T09.0 T09.1 S09 T10 S10 T11 S11 T12 S12 T13 S13 T14 S14 T15 S15 T16 S16 T17 S17 T18 S18 T19 S19 T20 S20 T21 S21 T22.0 T22.1 S22
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Correctly and Efficiently Finding Objects in the Heap
uk−1 uk uk+1 wk−1 B wk B wk+1 B · · · xk−1 A xk A xk+1 · · · vk−1 H vk H vk+1 H zk−1 zk zk+1
S00 T01 S01 T02 S02 T03 S03 T04 S04 T05 S05 T06 S06 T07 S07 T08 S08 T09.0 T09.1 S09 T10 S10 T11 S11 T12 S12 T13 S13 T14 S14 T15 S15 T16 S16 T17 S17 T18 S18 T19 S19 T20 S20 T21 S21 T22.0 T22.1 S22
55 119 5 238 94 ∅
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Correctly and Efficiently Finding Objects in the Heap
uk−1 uk uk+1 wk−1 B wk B wk+1 B · · · xk−1 A xk A xk+1 · · · vk−1 H vk H vk+1 H zk−1 zk zk+1
S00 T01 S01 T02 S02 T03 S03 T04 S04 T05 S05 T06 S06 T07 S07 T08 S08 T09.0 T09.1 S09 T10 S10 T11 S11 T12 S12 T13 S13 T14 S14 T15 S15 T16 S16 T17 S17 T18 S18 T19 S19 T20 S20 T21 S21 T22.0 T22.1 S22
55 119 5 238 94 ∅ Root ... 22 5 19
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Correctly and Efficiently Finding Objects in the Heap
uk−1 uk uk+1 wk−1 B wk B wk+1 B · · · xk−1 A xk A xk+1 · · · vk−1 H vk H vk+1 H zk−1 zk zk+1
S00 T01 S01 T02 S02 T03 S03 T04 S04 T05 S05 T06 S06 T07 S07 T08 S08 T09.0 T09.1 S09 T10 S10 T11 S11 T12 S12 T13 S13 T14 S14 T15 S15 T16 S16 T17 S17 T18 S18 T19 S19 T20 S20 T21 S21 T22.0 T22.1 S22
55 119 5 238 94 ∅ Root ... 22 5 19 Start 75 ...
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Correctly and Efficiently Finding Objects in the Heap
uk−1 uk uk+1 wk−1 B wk B wk+1 B · · · xk−1 A xk A xk+1 · · · vk−1 H vk H vk+1 H zk−1 zk zk+1
S00 T01 S01 T02 S02 T03 S03 T04 S04 T05 S05 T06 S06 T07 S07 T08 S08 T09.0 T09.1 S09 T10 S10 T11 S11 T12 S12 T13 S13 T14 S14 T15 S15 T16 S16 T17 S17 T18 S18 T19 S19 T20 S20 T21 S21 T22.0 T22.1 S22
55 119 5 238 94 ∅ Root ... 22 5 19 Start 75 ... LinkedList Node(s) with Values Greater Than Those in the Trees
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Correctly and Efficiently Finding Objects in the Heap
uk−1 uk uk+1 wk−1 B wk B wk+1 B · · · xk−1 A xk A xk+1 · · · vk−1 H vk H vk+1 H zk−1 zk zk+1
S00 T01 S01 T02 S02 T03 S03 T04 S04 T05 S05 T06 S06 T07 S07 T08 S08 T09.0 T09.1 S09 T10 S10 T11 S11 T12 S12 T13 S13 T14 S14 T15 S15 T16 S16 T17 S17 T18 S18 T19 S19 T20 S20 T21 S21 T22.0 T22.1 S22
55 119 5 238 94 ∅ Root ... 22 5 19 Start 75 ... LinkedList Node(s) with Values Greater Than Those in the Trees 238
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Correctly and Efficiently Finding Objects in the Heap
uk−1 uk uk+1 wk−1 B wk B wk+1 B · · · xk−1 A xk A xk+1 · · · vk−1 H vk H vk+1 H zk−1 zk zk+1
S00 T01 S01 T02 S02 T03 S03 T04 S04 T05 S05 T06 S06 T07 S07 T08 S08 T09.0 T09.1 S09 T10 S10 T11 S11 T12 S12 T13 S13 T14 S14 T15 S15 T16 S16 T17 S17 T18 S18 T19 S19 T20 S20 T21 S21 T22.0 T22.1 S22
55 119 5 238 94 ∅ Root ... 22 5 19 Start 75 ... 238 How Do We Find These Nodes?
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Correctly and Efficiently Finding Objects in the Heap
uk−1 uk uk+1 wk−1 B wk B wk+1 B · · · xk−1 A xk A xk+1 · · · vk−1 H vk H vk+1 H zk−1 zk zk+1
S00 T01 S01 T02 S02 T03 S03 T04 S04 T05 S05 T06 S06 T07 S07 T08 S08 T09.0 T09.1 S09 T10 S10 T11 S11 T12 S12 T13 S13 T14 S14 T15 S15 T16 S16 T17 S17 T18 S18 T19 S19 T20 S20 T21 S21 T22.0 T22.1 S22
55 119 5 238 94 ∅ Root ... 22 5 19 Start 75 ... 238 How Do We Find These Nodes? Imperative - Give the Procedure
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Correctly and Efficiently Finding Objects in the Heap
uk−1 uk uk+1 wk−1 B wk B wk+1 B · · · xk−1 A xk A xk+1 · · · vk−1 H vk H vk+1 H zk−1 zk zk+1
S00 T01 S01 T02 S02 T03 S03 T04 S04 T05 S05 T06 S06 T07 S07 T08 S08 T09.0 T09.1 S09 T10 S10 T11 S11 T12 S12 T13 S13 T14 S14 T15 S15 T16 S16 T17 S17 T18 S18 T19 S19 T20 S20 T21 S21 T22.0 T22.1 S22
55 119 5 238 94 ∅ Root ... 22 5 19 Start 75 ... 238 How Do We Find These Nodes? Declarative - Give the Specification
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Object Query Languages and Bicycles
Efficiency - Bicycle: Low wind resistance and time to destination
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Object Query Languages and Bicycles
Efficiency - Query: Minimal space overhead and a low response time
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Object Query Languages and Bicycles
Effectiveness - Bicycle: Transports all item(s) with no break downs
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Object Query Languages and Bicycles
Effectiveness - Query: Always returns the correct result(s) to a query
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Object Query Languages and Bicycles
Cost - Bicycle: Frame material(s) and components cause price to vary
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Object Query Languages and Bicycles
Cost - Query: Must consider installation and development challenges
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
JQL: Java Query Language
JQL Compiler
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
JQL: Java Query Language
JQL Compiler JQL File
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
JQL: Java Query Language
JQL Compiler JQL File Java Source Code
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
JQL: Java Query Language
JQL Compiler JQL File Java Source Code Java Compiler
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
JQL: Java Query Language
JQL Compiler JQL File Java Source Code Java Compiler Java Bytecodes
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
JQL: Java Query Language
JQL Compiler JQL File Java Source Code Java Compiler Java Bytecodes Collection
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
JQL: Java Query Language
JQL Compiler JQL File Java Source Code Java Compiler Java Bytecodes Collection Query Executor
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
JQL: Java Query Language
JQL Compiler JQL File Java Source Code Java Compiler Java Bytecodes Collection Query Executor Results Cache
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
JQL: Java Query Language
JQL Compiler JQL File Java Source Code Java Compiler Java Bytecodes Collection Query Executor Results Cache Features Pre-compilation AOP with AspectJ Method Queries Caching Optimizations
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
JQL: Java Query Language
JQL Compiler JQL File Java Source Code Java Compiler Java Bytecodes Collection Query Executor Results Cache Features Pre-compilation AOP with AspectJ Method Queries Caching Optimizations References (Willis et al. ECOOP 2006) (Willis et al. OOPSLA 2008)
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
JoSQL: Java Objects Structured Query Language
Parse SQL
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
JoSQL: Java Objects Structured Query Language
Parse SQL SQL String Query Object
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
JoSQL: Java Objects Structured Query Language
Parse SQL SQL String Query Object Executable Query Collection
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
JoSQL: Java Objects Structured Query Language
Parse SQL SQL String Query Object Executable Query Collection Query Executor
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
JoSQL: Java Objects Structured Query Language
Parse SQL SQL String Query Object Executable Query Collection Query Executor Query Results
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
JoSQL: Java Objects Structured Query Language
Parse SQL SQL String Query Object Executable Query Collection Query Executor Query Results Features SQL Statements String Parsing Java Reflection Query Facilities
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
JoSQL: Java Objects Structured Query Language
Parse SQL SQL String Query Object Executable Query Collection Query Executor Query Results Features SQL Statements String Parsing Java Reflection Query Facilities Reference http://josql.sf.net
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Comparison of Data Finding Methods
As the number of collections and
- bjects increases, imperative
programming may lead to ap- plications that are complicated, error-prone, and hard to maintain (Xu and Rountev, ICSE 2008)
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Comparison of Data Finding Methods
As the number of collections and
- bjects increases, imperative
programming may lead to ap- plications that are complicated, error-prone, and hard to maintain (Xu and Rountev, ICSE 2008) JQL: Compile-Time
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Comparison of Data Finding Methods
As the number of collections and
- bjects increases, imperative
programming may lead to ap- plications that are complicated, error-prone, and hard to maintain (Xu and Rountev, ICSE 2008) JQL: Compile-Time JoSQL: Run-Time
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Comparison of Data Finding Methods
As the number of collections and
- bjects increases, imperative
programming may lead to ap- plications that are complicated, error-prone, and hard to maintain (Xu and Rountev, ICSE 2008) JQL: Compile-Time JoSQL: Run-Time Performance Trade-Offs?
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Comparison of Data Finding Methods
As the number of collections and
- bjects increases, imperative
programming may lead to ap- plications that are complicated, error-prone, and hard to maintain (Xu and Rountev, ICSE 2008) JQL: Compile-Time JoSQL: Run-Time Performance Trade-Offs? Effectiveness Concerns?
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Comparison of Data Finding Methods
As the number of collections and
- bjects increases, imperative
programming may lead to ap- plications that are complicated, error-prone, and hard to maintain (Xu and Rountev, ICSE 2008) JQL: Compile-Time JoSQL: Run-Time Performance Trade-Offs? Effectiveness Concerns? Benchmarking Framework Helps to Answer These Questions
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Benchmarking Framework to Evaluate Query Methods
Random Collection Generator
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Benchmarking Framework to Evaluate Query Methods
Random Collection Generator Benchmark Initializer
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Benchmarking Framework to Evaluate Query Methods
Random Collection Generator Benchmark Initializer Configuration
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Benchmarking Framework to Evaluate Query Methods
Random Collection Generator Benchmark Initializer Configuration Collection Benchmark
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Benchmarking Framework to Evaluate Query Methods
Random Collection Generator Benchmark Initializer Configuration Collection Benchmark Benchmark Executor Evaluation Report
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Configuration of the Benchmarking Framework
Operations Possible Configurations Objects Sizes Methods Explored a wide variety of benchmark configurations
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Configuration of the Benchmarking Framework
Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods What operations do we run to evaluate the query methods?
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Configuration of the Benchmarking Framework
Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods
Parameter Values
What operations do we run to evaluate the query methods?
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Configuration of the Benchmarking Framework
Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods
Parameter Values Query Join
Sub-Query Others What operations do we run to evaluate the query methods?
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Configuration of the Benchmarking Framework
Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods What objects will we allocate to the JVM’s heap?
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Configuration of the Benchmarking Framework
Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods
Parameter Values
What objects will we allocate to the JVM’s heap?
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Configuration of the Benchmarking Framework
Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods
Parameter Values Integers Strings
Graphs Complex Objects What objects will we allocate to the JVM’s heap?
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Configuration of the Benchmarking Framework
Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods How big should we make the objects and the collections?
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Configuration of the Benchmarking Framework
Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods
Parameter Values
How big should we make the objects and the collections?
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Configuration of the Benchmarking Framework
Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods
Parameter Values Small Medium
Large How big should we make the objects and the collections?
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Configuration of the Benchmarking Framework
Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods Which methods should be part of the framework?
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Configuration of the Benchmarking Framework
Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods
Parameter Values
Which methods should be part of the framework?
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Configuration of the Benchmarking Framework
Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods
Parameter Values JQL JoSQL
HC HC-HJ Which methods should be part of the framework?
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Configuration of the Benchmarking Framework
Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods Operations Possible Configurations Objects Sizes Methods
Parameter Values JQL JoSQL
HC HC-HJ See the paper for further operator and configuration details
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Analysis Techniques: Regression Tree Models
Method: HC-HJ, JQL
Tree Models: Recursive partitioning creates hierarchical view of data
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Analysis Techniques: Regression Tree Models
Method: HC-HJ, JQL 247.40 CollectionSize < 2250
Tree Models: Recursive partitioning creates hierarchical view of data
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Analysis Techniques: Regression Tree Models
Method: HC-HJ, JQL 247.40 CollectionSize < 2250 3651.00 CollectionType: ArrayList, Vector
Tree Models: Recursive partitioning creates hierarchical view of data
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Analysis Techniques: Regression Tree Models
Method: HC-HJ, JQL 247.40 CollectionSize < 2250 3651.00 CollectionType: ArrayList, Vector Method CollectionSize CollectionType
Explanatory Variable: Configuration of the benchmarking framework
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Analysis Techniques: Regression Tree Models
Method: HC-HJ, JQL 247.40 CollectionSize < 2250 3651.00 CollectionType: ArrayList, Vector Method CollectionSize CollectionType Categorical
Non-parametric techniques that handles different variable types
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Analysis Techniques: Regression Tree Models
Method: HC-HJ, JQL 247.40 CollectionSize < 2250 3651.00 CollectionType: ArrayList, Vector Method CollectionSize CollectionType Categorical Numerical
Non-parametric techniques that handles different variable types
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Analysis Techniques: Regression Tree Models
Method: HC-HJ, JQL 247.40 CollectionSize < 2250 3651.00 CollectionType: ArrayList, Vector Method CollectionSize CollectionType Categorical Numerical Method CollectionSize CollectionType Categorical Numerical 247.40 3651.00
Response Variable: Response time of the benchmark
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Join Benchmark with Integers and Strings
Method: HC-HJ, JQL
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Join Benchmark with Integers and Strings
Method: HC-HJ, JQL 247.40 CollectionSize < 2250
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Join Benchmark with Integers and Strings
Method: HC-HJ, JQL 247.40 CollectionSize < 2250 3651.00 CollectionType: ArrayList, Vector
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Join Benchmark with Integers and Strings
Method: HC-HJ, JQL 247.40 CollectionSize < 2250 3651.00 CollectionType: ArrayList, Vector 8447.00
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Join Benchmark with Integers and Strings
Method: HC-HJ, JQL 247.40 CollectionSize < 2250 3651.00 CollectionType: ArrayList, Vector 8447.00 80720.00
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Join Benchmark with Integers and Strings
Method: HC-HJ, JQL 247.40 CollectionSize < 2250 3651.00 CollectionType: ArrayList, Vector 8447.00 80720.00
Reflection’s Impact: HC-HJ and JQL exhibit lower values than JoSQL
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Join Benchmark with Integers and Strings
Method: HC-HJ, JQL 247.40 CollectionSize < 2250 3651.00 CollectionType: ArrayList, Vector 8447.00 80720.00
Reflection’s Impact: LinkedList further degrades JoSQL ’s performance
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Impact of Object Size on Joining
Small Objects Collection Size Method Small Medium Large JQL 57.2 390.2 981.8 HC-HJ 69.3 378.1 923.5 JoSQL 997.3 3620.2 8823.1
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Impact of Object Size on Joining
Small Objects Collection Size Method Small Medium Large JQL 57.2 390.2 981.8 HC-HJ 69.3 378.1 923.5 JoSQL 997.3 3620.2 8823.1 Large Objects Collection Size Method Small Medium Large JQL 35.4 80.8 255.4 HC-HJ 11.4 63.3 217.8 JoSQL 930.3 3107.3 8165.9
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Impact of Object Size on Joining
Small Objects Collection Size Method Small Medium Large JQL 57.2 390.2 981.8 HC-HJ 69.3 378.1 923.5 JoSQL 997.3 3620.2 8823.1 Large Objects Collection Size Method Small Medium Large JQL 35.4 80.8 255.4 HC-HJ 11.4 63.3 217.8 JoSQL 930.3 3107.3 8165.9
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Impact of Object Size on Joining
Small Objects Collection Size Method Small Medium Large JQL 57.2 390.2 981.8 HC-HJ 69.3 378.1 923.5 JoSQL 997.3 3620.2 8823.1 Large Objects Collection Size Method Small Medium Large JQL 35.4 80.8 255.4 HC-HJ 11.4 63.3 217.8 JoSQL 930.3 3107.3 8165.9
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Impact of Object Size on Joining
Small Objects Collection Size Method Small Medium Large JQL 57.2 390.2 981.8 HC-HJ 69.3 378.1 923.5 JoSQL 997.3 3620.2 8823.1 Large Objects Collection Size Method Small Medium Large JQL 35.4 80.8 255.4 HC-HJ 11.4 63.3 217.8 JoSQL 930.3 3107.3 8165.9
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
SubQuery Benchmark with Graphs Containing Strings
(LinkedList, ObjectSize = 50)
Time (ms) Collection Size
Large Medium Small 100 200 300 400
Technique
JQL HC JoSQL
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
SubQuery Benchmark with Graphs Containing Strings
(LinkedList, ObjectSize = 50)
Time (ms) Collection Size
Large Medium Small 100 200 300 400
Technique
JQL HC JoSQL
JQL is Faster Than HC When the Collection Size is Small and Medium
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
SubQuery Benchmark with Graphs Containing Strings
(LinkedList, ObjectSize = 50)
Time (ms) Collection Size
Large Medium Small 100 200 300 400
Technique
JQL HC JoSQL
HC is Faster Than JQL When the Collection Size is Large
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
SubQuery Benchmark with Graphs Containing Strings
(LinkedList, ObjectSize = 50)
Time (ms) Collection Size
Large Medium Small 100 200 300 400
Technique
JQL HC JoSQL
Why? JQL Must Track All of the Objects in the Heap
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
SubQuery Benchmark with Graphs Containing Strings
(LinkedList, ObjectSize = 100)
Time (ms) Collection Size
Large Medium Small 200 400 600 800
Technique
JQL HC JoSQL
Trend is Even More Pronounced as the Object Size Increases
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Conclusions and Future Work
Concluding Remarks Comprehensive empirical study of query methods Interesting trends concerning JQL, JoSQL, HC, and HC-HJ Refer to the paper for many more insights Future Work Integrate new benchmarks and object types Consider different sizes of objects and collections Incorporate different data finding methods Leverage additional statistical analysis techniques
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps
Introduction Query Methods Empirical Study Conclusion
Conclusions and Future Work
Concluding Remarks Comprehensive empirical study of query methods Interesting trends concerning JQL, JoSQL, HC, and HC-HJ Refer to the paper for many more insights Future Work Integrate new benchmarks and object types Consider different sizes of objects and collections Incorporate different data finding methods Leverage additional statistical analysis techniques
Jones & Kapfhammer Allegheny College Ask and You Shall Receive: Empirically Evaluating Declarative Approaches to Finding Data in Unstructured Heaps