Align the length of two nodes inside a matrix
Unless you really need each element to be an actual TikZ node, it might be simpler to use a simple tabular for this:
\documentclass{article}
\usepackage{tikz,listings}
\usepackage{array}
\newcolumntype{C}{>{\ttfamily}c}
\usetikzlibrary{shapes.multipart,matrix}
\begin{document}
\begin{tikzpicture}[->, my shape/.style={
rectangle split, rectangle split parts=#1, draw, anchor=center}]
%transactional descriptor
\node (A) {%
\begin{tabular}{|C|C|C|C|}
\hline
start & readSet & writeSet & commitTime\\
\hline
\multicolumn{3}{|C|}{overwrittenVersions} & next\\
\hline
\end{tabular}
};
\end{tikzpicture}
\end{document}
Something like this?
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{chains,calc}
\begin{document}
\usetikzlibrary{chains,calc}
\begin{tikzpicture}[start chain,node distance=0mm,every node/.style={font=\ttfamily,outer sep=0,text height=1.5ex}]
\node [draw,on chain] (a) {start};
\node [draw,on chain] {readSet};
\node [draw,on chain] {writeSet};
\node [draw,on chain] (b) {commitTime};
\node[draw,anchor=north west] at (a.south west) (c) {overwrittenVersions};
\path
let \p1=(c.east),\p2=(b.east),\n1={(\x2-\x1)}
in
node[draw,anchor=west,minimum width=\n1] at (c.east) {next};
\end{tikzpicture}
\end{document}