tree: 5efebaa25e959cb4c85b08d729e07a02138e76bc [path history] [tgz]
  1. impl/
  2. reader/
  3. writer/
  4. AbstractKeyAccessor.java
  5. Accessors.md
  6. ArrayReader.java
  7. ArrayWriter.java
  8. ColumnReader.java
  9. ColumnReaderIndex.java
  10. ColumnWriter.java
  11. ColumnWriterIndex.java
  12. Components.md
  13. DictReader.java
  14. DictWriter.java
  15. Futures.md
  16. InvalidConversionError.java
  17. KeyAccessor.java
  18. Metadata.md
  19. ObjectReader.java
  20. ObjectType.java
  21. ObjectWriter.java
  22. Overview.md
  23. package-info.java
  24. Readers.md
  25. README.md
  26. RowSet.md
  27. ScalarReader.java
  28. ScalarWriter.java
  29. TupleReader.java
  30. TupleWriter.java
  31. UnsupportedConversionError.java
  32. ValueType.java
  33. ValueWriter.java
  34. VariantReader.java
  35. VariantWriter.java
  36. WriterPosition.java
  37. Writers.md
exec/vector/src/main/java/org/apache/drill/exec/vector/accessor/README.md

Column Accessor Overview

The column accessor framework consists of a number of layers that combine to enable Drill to control the size of each record batch, which in turn allows Drill to implement effective memory management and admission control.

The material here starts with concepts, then provides a tour of the various components. Each component is heavily commented, so after reading this material, you should be able to get the details from the code itself.

The material here is a slightly-revised version of the material that orginally appeared in the paul-rogers/drill Wiki.

Code Overview

The code for the mechanisms described here appears in multiple Drill modules, along with its unit tests. It is described here in one place to provide a complete overview.

It can be hard to understand complex code. To make doing so easier, we offer three paths:

  • This set of notes (plus additional material in the JIRA).
  • Comments in the code.
  • Unit tests which illustrate how to use each component.

The code itself has many comments and explanations; it is the best resource to understand the detailed algorithms and approaches.