Programming with Judy

7
Preface
This book contains information about the Judy technology, a
programming innovation from Hewlett-Packard that combines
scalability and ease-of-use with a significant performance advantage in
many data-intensive applications. The information in this book is
designed for experienced programmers who have knowledge of at least
one major programming language (preferably C, C++, or Java) and want
to explore Judy’s ability to replace existing data structures, such as
arrays, sparse arrays, hash tables, B-trees, binary trees, linear lists, skip
lists, sort and search algorithms, and counting functions with a much
more scalable solution.
This book does not attempt to document all situations in which Judy can
be used effectively or to analyze all of Judy’s performance nuances
compared with more traditional data structures. The Judy technology is
new and many of its potential uses are open-ended and undiscovered.
Therefore, this book can serve an introduction to Judy and an invitation
to the programming community to adapt Judy’s unique technology to
new applications. This book is divided into these sections:
Chapter One: About Judy introduces the Judy technology, establishes
a working definition of Judy, and describes the benefits of the
technology.
Chapter Two: The Judy Advantage provides an overview of Judy’s
hybrid digital-tree structure and contains an analysis of Judy’s
performance when measured against other algorithms.
Chapter Three: Using Judy contains more detailed information about
the types of Judy arrays and the functions they provide.
Chapter Four: Example of a Multi-dimensional Array shows a
programming example demonstrating Judy functions.
Chapter Five: Tuning HP-UX Memory Access contains information
about tuning HP-UX systems for better performance with Judy.
Appendix A: Where Did Judy Come From? contains background
information about how the Judy technology was developed.
Appendix B: Caching and Memory Management provides more
detailed information about how Judy achieves performance
advantages through efficient cache memory management.