Efficient MySQL Performance (Final Release) 1st Edition Daniel Nichter download pdf
Efficient MySQL Performance (Final Release) 1st Edition Daniel Nichter download pdf
com
https://ebookmeta.com/product/efficient-mysql-performance-
final-release-1st-edition-daniel-nichter/
OR CLICK HERE
DOWLOAD NOW
https://ebookmeta.com/product/efficient-mysql-performance-best-
practices-and-techniques-1st-edition-daniel-nichter/
ebookmeta.com
https://ebookmeta.com/product/high-performance-mysql-4th-edition-3rd-
early-release-silvia-botros-jeremy-tinley/
ebookmeta.com
https://ebookmeta.com/product/efficient-go-data-driven-performance-
optimization-fourth-early-release-bartlomiej-plotka/
ebookmeta.com
https://ebookmeta.com/product/a-threat-revealed-1st-edition-t-s-beier/
ebookmeta.com
Your Career in Animation How to Survive and Thrive Second
Edition David B. Levy
https://ebookmeta.com/product/your-career-in-animation-how-to-survive-
and-thrive-second-edition-david-b-levy/
ebookmeta.com
https://ebookmeta.com/product/book-three-1st-edition-maxx-whittaker/
ebookmeta.com
https://ebookmeta.com/product/adventures-with-time-lines-3rd-edition-
l-michael-hall/
ebookmeta.com
https://ebookmeta.com/product/dungeon-diving-101-1st-edition-bruce-
sentar/
ebookmeta.com
https://ebookmeta.com/product/engaging-higher-education-purpose-
platforms-and-programs-for-community-engagement-1st-edition-marshall-
welch/
ebookmeta.com
15 THINGS PEOPLE WITH HIGH SELF ESTEEM DON T DO Take Back
Your Personality Face Change and Your Fears And Get Your
Brain Used For Happiness Anthony Papakia
https://ebookmeta.com/product/15-things-people-with-high-self-esteem-
don-t-do-take-back-your-personality-face-change-and-your-fears-and-
get-your-brain-used-for-happiness-anthony-papakia/
ebookmeta.com
Efficient MySQL Performance
Best Practices and Techniques
Daniel Nichter
Efficient MySQL Performance
by Daniel Nichter
Copyright © 2022 Daniel Nichter. All rights reserved.
Printed in the United States of America.
Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North,
Sebastopol, CA 95472.
O’Reilly books may be purchased for educational, business, or sales
promotional use. Online editions are also available for most titles
(http://oreilly.com). For more information, contact our
corporate/institutional sales department: 800-998-9938 or
[email protected].
Constant width
Used for program listings, as well as within paragraphs to refer to
program elements such as variable or function names, databases, data
types, environment variables, statements, and keywords.
TIP
This element signifies a tip or suggestion.
NOTE
This element signifies a general note.
WARNING
This element indicates a warning or caution.
NOTE
For more than 40 years, O’Reilly Media has provided technology and business training,
knowledge, and insight to help companies succeed.
Our unique network of experts and innovators share their knowledge and
expertise through books, articles, and our online learning platform.
O’Reilly’s online learning platform gives you on-demand access to live
training courses, in-depth learning paths, interactive coding environments,
and a vast collection of text and video from O’Reilly and 200+ other
publishers. For more information, visit http://oreilly.com.
How to Contact Us
Please address comments and questions concerning this book to the
publisher:
Sebastopol, CA 95472
707-829-0104 (fax)
We have a web page for this book, where we list errata, examples, and any
additional information. You can access this page at https://oreil.ly/efficient-
mysql-performance.
Email [email protected] to comment or ask technical questions
about this book.
For news and information about our books and courses, visit
http://oreilly.com.
Follow us on Twitter: http://twitter.com/oreillymedia
Watch us on YouTube: http://youtube.com/oreillymedia
Acknowledgments
Thank you to the MySQL experts who reviewed this book: Vadim
Tkachenko, Frédéric Descamps, and Fernando Ipar. Thank you to the
MySQL experts who reviewed parts of this book: Marcos Albe, Jean-
François Gagné and Kenny Gryp. Thank you to many other MySQL experts
who have helped me, taught me, and provided opportunities over the years:
Peter Zaitsev, Baron Schwartz, Ryan Lowe, Bill Karwin, Emily Slocombe,
Morgan Tocker, Shlomi Noach, Jeremy Cole, Laurynas Biveinis, Mark
Callaghan, Domas Mituzas, Ronald Bradford, Yves Trudeau, Sveta
Smirnova, Alexey Kopytov, Jay Pipes, Stewart Smith, Aleksandr
Kuzminsky, Alexander Rubin, Roman Vynar, and—again—Vadim
Tkachenko.
Thank you to O’Reilly and my editors: Corbin Collins, Katherine Tozer,
Andy Kwan, and all the people behind the scenes.
And thank you to my wife, Moon, who supported me during the time-
consuming process of writing this book.
Chapter 1. Query Response
Time
North Star
I’m a MySQL DBA and a software engineer, so I know what it’s like
working with MySQL as the latter. Especially when it comes to
performance, we (software engineers) just want it (MySQL) to work.
Between shipping features and putting out fires, who has time for MySQL
performance? And when MySQL performance is poor—or worse: when it
suddenly becomes poor—the way forward can be difficult to see because
there are many considerations: where do we begin? Do we need more
RAM? Faster CPUs? More storage IOPS? Is the problem a recent code
change? (Fact: code changes deployed in the past can cause performance
problems in the future, sometimes days in the future.) Is the problem a
noisy neighbor? Are the DBAs doing something to the database? Has the
app has gone viral and it’s the good kind of problem to have?
As an engineer whose expertise is the application, not MySQL, that
situation can be overwhelming. To move forward confidently, start by
looking at query response time because it is meaningful and actionable.
These are powerful qualities that lead to real solutions:
Meaningful
Query response time is the only metric anyone truly cares about
because, let’s be honest, when the database is fast, nobody looks at it or
asks questions. Why? Because query response time is the only metric
we experience. When a query takes 7.5 seconds to execute, we
experience 7.5 seconds of impatience. That same query might examine
a million rows, but we don’t experience a million rows examined. Our
time is precious.
Actionable
There’s so much you can do to improve query response time and make
everyone happy again that you’re holding a book about it. (Do people
still hold books in the future? I hope so.) Query response time is directly
actionable because you own the code, so you can change the queries.
Even if you don’t own the code (or have access to it), you can still
indirectly optimize query response time. “Improving Query Response
Time” addresses direct and indirect query optimization.
Query Reporting
Query metrics provide invaluable insights into query execution: response
time, lock time, rows examined, and so on. But query metrics, like all
metrics, are raw values that need to be collected, aggregated, and reported
in a way that’s meaningful to (and readable for) engineers. That’s what this
section outlines: how query metric tools transform query metrics into query
reports. But query reporting is only a means to an end, as discussed in
“Query Analysis”.
Looking ahead, query analysis is the real work: analyzing query metrics (as
reported) and other information with the goal of understanding query
execution. To improve MySQL performance, you must optimize queries. To
optimize queries, you must understand how they execute. And to
understand that, you must analyze them with pertinent information,
including query reports and metadata.
But first you need to understand query reporting, since it represents the
trove of query metrics that provide invaluable insights into query execution.
The next three sections teach you about the following:
Sources: query metrics originate from two sources and vary by
MySQL distribution and version
Aggregation: query metric values are grouped and aggregated by
normalized SQL statements
Reporting: query reports are organized by a high-level profile and a
query-specific report
NOTE
This is not a book about database administration, so this section does not discuss the
setup and configuration of query metrics in MySQL. I presume this is already done or
will be done. If not, don’t worry: ask your DBA, hire a consultant, or learn how by
reading the MySQL manual.
Sources
Query metrics originate from the slow query log or the Performance
Schema. As the names indicate, the former is a log file on disk, and the
latter is a database with the same name: performance_schema.
Although completely different in nature (log file on disk as opposed to
tables in a database), both provide query metrics. The important difference
is how many metrics they provide: apart from query response time, which
both provide, the number of metrics ranges from 3 to more than 20.
NOTE
The name slow query log is historical. Long ago, MySQL logged only queries that took
greater than N seconds to execute, and the minimum value for N was 1. Old versions of
MySQL would not log a query that took 900 milliseconds to execute because that was
“fast.” The slow query log really earned its name. Today, the minimum value is zero
with a resolution of microseconds. When set to zero, MySQL logs every query
executed. Therefore, the name is a little misleading, but now you know why.
All things considered, the Performance Schema is the best source of query
metrics because it exists in every current version and distribution of
MySQL, it works locally and in the cloud, it provides all nine metrics
covered in “Query Metrics”, and it’s the most consistent. Plus, the
Performance Schema contains a wealth of other data for deep MySQL
analysis, so its usefulness extends far beyond query metrics. The slow query
log is a good source, too, but it varies considerably:
MySQL
As of MySQL 8.0.14, enable system variable log_slow_extra and
the slow query log provides six of the nine metrics in “Query Metrics”,
lacking only Rows_affected, Select_scan, and
Select_full_join. It’s still a good source, but use the
Performance Schema if possible.
Before MySQL 8.0.14, which includes MySQL 5.7, the slow query log
is bare bones, providing only Query_time, Lock_time,
Rows_sent, and Rows_examined. You can still analyze queries
with only these four metrics, but the analysis is much less insightful.
Consequently, avoid the slow query log before MySQL 8.0.14 and
instead use the Performance Schema.
Percona Server
Percona Server provides a significantly greater number of metrics in the
slow query log when system variable log_slow_verbosity is
configured: all nine metrics covered in “Query Metrics” and more. It
also supports query sampling (logging a percentage of queries) when
system variable log_slow_rate_limit is configured, which is
helpful for busy servers. These features make the Percona Server slow
query log a great source. See “Slow Query Log” in the Percona Server
manual for details.
MariaDB Server
MariaDB Server 10.x uses the Percona Server slow query log
enhancements, but there are two notable differences: system variable
log_slow_verbosity is configured differently in MariaDB, and it
does not provide metric Rows_affected. Otherwise, it’s essentially
the same and a great source, too. See “Slow Query Log Extended
Statistics” in the MariaDB knowledge base for details.
The slow query log is disabled by default, but you can enable it
dynamically (without restarting MySQL). The Performance Schema should
be enabled by default, though some cloud providers disable it by default.
Unlike the slow query log, the Performance Schema cannot be enabled
dynamically—you must restart MySQL to enable it.
Make sure the best query metric source is used and properly configured.
Ask your DBA, hire a consultant, or learn how by reading the MySQL
manual.
WARNING
The slow query log can log all queries when long_query_time is set to zero, but be
careful: on a busy server, this can increase disk I/O and use a significant amount of disk
space.
Aggregation
Query metrics are grouped and aggregated by query. That sounds obvious
since they’re called query metrics, but some query metric tools can group
by username, hostname, database, and so on. These alternate groupings are
exceptionally rare and yield a different type of query analysis, so I don’t
address them in this book. Since query response time is the North Star of
MySQL performance, grouping query metrics by query is the best way to
see which queries have the slowest response time, which forms the basis of
query reporting and analysis.
There’s one little problem: how do you uniquely identify queries to
determine the groups to which they belong? For example, system metrics
(CPU, memory, storage, and so on) are grouped by hostname because
hostnames are unique and meaningful. But queries don’t have any uniquely
identifying properties like hostname. The solution: a SHA-256 hash of the
normalized SQL statement. Example 1-1 shows how a SQL statement is
normalized.
Example 1-1. SQL statement normalization
SELECT col FROM tbl WHERE id=1
f49d50dfab1c364e622d1e1ff54bb12df436be5d44c464a4e25a1ebb80fc2f13
1
-
1
.
Q
u
e
r
y
m
e
t
r
i
c
t
e
r
m
i
n
o
l
o
g
y
Official (MySQL) Alternatives
Sample Query
Second, another term that originated from Percona is query abstract: a SQL
statement highly abstracted to its SQL command and table list. Example 1-2
is the query abstract for SELECT col FROM tbl WHERE id=1.
Example 1-2. Query abstract
SELECT tbl
Query abstracts are not unique, but they are useful because they’re succinct.
Usually, developers only need to see a query abstract to know the full query
that it represents.
-- SQL statements
SELECT `name` FROM star_ships WHERE class IN ('galaxy')
SELECT `name` FROM star_ships WHERE class IN ('galaxy',
'intrepid')
-- Digest text
SELECT `name` FROM `star_ships` WHERE `class` IN (...)
Since the digest is the same for both queries, the metrics for both queries
are grouped, aggregated, and reported as one query.
Enough about terminology and normalization. Let’s talk about reporting.
Reporting
Reporting is a challenge and an art form because a single application can
have hundreds of queries. Each query has many metrics and each metric has
several statistics: minimum, maximum, average, percentile, and so forth.
On top of that, each query has metadata: samples, EXPLAIN plans, table
structures, on so on. It’s challenging to store, process, and present all this
data. Almost every query metric tool presents the data in a two-level
hierarchy: query profile and query report. Those terms vary by query metric
tool, but you will easily recognize each when you see them.
Query profile
A query profile shows slow queries. It is the top-level organization for
query reporting, usually the first thing you see in a query metric tool. It
presents query digests and a limited subset of query metrics, which is why
it’s called a profile.
Slow is relative to the sort metric: the aggregate value of a query metric by
which queries are ordered. The first ordered query is called the slowest,
even if the sort metric is not query time (or any time). For example, if the
sort metric is average rows sent, the first ordered query is still called the
slowest.
Although any query metric can be the sort metric, query time is the
universal default sort metric. When you reduce query execution time, you
free up time that allows MySQL to do more work, or possibly do other
work more quickly. Sorting queries by query time shows you where to
begin: the slowest, most time-consuming queries.
What’s not universal is how query time is aggregated. The most common
aggregate values are:
Total query time
Total query time is the sum of execution time (per query). This is the
most common aggregate value because it answers an important
question: which query does MySQL spend the most time executing? To
answer that, a query metric tool adds up all the time MySQL spends
executing each query. The query with the greatest total time is the
slowest, most time-consuming query. Here’s an example of why this is
important. Suppose query A has a 1-second response time and executes
10 times, while query B has a 0.1-second response time and executes
1,000 times. Query A has a much slower response time, but query B is
10 times more time-consuming: 10 seconds in total versus 100 seconds
in total, respectively. In a query profile sorted by total query time, query
B is the slowest query. This is important because you free up the most
time for MySQL by optimizing query B.
Query load
Query load is total query time (per query) divided by clock time, where
clock time is the number of seconds in the time range. If the time range
is 5 minutes, then clock time is 300 seconds. For example, if query E
has a total query time 250.2 seconds, then its load is 250.2 s / 300 s =
0.83; and if query F has a total query time of 500.1 seconds, then its
load is 500.1 s / 300 s = 1.67. In a query profile sorted by query load,
query F is the slowest query because its load is the greatest.
Load is relative to time but also subtly indicative of concurrency:
multiple instances of a query executing at the same time. Query load
less than 1.0 means that, on average, the query does not execute
concurrently. Query load greater than 1.0 indicates query concurrency.
For example, a query load of 3.5 means that, any time you look, you’re
likely to see 3.5 instances of the query executing. (In reality, 3 or 4
instances of the query since there cannot be 0.5 instances of a query.)
The higher the query load, the greater the possibility of contention if the
query accesses the same or nearby rows. Query load greater than 10 is
high and likely to be a slow query, but there are exceptions. As I write
this, I’m looking at a query with a load of 5,962. How is that possible? I
reveal the answer in “Data Access”.
When the sort metric uses a nontemporal query metric, like rows sent, a
different aggregate value (average, maximum, and so on) might make sense
depending on what you’re trying to diagnose. This is far less common than
total query time, but it occasionally reveals interesting queries worth
optimizing.
Query report
A query report shows you everything there is to know about one query. It is
the second-level organization for query reporting, usually accessed by
selecting a slow query in the query profile. It presents all query metrics and
metadata. Whereas the query profile tells you something just by looking at
it (which queries are the slowest), a query report is an organized
information dump used for query analysis. As such, the more information,
the better because it helps you understand query execution.
Query reports vary dramatically depending on the query metric tool. A bare
minimum report includes all query metrics from the source and the basic
statistics for those metrics: minimum, maximum, average, percentile, and so
forth. A thorough report includes metadata: query samples, EXPLAIN
plans, table structures, and more. (Samples may be disabled for security
purposes because they contain real values.) A few query metric tools go
further by adding additional information: metric graphs, histograms
(distributions), anomaly detection, time shift comparison (now versus last
week), developer notes, SQL comment key-value extraction, and so on.
Query analysis only requires query metrics in the report. Metadata can be
collected manually. If the query metric tool you use reports only query
metrics, don’t worry: that’s a start, but you will need to manually collect
EXPLAIN plans and table structures, at the very least.
With a query report figuratively in hand, you’re equipped for query
analysis.
Query Analysis
The goal of query analysis is understanding query execution, not solving
slow response time. That might surprise you, but solving slow response
time happens after query analysis, during query optimization. First, you
need to understand what you’re trying to change: query execution.
Query execution is like a story with a beginning, middle, and end: you read
all three to understand the story. Once you understand how MySQL
executes a query, then you will understand how to optimize it.
Understanding through analysis, then action through optimization.
TIP
I have helped many engineers analyze queries, and the primary difficulty is not
understanding the metrics but getting stuck in the analysis: staring deeply into the
numbers, waiting for a revelation. Don’t get stuck. Carefully review all the metrics and
metadata—read the whole story—then turn your attention to query optimization with
the goal of improving response time.
Query Metrics
From “Sources”, you know that query metrics vary depending on the
source, MySQL distribution, and MySQL version. All query metrics are
important because they help you understand query execution, but the nine
metrics detailed in the following sections are essential to every query
analysis.
The Performance Schema provides all nine essential query metrics.
NOTE
Query metric names also vary by source. In the slow query log, query time is
Query_time; but in the Performance Schema, it’s TIMER_WAIT. I don’t use either
convention. Instead, I use human-friendly names like query time and rows sent. Query
reporting almost always uses human-friendly names, too.
Query time
Query time is the most important metric—you knew that already. What you
may not know is that query time includes another metric: lock time.
Lock time is an inherent part of query time, so it’s not surprising that the
latter includes the former. What’s surprising is that query time and lock time
are the only two time-based query metrics, with one exception: the Percona
Server slow query log has metrics for InnoDB read time, row lock wait
time, and queue wait time. Lock time is important, but there’s an
unfortunate technical gotcha: it’s accurate only in the slow query log. More
on this later.
Using the Performance Schema, you can see many (but not all) parts of
query execution. This is off-topic and beyond the scope of this book, but it’s
good awareness so you know where to look if you need to dig deeper.
MySQL instruments a bewildering number of events that the manual
defines as, “anything the server does that takes time and has been
instrumented so that timing information can be collected.” Events are
organized in a hierarchy:
transactions
└── statements
└── stages
└── waits
Transactions
Transactions are the top-level event because every query executes in a
transaction (Chapter 8 covers transactions).
Statements
Statements are queries, to which query metrics apply.
Stages
Stages are “steps during the statement-execution process, such as
parsing a statement, opening a table, or performing a filesort operation.”
Waits
Waits are “events that take time.” (This definition amuses me. It’s
tautological and oddly satisfying in its simplicity.)
Example 1-3 shows the stages for a single UPDATE statement (as of
MySQL 8.0.22).
Example 1-3. Stages for a single UPDATE statement
+----------------------------------+-------------------------------
---+-----------+
| stage | source:line
| time (ms) |
+----------------------------------+-------------------------------
---+-----------+
| stage/sql/starting |
init_net_server_extension.cc:101 | 0.109 |
| stage/sql/Executing hook on trx | rpl_handler.cc:1120
| 0.001 |
| stage/sql/starting | rpl_handler.cc:1122
| 0.008 |
| stage/sql/checking permissions | sql_authorization.cc:2200
| 0.004 |
| stage/sql/Opening tables | sql_base.cc:5745
| 0.102 |
| stage/sql/init | sql_select.cc:703
| 0.007 |
| stage/sql/System lock | lock.cc:332
| 0.072 |
| stage/sql/updating | sql_update.cc:781
| 10722.618 |
| stage/sql/end | sql_select.cc:736
| 0.003 |
| stage/sql/query end | sql_parse.cc:4474
| 0.002 |
| stage/sql/waiting handler commit | handler.cc:1591
| 0.034 |
| stage/sql/closing tables | sql_parse.cc:4525
| 0.015 |
| stage/sql/freeing items | sql_parse.cc:5007
| 0.061 |
| stage/sql/logging slow query | log.cc:1640
| 0.094 |
| stage/sql/cleaning up | sql_parse.cc:2192
| 0.002 |
+----------------------------------+-------------------------------
---+-----------+
The real output is more complex; I simplified it for easy reading. The
UPDATE statement executed in 15 stages. The actual execution of the
UPDATE was the eighth stage: stage/sql/updating. There were 42
waits, but I removed them from the output because they’re too far off topic.
Performance Schema events (transactions, statements, stages, and waits) are
the fine details of query execution. Query metrics apply to statements. If
you need to dig deeper in a query, look in the Performance Schema.
Efficiency is our modus operandi, so don’t get lost in the Performance
Schema until you need to, which may be never. Query time is sufficient.
Lock time
Lock time is time spent acquiring locks during query execution. Ideally,
lock time is a minuscule percentage of query time, but values are relative
(see “Relative Values”). For example, on one extremely optimized database
that I manage, lock time is 40% to 50% of query time for the slowest query.
Sounds terrible, right? But it’s not: the slowest query has a maximum query
time of 160 microseconds and a maximum lock time of 80 microseconds—
and the database executes over 20,000 queries per second (QPS).
Although values are relative, I can safely say that lock time greater than
50% of query time is a problem because MySQL should spend the vast
majority of its time doing work, not waiting. A theoretically perfect query
execution would have zero wait time, but that’s impossible due to shared
resources, concurrency, and latency inherent in the system. Still, we can
dream.
MYSQL STORAGE ENGINES AND DATA LOCKING
Before I explain more about lock time and locks in general, let me
clarify some background information.
MySQL has many storage engines—and a history of storage engines,
but I won’t bore you with that. The default storage engine is InnoDB.
Other storage engines include: MyISAM, MEMORY, TempTable, Aria
with MariaDB, MyRocks with Percona Server and MariaDB, XtraDB
with Percona Server, and more. (Fun fact: the Performance Schema is
implemented as a storage engine.) In this book, InnoDB is implied
unless stated otherwise.
There are table locks and row locks. The server (MySQL) manages
tables and table locks. Tables are created using a storage engine
(InnoDB by default) but are storage engine agnostic, meaning you can
convert a table from one storage engine to another. Row-level locking is
managed by the storage engine if supported. MyISAM does not support
row-level locking, so it manages data access with table locks. InnoDB
supports row-level locking, so it manages data access with row locks.
Since InnoDB is the default storage engine, row-level locking is
implied unless stated otherwise.
NOTE
InnoDB also has table locks called intention locks, but they’re not important for
this discussion.
There are metadata locks managed by the server that control access to
schemas, tables, stored programs, and more. Whereas table locks and
row locks control access to table data, metadata locks control access to
table structures (columns, indexes, and so on) to prevent changes while
queries are accessing the tables. Every query acquires a metadata lock
on every table that it accesses. Metadata locks are released at the end of
the transaction, not the query.
Discovering Diverse Content Through
Random Scribd Documents
endless voice drew to a close at last, her heart choked her breath
with terror; she drove her nails into the palms of both her hands,
and kept her eyes firmly bent upon the ground. She would not look
up, even if she were addressed, and he would see that she did not
mean to answer.
‘Alice Robson, tell us, please, how the Lord has been dealing with
you.’
The shock of relief, and perhaps of disappointment—relief and
disappointment can be so strangely mixed!—was considerably
softened for Annie by the wonder how Alice would ever be able to
find courage enough to speak. She need not have wondered, for in
spite of her reserve the farmer’s daughter could bear such an ordeal
well. Alice answered softly and very modestly, but yet in a manner
that arrested attention; for the absence of formality is a quality to be
noticed in a Class.
‘I’ve been troubled lately,’ said Alice, softly, quietly, with a slight
quiver in her voice, a faint colour in her cheek; ‘I’ve been thinking of
one as seems to be in danger, and feeling as if in some way I ought
to help. An’ then I’ve wondered if it was all selfishness in me, an’ if I
was really only feared to lose a friend; but I hope I’ll be taught to
feel as I ought to do, an’ as the one I fear for ’ll be kept from harm
an’ wrong.’
Mr Bender bent towards her to give her his advice (he had only
said a few words in answer to the first member’s speech), whilst the
whole class was stirred by some visible curiosity with regard to the
mysterious friend of whom she had spoken. ‘It’s Tim,’ thought Annie,
after rapid consideration, with which was mingled a thrill of
irresistible anger—of anger that the mention of one whom she had
learned to think her property could bring the colour to another
woman’s cheek. So hopelessly mistaken do we all become when we
attempt to penetrate another’s heart.
For Alice had bent her head, the words of advice being ended,
with all her mind full of fear and prayer for Nat, the passionate,
wilful boy who clung to her heart by the very reason of his passion
and wilfulness. ‘She isn’t a good girl—oh! she’s not,’ cried Alice; ‘she
likes every man as comes near to look at her; an’ he seems so
excited about it—an’ I can’t think it is good for him to come up to t’
Farm, an’ work for her. Mr Bender says I’m to trust, but it is hard to
go on trusting when everything goes wrong.’ It was perhaps natural
that she should not question herself about the nature of the feeling
that wrung such fear from her. She kept her head bent and did her
best to ‘trusten,’ though with some soreness of perplexity in her
heart.
The other members had meanwhile had their say, and in speeches
of varying length had all attempted to communicate their spiritual
condition to Mr Bender’s ears. It must be owned that they were
rather less than more successful, unless indeed he had the
discernment to read between the lines—and such discernment was
not especially apparent in the words of advice which he addressed to
them. The six who spoke were of very different ages, from the stout
mistress of the house to an hysterical servant-girl; the other four
being two sisters, dressmakers, the young wife of a labourer, and a
teacher in the village-school. These related their feelings in
conventional sentences, to which he replied with words of
exhortation; the regularity being only broken by the trembling
servant-girl, who thought herself reproved, broke down all at once,
and sobbed. When she had been consoled by Mr Bender, who
became somewhat agitated, the line of speakers was completed; for
with one exception, the stranger and visitor, each had taken her
part, and had no more to say. There followed a pause, and all began
to wonder whether it was not time for the Class to be closed.
‘It is not late,’ said Mr Bender, nervously, without daring this time
to raise his eyes from the ground; ‘we have a few minutes in which
it may be possible for us to listen to one more experience. Will our
sister, who is a stranger, consent to be persuaded to say a few words
about herself to us?’
Silence. Excitement. Annie sat resolutely upright, with her eyes as
resolutely downcast; her face burning, her heart throbbing, and her
lips compressed. Mr Bender glanced at her with visible
disappointment; he waited an instant, then he spoke to her again:
‘We Methodists have learned the comfort of joining together when
we wait on the Lord; we believe that we are often able to find
consolation and instruction from the lips of each other at such times
as these. Has our sister any difficulty on which she would ask our
advice, or any sorrow which she may ask us to share?’
Still silence. Greater excitement. The face of Annie was flaming,
but her lips continued to close upon each other. For one instant the
minister gazed upon her silently, then he rose from his chair, and
gave the number of the hymn. If, at that moment, she felt the
impulse of confession, it was then too late, and the time for speech
was gone.
Ah! would it have been better if that troubled, silent nature could
have compelled itself to speak, to give words to the conflict that
raged within its heart, and seek for some help that might avail to
save? Would future misery have been averted, if that opportunity
had met with response? I cannot tell; I can only say, that to Annie,
such public confession would have been unnatural; her whole nature
shrank from laying bare to strangers the inmost recesses she veiled
even from herself. She had come to the Class with some vague hope
of assistance, but it was not in such ways that her trouble could find
relief; to speak of her anguish seemed impossible, and she could not
speak without speaking honestly. And yet, at that moment, she was
troubled, thrilled, excited, her heart had been touched, although her
lips were silent! She stood with the members, and from their united
tones came the pathetic cadence of a hymn—she heard the voices of
her companions rise and fall, if she had opened her own lips she
would have broken down into tears.
The voices ceased, the members knelt, prayed silently, rose again,
the Class meeting was over....
Scarce a word passed between the two girls, as, unaccompanied,
they found their way over the fields towards their homes, whilst
slanting sunlight fell on them, and on the meadows, and on corn-
fields ripening beneath the summer sun. At the gates of the yard
they paused and kissed each other, then silently separated, and
Annie went on to her home; her passionate thoughts still struggling
beneath an impulse of duty which had been unknown to her before.
‘I will be good,’ thought poor Annie, desperately; ‘I willent meet
him within the fields again; if he wants to have me he must come up
to t’ house, and tell before mother all he has to say. I would ha’ told
mother about him long ago, but I didn’t like sin’ he allays begged me
not; it seemed so hard on him as is like a gentleman to be tied to
me who am but a village girl. But I will be honest; I’ll have no
double-dealing; I’ll give him up sooner than do wrong for him.’ As
the words trembled on her lips she turned the handle of the cottage
door; she entered and crossed the threshold of her home. And in an
instant she stood still, struck with dismay—her father was there, he
had returned once more.
CHAPTER XIII
THE RETURN OF THE FATHER AND THE LAST OF THE RANTAN
YES, there he sat, there could be no doubt about it—he sat in his
wooden chair upon one side of the hearth, a wan, blear-eyed,
crouching, shivering specimen, too visibly in a condition of tipsiness.
Annie had been used to her father in every stage of drink, and could
see at once at what phase he had arrived, a state of virtue and
moral indignation, ready to be maudlin at the first opportunity. At a
little distance, with pale, indignant looks, though not near each
other, sat his wife and son—Jenny upright, silent, her lips stern and
compressed, a strange expression for her timid face to wear. She did
not draw close to Nat, nor he to her, rather they preferred to remain
obviously apart—it was evident that if she was divided from her
husband she was also for some reason separated from her son.
Indeed there had been a painful scene that morning; as Annie, on
her part, had good cause to know, though the religious excitement
that she had since experienced had driven the scene of the morning
from her mind. She stood by the door now, uncertain what to do,
her pulses quivering, and her face aflame.
‘It’s a pretty thing, isn’t it?—er—er—?’ cried Rob to her, addressing
her as a stranger who had come into the house, ‘it’s a nice, good
thing I should come into my dwellin’, an’ be welcomed i’ this way by
my wife an’ son. There’s my wife she wo-ant kiss me for all I ask her
to—she’s too good for me, happen—’ and here for a while he cried
—‘or it’s like as she’s doin’ what she don’ want me to know, an’ is
ashamed when an honest man comes ho-am.’
‘You needn’t go tellin’ your vile, wicked thoughts,’ cried Jenny,
absolutely excited into speech; ‘or think as there’s any one at’ll
believe ye, when ye set for to take away my character. Ye’ve been
my disgrace an’ shame sin’ we were wed; an’ t’ boy, he’ll be like ye,
it is like enough—if ye’d set about to train him and correct him, there
might a bin some chance for him, but now there’s none.’
‘There ye go!—ye’re on at my trainin’ an’ correctin’,’ burst out Nat,
his young face afire with rage and shame; ‘ye’d set my father upon
me if ye could—but I can’t have t’ strap now, I’m too old for that.’
And Rob faltered with tears that t’ boy had a fine spirit—he was
his boy, an’ was not t’ mother’s son.
‘Come an’ kiss me, Nat—come an’ kiss me,’ he whimpered, ‘t’
mother she haven’t no heart for either on us—she’ll be tellin’ me as I
am in drink, it’s like; when I haven’t not touched a drop sin’ I was
here. But ye will kiss me—an’ then ye’ll come wi’ me—an’ we’ll make
our fortunes, an’ get away fro’ here.’
‘Go an’ kiss your father, Nat,’ said Jenny, slowly and coldly—and
the boy got up from his chair, but then stood still, for even the sense
of his mother’s scorn was not sufficient to induce him to go near his
father. He stood still, trembling and troubled, without being able to
decide to which side to turn, to the wrath and righteousness in his
mother’s eyes, or the unalluring vice that asked for an embrace. His
hesitation had a voice more plain than words, and Rob’s sense of
injury found a new direction.
‘Do ye think as ye’ll go to disobey me, ye little d—d scoundrel?’
cried the father’s wrath; ‘I’ll teach ye, an’ leather ye, an’ shew yer
mother too as I’m goin’ to be master, whatever she may say. Ye dare
to come near me! I’ll know how to teach ye; ye give me t’ cha-ance,
an’ I’ll make use on it.’
‘I’m not afraid,’ answered Nat, with resolution, and he did indeed
take one step towards his father; but in an instant, with a little cry of
terror, poor Jenny rushed forward and threw herself between. She
was not always ready to forgive her son, even when such
forgiveness might have brought him to her feet; but she was ready
to be struck in his stead at any moment, even whilst not forgiving
him—that is a mother’s love. Rob did raise his hand; but confused by
a change of victims, he let it drop, and fell once more into tears—he
whimpered that it was a strange thing for a man to come back, and
not find that his ‘people were proud to meet wi’ him.’
Proud to meet with him!—the shivering, drunken wretch,
crouching over the fire in the home that he disgraced, the words
might even have been considered ludicrous, as if any family could by
possibility be proud of him! But in the midst of the silence into which
his words had fallen, whilst Jenny sat upright and rigid, still and
pale, whilst Annie stood quivering, trembling, by the door, and Nat,
still angry, had almost broken down into tears—whilst the members
of the little family were all miserable, convulsed, absorbed in the
private woes in which the outside world is lost—it was at that instant
that there echoed in the distance a clang which, to three of the four,
was a too familiar sound. The last night had come—the greatest
night of all! and the village Rantan was on its way again.
‘Good be with us! what’s that?’ cried Rob, who was so much
startled, that for the moment the shock almost sobered him; the
more so as he saw in the faces of his family an unmistakeable
evidence that the noise concerned himself. A sudden remembrance
of the Rantan frolics, in which he had joined himself when a
younger, better man, a sudden horror of shame and indignation
rushed down upon him, and for a moment choked his breath. He sat
silent, panting, the excitement of drink in his eyes, at that moment
almost like the dark, handsome suitor who had wooed pretty Jenny
in her girlish days. And now the clamour had turned into the lane,
and they could hear the hooting and laughing of the lads—Rob could
hear his own name in shouts, groans, and hisses, accompanied by
such opprobrious titles as village wit could furnish. It was too much;
the small amount of reason he had left combined with his
drunkenness to urge him to resist; with a sudden, fierce movement,
he flung himself from his seat, and rushed to the door, which he
banged behind his back. The sound of the clamour was increased
and yet interrupted by the noise of the different tumult which now
broke upon its course—the noise of a scuffle, of blows, of hasty
warfare, a confusion of steps and voices .... then, a fall.
And in an instant, overcome by a sudden terror that would not
allow even her pride to keep her still, poor Jenny flung the door
open as wide as it would go, and stood before her adversaries on
the threshold of her house. She stood there, a slight figure in the
summer evening light, and the respect in which she was always held
imposed a silence that was deep and universal, and that fell on the
motley crowd with a sudden calm. They had another and graver
cause for silence; a fear of consequences was rising in their hearts,
for there in the lane, a prostrate, motionless figure, a young man lay
with his head in pools of blood.
‘Ye needn’t fear, missus,’ cried our old acquaintance Bill,
recovering first from the panic of the crowd; ‘there’s not so much
harm done as ye might go to think; these young uns are tough, and
he’ll get up again. It is Tim Nicol—poor Tim, as ye know well—he’d
come down to try an’ turn t’ lads away—an’ Rob he supposed he was
doin’ harm, it’s like, for he caught up a clatch o’ wood, an’ made at
him. Ye’ll let him be brought into your house for a bit; Rob has got
off, an’ he’s not like to come back.’
They lifted the prostrate figure gently, and carried it into Jenny
Salter’s home; whilst she stood there, silent, pallid, unresisting, as
one who has been too much stunned with grief to move. The whole
Rantan was in confusion in the lane, the grotesque banners were
lowered, the clanging pans were silenced, the lads were gathered in
terror-stricken groups, appalled at the consequences of their fun. No
one noticed that from the back-door of the cottage an unseen figure
had fled into the fields—it was Annie, with wrath and terror in her
heart, escaping from this fresh misery in her life. Alas! the poor child
—and alas! for such poor children who find their incentives to evil
within the shelter of their homes.
The Rantan was scattered, dispersed to right and left, its
members escaped almost in silence through the streets; there was
no bonfire, no concluding ceremony, there had never been a Rantan
come to such an end before. Yet it may be that after all it had
accomplished more than previous Rantans had done, for issues and
sequences are not to be calculated by the careless hands that set
such trains on fire. As the corn ripened slowly to its harvest-time,
the echoes of that summer evening may have been working still.
CHAPTER XIV
IN SUMMER DAYS
THE white sun was sinking lower in the west, above the valley at the
foot of Lindum hill, when Mr Lee rose from his chair in his private
apartment to welcome the nephew who was shown into his room. It
was the first time, in the course of their mutual lives, that the
nephew had set foot in his uncle’s house.
An abode of wealth! and yet there were few signs of riches in the
scantily furnished, bare, and matted room, beneath whose windows,
in grey, shining haze, lay the extensive prospect of the valley
beneath the town. A hard room, full of unornamental book-cases,
with one small table, severely erect and square, and on that a heavy
desk, a solid inkstand, some piles of papers, a pen-wiper, and a
purse. The eyes of the nephew wandered to these things before he
accepted the hand held out to him; and it was not until he was
seated, and his mind was more composed, that he ventured to raise
his glance to his uncle’s face. It was not often that he was agitated,
but then this interview meant so much to him!
Mr Lee, on his part, had found no difficulty in surveying his visitor
with a steady gaze; though even for him there was a little agitation,
displayed in the colour that mounted in his face. Perhaps the sight of
his sister’s son affected him, the sister towards whom he had been
unforgiving, and who was dead; or perhaps he almost repented the
relenting that had induced him to send to his nephew and demand
an interview. His original refusal to see his young relations for a
while had been so firm, had been so uncompromising! and yet for
once he had actually changed his mind, not only before winter, but
even before autumn came. Some feeling of curiosity may have
prompted him, or some remonstrance of the Squire who was his
friend, or the fact that during the last month he had been ill, and
that he was a lonely man, and that his wealth had no heir. Whatever
the cause, his change of action was now a fact, for here before him
was the young man, his sister’s son.
At such moments the first glance counts for a good deal; indeed,
the impression it leaves is of almost unfair importance, for it is often
difficult afterwards for our sober, solid, reason to counteract its
influence. Mr Lee saw before him a young man, tall and slender, with
a delicate face into which a nervous colour stole; with drooping
eyelids, and thin, fine, hair, a delicate complexion, and nervous,
parted lips. A graceful figure, a face not without charm, an attire
refined and carefully arranged; the most hostile adversaries,
speaking honestly, could not have been bold enough to deny these
advantages. They might have denied that the gentle-featured face
gave the smallest indication of steadfast principles, but then we are
not accustomed to look for unwavering resolution in the
countenance of a young man of three-and-twenty years. And it is
certain that in the course of a wandering life Mr James Gillan had
gained an appearance of good-breeding; the son of a wandering
actor, he had yet acquired refinement, and had the look and the
words of a gentleman. This appearance, moreover, was intensified
by the attractiveness of a gentle, pleasing face; and a quiet manner,
which was a positive relief to the uncle who had seen his sister’s
books and songs. And yet the old man, a keen and shrewd observer,
was not altogether satisfied, in spite of his relief.
A contrast himself!—Mr Lee was not refined or pleasing, but his
grey eyes were clear and bright beneath his brows, and every line of
his harsh, rugged face was graved with a decision that almost rose
to power. A passionate face, but with passion well-subdued, a face
untender, proud, and illiterate, not softened by love, not refined by
education, not enlarged by wide views, and general sympathy. The
son of a grocer, a dealer in provisions, then a general merchant of
large and wide success, he had pursued an honoured and
industrious career, and had retired from business a respected,
wealthy man. The unfortunate circumstances attending his early
marriage had debarred him from the most softening influences of
life; though, with the want of refinement that characterised his
words, he had made into his favourite joke that long-past tale. That
was the man! he could keep a promise honourably, indeed with a
scrupulous honour that rose to chivalry; but no delicate tact, such as
sensitive natures own, would hinder him from boasting of a promise
he had kept. Not parsimonious, but not at all luxurious, he had not
the least love for society and its ways, and his establishment at the
top of Lindum Hill was conducted with the utmost simplicity, though
not penuriously. In the house with him were only his favourite
attendant—a dark-faced, under-sized, active boy—an old woman
who was his housekeeper and cook, and her husband, who had
been his coachman many years. The cathedral bells chimed at a little
distance from the house; beneath it lay the valley in endless lights
and shades; and Mr Lee, though but little impressed by sight or
sound, made himself comfortable, and was content. Only sometimes
the remembrance of his conduct to his sister affected him with a
slight sensation of remorse; and he had been lately ill, and still was
feeble, and he was solitary, and his riches had no heir. These various
reasons, acting on each other, had produced the change in his
purpose which we have seen—he had written to his nephew to ask
for an interview, and now was receiving him at his own request. No
such very great change after all, but Mr Lee was always accustomed
to cling to all purposes with tenacity.
If in the mind of the young man close to him, who sat with his
eyelids down-cast, waiting humbly for him to speak, there was being
waged a conflict, more uncertain, more terrible, the uncle at any
rate saw no signs of it. For the contest between our love and our
ambition lies low in our heart, out of reach of human eyes; and the
supreme moments in which the fight is hottest pass on without
observation from the world. James Gillan gave only one sudden,
stifled gasp, as if he had found that there was no air in the room;
and then, with his head inclined and his fingers loosely clasped, sat
waiting to hear what his companion had to say. For—‘So you have
come here, sir,’ said Mr Lee, ‘that’s as it should be, since I have to
speak with ye.’
CHAPTER XVI
AN OMINOUS CONFLICT AND A FINAL RESOLVE
‘I HAVE come, sir,’ James Gillan said, raising his eyes modestly, ‘in
consequence of the letter from yourself which I received to-day. If I
had not received it you may be sure that I should not have ventured
to intrude upon you.’
He made the statement quietly, and with apparent self-
possession, although he knew that a conflict was raging in his heart,
from the remembrance of another plan, and of very different hopes,
which had nearly reached their fulfilment by the time the letter
came. ‘Oh, would it have been better,’ this was the cry of the
conflict, ‘if I had made up my mind to that, and had not come here
at all?’
‘Oh, ah, ye speak well, sir, ye express yourself very well,’—the
uncle was only half-pleased with his readiness—‘ye’ll have been
educated, I make no doubt of it, and are able to have opinions for
yourself. When my poor sister would go off with a stranger it was
never my thought that she went to luxury, but ye and the girl seem
to have been brought up easy-like, and to have had your share of
the pleasures o’ the world. I hope as ye’ve had some real instruction
too, to which ye can turn your heads and hands to-day.’
‘My sister, and myself,’ said James Gillan, quietly, ‘have had a
wandering life, and an unsettled education, from which we have
gathered such knowledge as we could. My father was a man of
talent, I may say of many talents, but he did not meet with steady
professional success; and I know that he regretted his inability to
give us as much instruction as he wished. I think I may say, for my
sister and myself, that we would like a less unsettled and securer
life; but it is not yet a year since the death of both our parents, and
we have not had time to find employment for ourselves. If you,
being a relation, could give us any assistance, you may be certain at
least of our gratitude.’ He spoke with the smile that disarms hostility
giving pleasant lines to his lips, though it scarcely touched his eyes—
the rarely lifted eyes which, being blue in colour, had more distinct
beauty than any other feature in his face. Mr Lee was not insensible
to the charm of glance and smile, but he was also aware that he did
not know their meaning yet.
‘Oh, ah, industrious!’ he said, not without sarcasm, with the
raillery, rough if not rude, that was peculiar to him; ‘you would make
me into an office or a registry, to find you places that you may go
an’ work. That’s very fine; I’m glad of that sort o’ spirit, it isn’t too
common in these idle days. But tell me, nephy, an’ speak for my
niece as well, is that all that ye think ye may expect from me?’
Before his keen glance the young man’s eyelids fell; but that
discomfiture was only momentary, and with renewed assurance he
raised his eyes again. A fine tact, a tact that is not common in the
world, can make even an essentially timid nature brave at times, for
it is able to be aware of the fitting moment when secret purposes
may be helped by honesty. If James Gillan were open-hearted his
countenance belied him, but at this moment his words were direct
enough.
‘I think, sir,’ he said, with a little hesitation, but not more than was
natural in so young a man, ‘I think .... if you ask me .... that I must
reply that if we cannot expect we yet might hope for more.’ And
then, feeling rather than seeing his uncle’s gaze upon him, he went
on with resolution, although his colour rose; ‘We have no parents ....
I believe you have no children .... there are many ways in which you
might do well by us.’ The sense of his daring almost stopped his
breath—on the issue of those few words he had staked his future.
Mr Lee was staggered; he rose up from his seat; he walked with
firm paces straight across the room; he stood by the window as if he
were looking at the valley on which already the evening radiance
fell. In spite of himself his nephew’s words had pleased him, the
challenge he had flung had been accepted courageously; whatever
might be this young man’s faults and failings, it was obvious that he
was not without qualities. And then, the readiness, the refinement of
his visitor, were beginning at length to impress him favourably; if he
had been partly repelled by them during the first few minutes, he
felt the reaction in their favour now. It needed the remembrance of
all he had seen and heard during his visit to the Manor Farm in the
absence of his relations, to recall to him the caution which, although
it was habitual to him, he felt for once almost disposed to drop. For
he was a lonely man .... he did not know how to spend his money
.... and if these young relations would submit to him ....
With a decided movement—but then his movements were always
decided—he turned away from the window, and the evening glow on
the valley: and with a few strides crossed the room, and stood by
the table near which his nephew sat. He stood with his hands resting
on it, a favourite attitude, looking down on the young man, his harsh
features furrowed and rugged with an agitation, which rendered it
difficult for him to speak at once. There was no sign of emotion,
however, in his hard, dry voice, when at length he spoke.
‘Nephy Gillan,’ he said, ‘I’ll deal direct by ye, as ye, on your part,
have dealt direct by me; I’ve got some money—I’ve got a deal o’
money—an’ I’d as lieve waste it on ye as on charities. But then, ye
see, I don’t know ye well eno’, and I’m not quite satisfied with all
I’ve heard on ye—I don’t want to give money, as ye’ll well
understand, for a girl to flurret, an’ a boy to gamble with.’
It was a home-thrust, and the young man’s head bent again,
although less in surprise than in perplexity; for it was not easy to
decide in the first instant in what manner these accusations should
be met. He was not aware of the extent of his uncle’s information,
and it might be dangerous to attempt denials; and, moreover, the
past scrapes of himself and Tina were subjects on which he did not
wish questions to be asked. It appeared safer, therefore, to assume
humility—the humility that disarms opposition and in that way
defends itself.
‘I think I told you,’ he said after a pause—a pause not long
enough to give suspicion time to wake—‘that we have had a
wandering life and an unsettled education; and I don’t doubt that to
you that sounds like idleness. But it is our wish to find work for
ourselves—assisted, if you will, by your generosity; and I am sure I
may say that if you will consent to help us you will not find that you
have any reason to complain.’ There was a slight sound of hesitation
in his voice; but, in spite of that, he got through the words well
enough.
‘Ye are meaning to tell me,’ Mr Lee looked at him fixedly, ‘that, if I
were to take ye into my house to-day, ye wouldn’t waste money, an’
your sister wouldn’t flurret, an’ ye’d give up your old acquaintances,
an’ be all as I could wish.’ A sudden, sharp pang pierced to the
young man’s heart; for a moment it contracted his features, then he
looked up and smiled. That smile meant assent, and he knew it
meant assent; in that moment, for the sake of his ambition, he
renounced his love.
‘Hum—hum—’ said the old man, and sat down, and got up again,
and stood by the window, and then walked about the room; and
then, pausing once more by the side of the table, remained with his
head bent, absorbed in thought. His companion was aware that on
the issue of those moments depended the lives of his sister and
himself, but he sat quietly waiting the event, and only clenched the
nails of his hands into the palms. Five minutes passed—ten—in that
strained, breathless silence, and then Mr Lee sat down once more
and spoke.
‘Well, well,’ he said, ‘I’ve been glad to hear all ye say, an’ to have
this opportunity of knowing more o’ ye; we’ll have occasion to talk
on these things again, an’ I’ll happen be able to make up my mind
next time. I’ve got many calls, ye see, on me just now, but I’ll pay
for the board and lodgin’ as before; an’ ye an’ your sister must come
to me some day, so as we may be learnin’ to know more of each
other. I’ve an engagement, so I’ll wish ye good-day; but if ye stay
for refreshment I’ll have some sent to ye. Good-bye to ye now, an’
many thanks for thy visit; we’ll learn to be acquainted soon, I doubt
—good-bye.’
‘The old snake,’ muttered James Gillan, in a fury, by the window to
which he strode as his uncle left the room; ‘he thinks himself clever,
no doubt, to put me off, and to bind me with promises whilst he
himself is free. At any rate, I need make no alteration now; I
certainly will not give up my plans and hopes for him—a fine thing
indeed it would be to lose the girl I love for the sake of an old
rapscallion who gives words instead of coin!.... And yet if I lost his
favour .... but that is not inevitable .... we will keep things dark for a
while and bide our time; she ought really to consent to a little
secrecy when I have shown myself willing to do so much for her ....
And I shall have her, I shall at least be sure of that; and it may be
that all things will turn out for the best.’ The sound of the opening
door disturbed his meditations; he declined all refreshment, ordered
his horse, and rode away.
That night, a dark night, when all was indistinct, and even the
stars were not brilliant in the sky, and the outlines of trees made dim
and gloomy masses, and the village had closed its blinds and locked
its doors—on that night, whilst the wide meadows lay beneath the
stars, two shadowy figures met in the Thackbusk field. And as they
stood there, with their arms round each other, they whispered to
each other that all was arranged at last.
CHAPTER XVII
A PLEASANT EVENING
ON that same evening, whilst darkness lay on the fields, and in the
dim Thackbusk meadow the two wandering figures met, there were
bright fires and lights and a pleasant sense of welcome within the
closed shutters of the Manor Farm. The grate in the old kitchen was
aglow with flames, there was a bronze lamp on the table, and the
candles on the piano were lit; and by the piano, in her black lace
evening dress, sat Tina, and at intervals she played and sang. Her
weird, sweet voice lent itself to this fitful music, which rose and fell
like the moaning of the wind. For a while she had been silent, and so
had also her companion; and then, suddenly, she broke once more
into song.
‘Oh, what is that glides quickly where velvet flowers grow thickly,
Their scent comes rich and sickly?’ ‘A scaled and hooded worm.’
‘Oh, what’s that in the hollow, so pale I quake to follow?’
‘Oh, that’s a thin dead body, which waits the eternal term.’
The lights of the Farm were still before his eyes when he paused
for an instant on the threshold of his home, listening for the voices
of Annie and his mother, hoping that he would not be obliged to
speak to them. With the remembrance of a pleasant evening, of
Tina’s murmured words, he paused for an instant, then turned the
handle, and went in. And then .... he stood still as his sister had
done once, but with a more startled dismay, a deeper dread.
The cottage was silent, a solitary candle was burning; his mother
sat by it with her head upon her hands, a scrap of writing before her
on the table, her features pallid, her eyes fixed, scared, and dry. The
scrap of writing gave sufficient information; his sister was gone, she
had left the cottage that night—whilst he had been occupied with his
enjoyment she had escaped in the darkness from her home.
CHAPTER XVIII
A TERRIBLE NIGHT
THE village news, spreading fast, as has been said, was not long in
reaching the mansion of the Squire, the grey house that was
situated upon the hill, with trees around it and the church to the left
of it. It came to this great house of the village with the milk, which
was brought in the early morning by a little village boy, was
discussed over breakfast in the servants’ hall, and was introduced
into the study of the master with the newspaper. The Squire was
interested, and even to a certain extent affected, although the
details of village life did not often concern him much, for he was a
recluse, with literary tastes, who preferred to seclude himself from
the outside world. His servants were not only interested but also
much excited, stirred to pity and even in some degree to triumph,
for they had been jealous of their master’s handsome favourite,
whose sister had become so unhappily distinguished now. The
housekeeper declared that there must be something wrong with the
family, and that for her part ‘she had never no opinion of the lad.’
Still human pity is produced by impulses that are happily often
independent of our opinions, and when Nat appeared at eleven
o’clock as usual, pale, with swollen eyelids, trying hard to hold up his
head, he found himself received with a general compassion, which
would not even disturb him by too many questions on the event.
The housekeeper, indeed, took him apart into her room to ask if he
had heard of his sister, and to express pity for his mother, but no
one would have imagined from her manner how unfavourably she
had spoken of him a little while before. Mrs Cranby was an old
institution in the Squire’s household, a handsome old woman, with a
manner of simple dignity, with a little red shawl on the shoulders of