From f987e29e9f0ac8b2e491c67f2ecb38f7352660bd Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Tue, 10 Jun 2025 16:29:55 -0400 Subject: Began work on presentation --- chapters/beyond-dsp.tex | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) (limited to 'chapters') diff --git a/chapters/beyond-dsp.tex b/chapters/beyond-dsp.tex index a2e7abf..26f733c 100644 --- a/chapters/beyond-dsp.tex +++ b/chapters/beyond-dsp.tex @@ -351,6 +351,33 @@ interface, with the same performance as their specialized implementations. \subsection{Iterative Deletion Decomposability} \label{ssec:dyn-idsp} + + +\begin{algorithm}[t] + \caption{Answering an Iterative Deletion Decomposable Search Problem} + \label{alg:dyn-query} + \KwIn{$q$: query parameters, $\mathscr{I}_1 \ldots \mathscr{I}_m$: blocks} + \KwOut{$R$: query results} + + $\mathscr{M} \gets \{\}$ \; + \For{$i \gets 1 \ldots m$}{$\mathscr{M} \gets \mathscr{M}\ \cup \texttt{local\_preproc}(\mathscr{I}_i, q)$ \;} + $(q_1, \ldots q_m) \gets \texttt{distribute\_query}(\mathscr{M}, q)$ \; + $R \gets \{\}; \ \ \texttt{rpt} \gets \bot$ \; + \Do{\texttt{rpt}}{ + $r \gets \{\}$ \; + % the subscript in this one is wonky. Maybe do an array of Qs? + \For{$i \gets 1\ldots m$}{$r \gets r \cup \texttt{local\_query}(\mathscr{I}_i, q_i)$ \;} + %\Comment{For \red{name}, use \texttt{tombstone\_lookup} to remove all deleted records. } + %\If{\textbf{not} \texttt{SKIP\_DELETE\_FILTER}}{$locR \gets \texttt{filter\_deletes}(locR, S)$} + $R \gets R \cup \texttt{combine}(r)$ \; + $(\texttt{rpt}, q_1, \ldots, + q_m) \gets \texttt{repeat}(q, R, q_1,\ldots, q_m)$ \; + } + \Return{$R$} + +\end{algorithm} + + We next turn out attention to support for deletes. Efficient delete support in Bentley-Saxe dynamization is provably impossible~\cite{saxe79}, but, as discussed in Section~\ref{ssec:dyn-deletes} it is possible @@ -396,9 +423,8 @@ class of search problem: \emph{iterative deletion decomposable} (IDSP). The IDSP definition expands eDSP with a fifth operation, \begin{itemize} - \item $\mathbftt{repeat}(\mathcal{Q}, \mathcal{R}, \mathcal{Q}_1, \ldots, - \mathcal{Q}_m) \to (\mathbb{B}, \mathcal{Q}_1, \ldots, - \mathcal{Q}_m)$ \\ + \item $\mathbftt{repeat}(q, R, q_1, \ldots, q_m) \to + (\mathbb{B}, q_1, \ldots, q_m)$ \\ Evaluate the combined query result in light of the query. If a repetition is necessary to satisfy constraints in the query (e.g., result set size), optionally update the local queries as @@ -428,7 +454,11 @@ records. This can be done, for example, using the full-reconstruction techniques in the literature~\cite{saxe79, merge-dsp, overmars83} or through proactively performing reconstructions, such as with the mechanism discussed in Section~\ref{sssec:sampling-rejection-bound}, -depending on the particulars of how deletes are implemented. +depending on the particulars of how deletes are implemented. The +full IDSP query algorithm is shown in Figure~\ref{alg:dyn-idsp-query} + + + As an example of how IDSP can facilitate delete support for search problems, let's consider $k$-NN. This problem can be $C(n)$-deletion -- cgit v1.2.3