Daily CheckIn

This commit is contained in:
marcodn 2024-08-02 00:06:57 +02:00
parent 91c76b74b9
commit f028148892
5 changed files with 107 additions and 9 deletions

View file

@ -84,9 +84,9 @@ hostname="http://localhost:8080/WedekindJSF-1.0.0"
# the Array of the Urls # the Array of the Urls
url_arr=( url_arr=(
"$hostname/index.xhtml" "$hostname/index.xhtml"
#"$hostname/view/document/list.xhtml" "$hostname/view/document/list.xhtml"
"$hostname/view/document/list_mv.xhtml" #"$hostname/view/document/list_mv.xhtml"
#"$hostname/view/correspondent/list.xhtml" #"$hostname/view/correspondent/list.xhtml"
#"$hostname/view/person/list.xhtml" #"$hostname/view/person/list.xhtml"
) )

View file

@ -309,9 +309,39 @@ in den Java-Objekten fast identisch sind. Und in der Datenbank sind die Anfragen
\subsection{cached queries} \subsection{cached queries}
\label{sec:performance-checking:investigation-application:cached-query} \label{sec:performance-checking:investigation-application:cached-query}
Über die Einstellung \textit{openjpa.jdbc.QuerySQLCache} wird der Cache aktiviert. Hierbei können Abfragen angeben
werden, die aus dem Cache ausgeschlossen werden. Der QueryCache wiederrum beachtet aber nur Abfragen die keine
Parameter verwenden. Das sieht man auch entsprechend der Auswertung der Aufrufe \ref{tbl:measure-cached-queries},
dass hier keine Veränderung der Aufrufzeiten stattgefunden hat. Gleich ob man mit \ac{JPQL} oder mit der Criteria API
abfragt.
\begin{table}[h!]
\centering
\begin{tabular}{|r|r|r|r|r|r|r|r|}
\hline
& \multicolumn{3}{|c|}{Aufrufzeit} & & \multicolumn{3}{|c|}{RSS} \\
\hline
\# & min & avg & max & Queries & davor & danach & diff \\
\hline
1 & 391 & 593 & 1533 & 12256 & 843.63 & 1009.79 & 116.16 \\
2 & 281 & 365 & 584 & 12080 & 996.28 & 1114.60 & 118.32 \\
3 & 295 & 353 & 464 & 12080 & 1103.30 & 1201.47 & 98.17 \\
4 & 280 & 292 & 324 & 12080 & 1191.56 & 1298.46 & 106.90 \\
\hline
\end{tabular}
\caption{Messung mit aktiviertem Cached Queries}
\label{tbl:measure-cached-queries}
\end{table}
\subsection{Umgestalten der Datenbanktabellen} \subsection{Umgestalten der Datenbanktabellen}
\label{sec:performance-checking:investigation-application:new-table} \label{sec:performance-checking:investigation-application:new-table}
\subsection{Verkleinerung der Abfragen} \subsection{Verkleinerung der Abfragen}
\label{sec:performance-checking:investigation-application:smaller-query} \label{sec:performance-checking:investigation-application:smaller-query}
\subsection{Statische Webseiten}
\label{sec:performance-checking:investigation-application:static-website}
Wenn man die Dokumentenliste als statische Webseiten ablegt, werden die Zugriffszeiten sehr kurz sein. Darüber hinaus
funktionieren in statische Webseiten aber keine Suche oder eine Sortierung. Sonst müsste man für jede mögliche
Sortierung und Suchanfrage einen Satz der Dokumentenliste als statische Webseite bereitstellen.

Binary file not shown.

View file

@ -13,8 +13,8 @@
\title{\myTitle} \title{\myTitle}
%\subtitle{} %\subtitle{}
\author[M. Galster]{\myName} \author[M. Galster]{\myName}
\footlinetext{\insertshortauthor \hspace{4em} \inserttitle} \footlinetext{\insertshortauthor \hspace{4em} Multi-Layer Optimization Strategies for Enhanced Performance in Digital Editions}
\institute{University~of~Hagen,~Germany} \institute{Universität~in~Hagen,~Deutschland}
\date{\myTime} \date{\myTime}
\begin{document} \begin{document}
@ -44,17 +44,85 @@
\end{frame} \end{frame}
% -- SLIDES -- % -- SLIDES --
\section{Ausgangsproblem} \section{Aufbau}
\begin{frame} \begin{frame}
\frametitle{Ausgangsproblem} \frametitle{Schichten}
Anzeige der Schichten des Systems \begin{figure}[centered]
\begin{tikzpicture}[scale=.6,transform shape,node distance=4em,
block/.style={rectangle, rounded corners,minimum width=3cm,minimum height=.5cm,text centered, draw=black,fill=green!30},
lineArrow/.style={arrows={-Latex[length=5pt 3 0]}},
every fit/.style={inner sep=.4em,draw}
]
%https://docs.oracle.com/javaee/6/tutorial/doc/bnacj.html
\node (browser) [block] {WebBrowser};
\node (fitClient) [rounded corners,fit=(browser)] {};
\node [left] at (fitClient.west) {Client};
\node (JSF) [block,below of=browser,node distance=5em] {Java Server Faces};
\node (EJB) [block,below of=JSF] {Enterprise Java Beans};
\node (JPA) [block,below of=EJB] {Java Persistance API};
\node (openJPA) [block, below of=JPA] {OpenJPA Cache};
\node (fitGlassfish) [rounded corners,fit=(JSF) (EJB) (JPA) (openJPA)] {};
\node [left] at (fitGlassfish.west) {Glassfish};
\node (memoryBuffers) [block, below of=openJPA] {Memory Buffers};
\node (services) [block, right of=memoryBuffers, xshift=2cm] {Services};
\node (database) [block, below of=memoryBuffers] {Database};
\node (fitPostgreSQL) [rounded corners,fit=(memoryBuffers) (services) (database)] {};
\node [left] at (fitPostgreSQL.west) {PostgreSQL};
\node (fitServer) [rounded corners,fit=(fitGlassfish) (fitPostgreSQL),inner xsep=3em] {};
\node [left] at (fitServer.west) {Server};
\draw[lineArrow] (browser)--(JSF);
\draw[lineArrow] (JSF)--(EJB);
\draw[lineArrow] (EJB)--(JPA);
\draw[lineArrow] (JPA)--(openJPA);
\draw[lineArrow] (openJPA)--(memoryBuffers);
\draw[lineArrow] (memoryBuffers)--(database);
\draw[lineArrow] (services)|-(database);
\end{tikzpicture}
%\caption{Ablauf einer Web-Anfrage}
\label{fig:webrequest}
\end{figure}
\end{frame}
\section{Untersuchungen}
\begin{frame}
\frametitle{Allgemein}
--- Untersuchung vorher ---
\end{frame} \end{frame}
\begin{frame} \begin{frame}
Definieren der Optimierungsansätze \frametitle{Caching mit OpenJPA}
--- OpenJPA ---
\end{frame} \end{frame}
\begin{frame}
\frametitle{Caching in JPA}
\end{frame}
\begin{frame}
\frametitle{Caching in EJB}
\end{frame}
\begin{frame}
\frametitle{Abfragen mit JPQL}
\end{frame}
\begin{frame}
\frametitle{Abfragen mit Criteria API}
\end{frame}
\begin{frame}
\frametitle{Abfragen über materialized views}
\end{frame}
\begin{frame}
\frametitle{Cached Queries}
\end{frame}
%% -- SLIDE -- REFERENCES %% -- SLIDE -- REFERENCES
% hier alle Keys aus der BIB einfügen, die mit dargestellt werden sollen % hier alle Keys aus der BIB einfügen, die mit dargestellt werden sollen

Binary file not shown.