Leveraging ETS Effectively
summary
Explains ETS internals, shows match specifications and concrete code patterns, and measures real tradeoffs: agent versus ETS reads/writes that scale to ~500,000 items, and Atomics vs ETS counters with sharded Atomics improving throughput. Demonstrates presets and caches (consistent-hashing sharded tables, generational evictions), a message-buffer pattern and an Ecto adapter wired to evadne/ets-playground so queries become ETS match specs. Practical takeaways: when ETS replaces agents or DB reads, how many items matter, and how to form fast match specs and presets backed by ETS.
AI-written summary · about
chapters (16)
- 0:00Start
- 0:43self Elixir Enthusiast. Bug Farmer Badger of Applications
- 2:09Conceptual Model 2
- 3:17Table Types
- 3:29Access Types
- 3:48Key Functions
- 4:49ets:match_object/2
- 8:48Demo: Agent vs. ETS Perhaps a demonstration will help you make the right decision for your application
- 11:56Mental Model: Complexity Gradient
- 13:15Sharing Preset Data
- 15:49With Presets: Easy to Scale
- 17:00Storing Cached State
- 18:48Facilitating IPC
- 19:44Concurrency Control
- 23:48Adopting ETS: Cookie Cutter Layout
- 25:14Adopting ETS: With Ecto
related talks
01h 11mPerformance engineering - being friendly to your hardware
20mTTChat’s Story: Connect Metrics, Logs and Traces with EBPF
22mEAS Unit Testing
44mEvent Tracing for Windows Internals
34mBridging the Gap Between Hardware and Software Tracing
01h 04mDeveloping the Bloomberg Terminal -- Local performance & measurement techniques
12mSPHT: Scalable Persistent Hardware Transactions
48mAn Unbiased Look at the Energy Aware Scheduler (EAS)
