Professional Documents
Culture Documents
Concurrency and
Consistency 1st Edition Edition
Matthieu Perrin (Auth.)
Visit to download the full and correct content document:
https://ebookmass.com/product/distributed-systems-concurrency-and-consistency-1st
-edition-edition-matthieu-perrin-auth/
Distributed Systems
Series Editor
Jean-Charles Pomerol
Distributed Systems
Matthieu Perrin
First published 2017 in Great Britain and the United States by ISTE Press Ltd and Elsevier Ltd
Apart from any fair dealing for the purposes of research or private study, or criticism or review, as
permitted under the Copyright, Designs and Patents Act 1988, this publication may only be reproduced,
stored or transmitted, in any form or by any means, with the prior permission in writing of the publishers,
or in the case of reprographic reproduction in accordance with the terms and licenses issued by the
CLA. Enquiries concerning reproduction outside these terms should be sent to the publishers at the
undermentioned address:
Notices
Knowledge and best practice in this field are constantly changing. As new research and experience
broaden our understanding, changes in research methods, professional practices, or medical treatment
may become necessary.
Practitioners and researchers must always rely on their own experience and knowledge in evaluating and
using any information, methods, compounds, or experiments described herein. In using such information
or methods they should be mindful of their own safety and the safety of others, including parties for
whom they have a professional responsibility.
To the fullest extent of the law, neither the Publisher nor the authors, contributors, or editors, assume any
liability for any injury and/or damage to persons or property as a matter of products liability, negligence
or otherwise, or from any use or operation of any methods, products, instructions, or ideas contained in
the material herein.
I am grateful to Achour Mostéfaoui and Claude Jard for their contribution to the
work presented in this book. I offer warm thanks to Luc Bougé and Maria
Potop-Butucaru for their relevant comments that helped improve the quality of this
book. Finally, I would like to thank Matoula Petrolia for playing Alice’s role in the
illustrating examples.
Introduction
I.1. Preamble
Bob was daydreaming as he walked into the subway station. It has been two days
since he had last talked to Alice. His anger has gradually turned into bitterness, then
into guilt. He understood now that his initial reaction had been somewhat
exaggerated and wanted more than anything to bury the hatchet with his childhood
friend but did not know how to approach the situation. He felt surprised and relieved
when he received a message from her inviting him to go out for coffee. He managed
to quickly respond as the train was approaching the dark tunnel. However, at the heart
of the city, the failing network could not transmit his liberating reply “Obviously”.
Alice loved Bob as a sister, despite the chronic anxiety and shady character of the
one whom she saw as her oldest friend. Two days earlier, he had left in a rage because
of a simple misunderstanding and she hadn’t been able to reason with him since. Even
now, reconciliation seemed difficult: Bob had purely and simply ignored her invitation
to go out for coffee. She tried a new strategy and sent “You didn’t answer.” followed a
few seconds later by a humble “Are you angry?”.
The story does not tell what happened in the end and we can only imagine
it. As strange as it may seem, Alice and Bob’s fate very strongly depends on
the instant messaging service chosen to communicate. We have tried to reproduce
their conversation with three general instant messaging services: Google Hangouts1
(Hangouts), WhatsApp Messenger2 (WhatsApp) and Microsoft Skype3 (Skype). The
experiment has been performed with Matoula Petrolia playing the role of Alice and
myself in the role of Bob. Bob’s dropping connection has been modeled by using the
1 http://www.hangouts.google.com/
2 http://www.whatsapp.com/
3 http://www.skype.com/
xii Distributed Systems
airplane mode of the mobile phone. For each experiment, we present a screenshot
taken before reconnection and another taken after reconnection for both interlocutors.
The three messaging services exhibit very different behaviors confronted with the
same situation.
Hangouts (Figure I.1). Bob received Alice’s messages when coming out of the
subway. He looked absently at them thinking to himself that his own message should
have taken some time to reach her. It was not until late in the afternoon, when he was
about to specify the time and place of the meeting that he noticed the error message
written in small prints underneath her answer: “Message not sent. Touch to retry.”. He
resigned to call Alice to straighten things out.
WhatsApp (Figure I.2). Bob’s response felt to Alice like a cold shower.
“Obviously!” Not only he was angry at her but he has had no problems in saying it
out loud and as sarcastically as possible. Bob asked her later at what time she wanted
to see him. She did not immediately understand but seized the opportunity to accept.
It was only in the evening, when Bob showed her his own thread of messages that
she understood what had happened: their messages had been mixed up and each had
received the message from the other only after having sent their own. As a result, Bob
couldn’t have known that she had misinterpreted his message.
Skype (Figure I.3). Alice’s second strategy was also as unsuccessful as the first.
Although she was regularly checking her phone the whole day long, there was no
message from Bob arriving after her own on her thread of messages. She felt stupid
when she finally realized her mistake: she had not seen the cheerful response that Bob
had sent her before she sent him her second message. She hastened to apologize and
to make another meeting with Bob.
Based on these three scenarios, it can be seen that compromises are inevitable
when temporary disconnections happen, be it an error message (Hangouts), a
reordering of messages (Skype) or a presentation of a different state to the
interlocutors (WhatsApp). Each strategy has its own qualities but none is without
flaw. Instant messaging services are intended to be used by human beings, capable of
adapting themselves to numerous situations. Programs, for their part, are much less
able to do so and the consequences of unexpected inconsistencies in the data shared
by computers can be much more serious. Disposing of an effective way to precisely
model the different types of inconsistency that can occur is therefore a very important
challenge.
• Send("obviously")
•
•
• Send("obviously")
•
•
• Send("obviously")
•
•
4 http://www.internetlivestats.com/watch/internet-users/
5 http://boincstats.com
xviii Distributed Systems
At a very high level, distributed applications all share a similar model: processes
interact with each other by means of one or more shared objects that are able to
manage concurrency. In the case of an online game, the shared object is the game
being played and the rules of the game make explicit authorized strokes; processes
that compute weather forecasts share the map during the simulation, etc. Shared
memory and communication channels are other examples of shared objects, but at a
lower level. In general, distributed applications can often be modeled by layers, each
layer being an abstraction in the form of shared objects of the previous layer. To sum
up, a program can be seen as a hierarchy of shared objects, each with its level of
semantic requirement.
implementation of these operations involves a data structure that stores the sequence
of characters of the document. Depending on the application, this sequence itself
utilizes lower-level objects, such as a data management system abstracting the
communication primitives of the system in which the application is implemented.
The fact of considering a perspective that involves wait-free systems has significant
implications for the shared objects that can be build therein [ATT 95, ATT 94]. When
an operation on a shared object is initiated at the local level by a process, it must
be processed using only local knowledge of the process. The reads should be effected
locally, which means that each process has a local copy of the object. The impossibility
of synchronizing during operations prevents the removal of all inconsistencies. These
must therefore be specified with special attention. The central question of this book
can be formulated in this way: how can shared objects be specified in a wait-free
system?
How can we describe what an instant messaging service is? If we ask the
question randomly to users of these services, odds are high that the answer will be as
follows. “An instant messaging service allows the sending of messages between
multiple correspondents and displays received messages, from the oldest to the
newest”. This describes the normal behavior of these services, which occurs when
there is no concurrency occurring, i.e. in the case of sequential use. In the same way,
developers of concurrent applications in general often wish they could make use of a
shared version of the objects they are accustomed to in sequential programs. The
specification of a shared object must therefore rely on its sequential specification.
Which histories are correct? In the sequential case, there is no possible ambiguity.
In Figure 1.4(a), during its first read, the process has inserted 1, it can therefore
return only {1}. The reads following the insertion of the 2 have no other option than
returning {1, 2}. The history of Figure 1.4(b) must also be considered as correct: all
Introduction xxi
operations are consecutive in time and the sequence of values returned is the same as
in the sequential execution. What about Figure 1.4(c)? The operations are also
sequential but the first read follows the insertion of the 2 without taking it into
account. On the one hand, we could argue that this reading is false and therefore that
this history is inconsistent. On the other hand, each process performs the same
operations and reads the same values as in the previous execution. The only
difference between these two histories is thus how both processes perceive their
relative speed [PER 16]. However, in an asynchronous system, processes are unable
to tell the difference between the two histories, because the observed temporal order
could also be due to a desynchronization of the clocks of both processes, which
would have no effect on programs that use the object. There is therefore no definitive
answer to what is a consistent history, every situation being simply better described
by a particular consistency criterion. History of Figure I.4(b) is said to be
linearizable whereas that of Figure I.4(c) is only sequentially consistent.
p2 Insert(2) Read()/{1, 2}
p2 Insert(2) Read()/{1, 2}
and the formalization of these concepts is an important part of the work presented in
this book. We endeavor to fill in the blanks in order to extract the structure of the space
of weak criteria and therefrom to draw a map presented in Figure I.5.
I.6. Organization
After this introduction, a notation table is provided. Next, Chapter 1 presents the
mathematical framework common to all other chapters: therein we formally define
sequential specifications, concurrent histories and consistency criteria. This chapter
also formally defines wait-free systems.
Causal memory [AHA 95] is recognized as a central object among the memory
models that can be implemented in wait-free systems, but its definition utilizes
semantic links between reads and writes. Chapter 4 addresses the challenge of
including causality as a consistency criterion in our model. We define therein four
consistency criteria. Weak causal consistency is the greatest common denominator of
these four criteria. It can be associated with update consistency to form causal
convergence or to pipelined consistency to form causal consistency, which
corresponds to causal memory when it is applied to memory. Strong causal
consistency finally enables the study of false causality induced by the standard
implementation of causal memory.
SEC
C⊥ C⊥
UC
Ser
SC CCv
SUC
SC
LC C
WCC
SL SCC V
CC
PC
C⊥
SL EC UC Ser V CC
State Eventual Update Causal
locality consistency consistency Serializability Validity consistency
(p. 147) (p. 65) (p. 90) (p. 63) (p. 146) (p. 135)
C⊥ C
SC LC SC
Sequential Local Cache Minimal Maximal
consistency consistency consistency criterion criterion
(p. 55) (p. 47) (p. 43) (p. 42) (p. 42)
Figure I.5. Map of the consistency criteria discussed in this book. For
the color version of this figure, www.iste.co.uk/perrin/distributed.zip
xxiv Distributed Systems
Mathematical notations
E → F
f: Function f that maps f (x) ∈ F to each x ∈ E
x → f (x)
P(E) Power set of E
P<∞ (E) Set of subsets of finite cardinality of E
EF Disjoint union of E and F
f |E Restriction of f to E (f : function, E: set)
e≺ Predecessors of e in ≺ (≺⊂ E 2 : acyclic relation, e ∈ E)
e ≺ Successors of e in ≺ (≺⊂ E 2 : acyclic relation, e ∈ E)
≺ Transitive closure of ≺ (≺⊂ E 2 : relation)
Σ Set of finite words on Σ (Σ: alphabet)
Σω Set of infinite words on Σ (Σ: alphabet)
Σ∞ Σ∞ = Σ ∪ Σω (Σ: alphabet)
|u| Length of u (u ∈ Σ )
ε Word of length 0
u·v Concatenation of u and v (u ∈ Σ , v ∈ Σ∞ )
[a − z] Set of the letters in the Latin alphabet
Concurrent histories
H Concurrent histories
lin(H) Linearizations of H (H ∈ H)
EH Events of H (H ∈ H)
UT,H Update events of H (T ∈ T , H ∈ H)
QT,H Query events of H (T ∈ T , H ∈ H)
ÛT,H Pure update events of H (T ∈ T , H ∈ H)
Q̂T,H Pure query events of H (T ∈ T , H ∈ H)
e → e Process order (e, e ∈ EH )
e −−→ e Visibility relation (e, e ∈ EH )
VIS
Consistency criteria
1.1. Introduction
For designers, the specification is a goal to be attained, rather than just a way to
describe what they have managed to achieve (in the other case, this is instead referred
to as modeling). The specification is therefore a top-down process: users declare what
they require and designers implement what is requested from them. A high-level
programming language is an example of a specification method, in which users are
the programmers and the designers’ role is achieved by the compiler. In the best case,
a good specification system can similarly result in a programming language: we will
see in Chapter 6 how the concepts presented in this chapter can be integrated within a
modern programming language.
recognized by a transition system, the abstract data type. The consistency criterion is
a function that transforms sequential specifications into sets of concurrent histories
admitted by the shared object. A concurrent history is the modeling of the execution
of a program on a given distributed system, which describes the computational
entities and their calls to the operations of the object that we aim to specify. It
assumes the form of a set of events partially ordered by a process ordering that
describes the sequentiality of the computational entities of the system. In this chapter,
apart from in section 1.3.2, we assume that the modeling of the distributed system
employing the concurrent stories has already been achieved.
This chapter is organized into three main parts. Section 1.2 presents the concepts
of abstract data types and sequential specifications. Then, section 1.3 addresses
concurrent histories and more precisely defines wait-free distributed systems. Finally,
the focus of section 1.4 is on the notion of consistency criterion.
We illustrate this part by focusing on four abstract data types: the integer set
(Figure 1.1), the sliding window register (Figure 1.2), the queue (Figure 1.3) and
memory (Figure 1.4).
The model that we utilize is a form of transducer which is very similar to a Mealy
machine [MEA 55], except that in this case an infinite – but countable – number of
states is accepted. The values that may be taken by the data type are encoded in the
abstract state, taken from a set Z. It is possible to access the object by making use of
the symbols of an input alphabet A. Contrary to class methods, the input symbols of
the abstract data type do not have arguments. As a matter of fact, as a potentially
infinite set of operations is allowed, the call to the same method with different
arguments is encoded with different symbols. For example, the set (Figure 1.1) has as
many insertion input symbols I(v) as there are elements v to be inserted. These
symbols correspond to the same method I called with an argument in an
implementation. A method can have two types of effects. On the one hand, it may
cause a side effect, which changes the abstract state. The corresponding transition in
the transitions system is formalized by a transition function τ . On the other hand,
4 Distributed Systems
methods can have a return value taken from an output alphabet B, depending on the
state in which they are called, and on an output function δ. For example, the pop
method in a stack removes the element at the top of the stack (this is its side-effect)
and returns that element (this is its output). The formal definition of abstract data
types is given in definition 1.2.
We consider abstract data types up to isomorphism because the names of the states
are never directly used. In addition, we assume that functions τ and δ are computable
by a Turing machine to ensure that the difficulties in the implementation are only
related to the management of concurrency. The set of ADTs is denoted by T .
The transition function is complete, which expresses the fact that the object reacts
to all the external stresses imposed by the user. It is possible to model the fact that a
call is incongruous at a given time (for example, during an attempt to place a white
pawn when it is the black player’s turn in a game of Go) by a loop on certain states or
by an error state. In the ADT set, deleting an object that has never been inserted has no
effect. This is supported by the fact that τ (ζ, D(v)) = ζ if v ∈ ζ. The transition system
is also deterministic, which prevents the modeling of objects such as certain types of
heaps that have a method to return any of the objects inserted. It would be possible to
extend the model to probabilistic or deterministic ADTs, but we have decided not to
do so here, as to not add complexity which is not directly related to the topic under
study.
We will now see how the instant messaging services of the experiments in the
introduction can be modeled in the form of abstract data types. They include a write
operation for sending any message and a read operation that displays the result on
the screen. When we are just modeling the contents of the screen, a read only returns
the last messages, displayed from the oldest to the most recent. We propose to model
the instant messaging services by means of sliding window registers, formally defined
in Figure 1.2. The size k of the sliding window register represents the number of
messages that can be displayed on the screen. Sending a message, like writing to the
sliding window register, places the argument at the end of the message queue and the
read returns the k last written values.
Specification of Shared Objects 5
in which some output values are unknown. The sequential specification is therefore a
language of finite and infinite words on an operation alphabet (definition 1.4)
comprising the input symbols sometimes associated with an output symbol.
⎧
⎨ Z×Σ → Z
τT : (ζ, α) → τ (ζ, α) if α ∈ A
⎩
(ζ, α/β) → τ (ζ, α) if α/β ∈ A × B
We also define the function δT−1 that returns the set of states of T , in which a given
operation can be performed:
⎧
⎨ Σ → P(Z)
δT−1 : α → Z if α ∈ A
⎩
α/β → {ζ ∈ Z : δ(ζ, α) = β} if α/β ∈ A × B
C OMMENT 1.1.– A symbol of A can be referred to, depending on the context, by the
terms “operation”, “method” and “input alphabet symbol”. When there is no
ambiguity, we will favor the term “operation” (in particular to describe algorithms),
relatively less connoted to programming languages than the term “method” and more
explicit than the term “input alphabet symbol”.
It is often useful to classify operations according to their effects. The side effect of
an operation will be called its update part and the link between its state and its return
value will be called its query part. Certain operations which only have one query or
update part are referred to as pure. Definition 1.8 thus classifies operations into four
8 Distributed Systems
categories: update operations that modify the abstract state, query operations whose
return value depends on the abstract state, as well as pure update (resp. pure query)
operations that are not query (respectively update) operations.
For example, insertion and deletion operations of the set are pure updates and R
is a pure query. Some operations are also neither pure queries nor pure updates. This
is, for example, the case of the operation pop of the queue (Figure 1.3) which has
both an update portion because it removes the head of the queue and a query part
because it returns that element. Operations that are both pure queries and pure updates
are generally introspection operations that return information about the type itself,
such as the getClass method in Java. These operations are less interesting to study
because they do not raise any concurrency problems.
It is always possible to transform any ADT into a UQ-ADT by separating the query
part from the update part in operations that both occur at the same time. Revisiting the
example of the queue, the operation pop can be split into an operation hd that solely
returns the head of the queue without altering it (pure query) and an operation rh that
removes the head of the queue without returning its value (pure update). Definition 1.9
explains a generic transformation procedure. The operations α that correspond both to
a query and an update are split therein into a pure query αQ and a pure update αU .
Another random document with
no related content on Scribd:
material well-being, incalculable though this debt is. Beyond the fact
that we are an independent and united people, with half a continent
as our heritage, lies the fact that every American is richer by the
heritage of the noble deeds and noble words of Washington and of
Lincoln. Each of us who reads the Gettysburg speech or the second
inaugural address of the greatest American of the nineteenth
century, or who studies the long campaigns and lofty statesmanship
of that other American who was even greater, cannot but feel within
him that lift toward things higher and nobler which can never be
bestowed by the enjoyment of mere material prosperity.
It is not only the country which these men helped to make and
helped to save that is ours by inheritance; we inherit also all that is
best and highest in their characters and in their lives. We inherit from
Lincoln and from the might of Lincoln’s generation not merely the
freedom of those who once were slaves; for we inherit also the fact
of the freeing of them, we inherit the glory and the honor and the
wonder of the deed that was done, no less than the actual results of
the deed when done. The bells that rang at the passage of the
Emancipation Proclamation still ring in Whittier’s ode; and as men
think over the real nature of the triumph then scored for humankind
their hearts shall ever throb as they cannot over the greatest
industrial success or over any victory won at a less cost than ours.
The captains and the armies who, after long years of dreary
campaigning and bloody, stubborn fighting, brought to a close the
Civil War have likewise left us even more than a reunited realm. The
material effect of what they did is shown in the fact that the same
flag flies from the Great Lakes to the Rio Grande, and all the people
of the United States are richer because they are one people and not
many, because they belong to one great nation and not to a
contemptible knot of struggling nationalities. But besides this,
besides the material results of the Civil War, we are all, North and
South, incalculably richer for its memories. We are the richer for
each grim campaign, for each hard-fought battle. We are the richer
for valor displayed alike by those who fought so valiantly for the right
and by those who, no less valiantly, fought for what they deemed the
right. We have in us nobler capacities for what is great and good
because of the infinite woe and suffering, and because of the
splendid ultimate triumph.
In the same way that we are the better for the deeds of our mighty
men who have served the nation well, so we are the worse for the
deeds and the words of those who have striven to bring evil on the
land. Most fortunately we have been free from the peril of the most
dangerous of all examples. We have not had to fight the influence
exerted over the minds of eager and ambitious men by the career of
the military adventurer who heads some successful revolutionary or
separatist movement. No man works such incalculable woe to a free
country as he who teaches young men that one of the paths to glory,
renown, and temporal success lies along the line of armed
resistance to the Government, of its attempted overthrow.
Yet if we are free from the peril of this example, there are other
perils from which we are not free. All through our career we have had
to war against a tendency to regard, in the individual and the nation
alike, as most important, things that are of comparatively little
importance. We rightfully value success, but sometimes we
overvalue it, for we tend to forget that success may be obtained by
means which should make it abhorred and despised by every
honorable man. One section of the community deifies as “smartness”
the kind of trickery which enables a man without conscience to
succeed in the financial or political world. Another section of the
community deifies violent homicidal lawlessness. If ever our people
as a whole adopt these views, then we shall have proved that we are
unworthy of the heritage our forefathers left us; and our country will
go down in ruin.
The people that do harm in the end are not the wrong-doers whom
all execrate; they are the men who do not do quite as much wrong,
but who are applauded instead of being execrated. The career of
Benedict Arnold has done us no harm as a nation because of the
universal horror it inspired. The men who have done us harm are
those who have advocated disunion, but have done it so that they
have been enabled to keep their political position; who have
advocated repudiation of debts, or other financial dishonesty, but
have kept their standing in the community; who preach the doctrines
of anarchy, but refrain from action that will bring them within the pale
of the law; for these men lead thousands astray by the fact that they
go unpunished or even rewarded for their misdeeds.
It is unhappily true that we inherit the evil as well as the good done
by those who have gone before us, and in the one case as in the
other the influence extends far beyond the mere material effects.
The foes of order harm quite as much by example as by what they
actually accomplish. So it is with the equally dangerous criminals of
the wealthy classes. The conscienceless stock speculator who
acquires wealth by swindling his fellows, by debauching judges and
corrupting legislatures, and who ends his days with the reputation of
being among the richest men in America, exerts over the minds of
the rising generation an influence worse than that of the average
murderer or bandit, because his career is even more dazzling in its
success, and even more dangerous in its effects upon the
community. Any one who reads the essays of Charles Francis
Adams and Henry Adams, entitled “A Chapter of Erie,” and “The
Gold Conspiracy in New York,” will read about the doings of men
whose influence for evil upon the community is more potent than that
of any band of anarchists or train robbers.
There are other members of our mercantile community who, being
perfectly honest themselves, nevertheless do almost as much
damage as the dishonest. The professional labor agitator, with all his
reckless incendiarism of speech, can do no more harm than the
narrow, hard, selfish merchant or manufacturer who deliberately sets
himself to keep the laborers he employs in a condition of
dependence which will render them helpless to combine against him;
and every such merchant or manufacturer who rises to sufficient
eminence leaves the record of his name and deeds as a legacy of
evil to all who come after him.
But of course the worst foes of America are the foes to that orderly
liberty without which our Republic must speedily perish. The reckless
labor agitator who arouses the mob to riot and bloodshed is in the
last analysis the most dangerous of the workingman’s enemies. This
man is a real peril; and so is his sympathizer, the legislator, who to
catch votes denounces the judiciary and the military because they
put down mobs. We Americans have, on the whole, a right to be
optimists; but it is mere folly to blind ourselves to the fact that there
are some black clouds on the horizon of our future.
During the summer of 1894, every American capable of thinking
must at times have pondered very gravely over certain features of
the national character which were brought into unpleasant
prominence by the course of events. The demagogue, in all his
forms, is as characteristic an evil of a free society as the courtier is of
a despotism; and the attitude of many of our public men at the time
of the great strike in July, 1894, was such as to call down on their
heads the hearty condemnation of every American who wishes well
to his country. It would be difficult to overestimate the damage done
by the example and action of a man like Governor Altgeld of Illinois.
Whether he is honest or not in his beliefs is not of the slightest
consequence. He is as emphatically the foe of decent government
as Tweed himself, and is capable of doing far more damage than
Tweed. The Governor, who began his career by pardoning
anarchists, and whose most noteworthy feat since was his bitter and
undignified, but fortunately futile, campaign against the election of
the upright judge who sentenced the anarchists, is the foe of every
true American and is the foe particularly of every honest
workingman. With such a man it was to be expected that he should
in time of civic commotion act as the foe of the law-abiding and the
friend of the lawless classes, and endeavor, in company with the
lowest and most abandoned office-seeking politicians, to prevent
proper measures being taken to prevent riot and to punish the
rioters. Had it not been for the admirable action of the Federal
Government, Chicago would have seen a repetition of what occurred
during the Paris Commune, while Illinois would have been torn by a
fierce social war; and for all the horrible waste of life that this would
have entailed Governor Altgeld would have been primarily
responsible. It was a most fortunate thing that the action at
Washington was so quick and so emphatic. Senator Davis of
Minnesota set the key of patriotism at the time when men were still
puzzled and hesitated. The President and Attorney-General Olney
acted with equal wisdom and courage, and the danger was averted.
The completeness of the victory of the Federal authorities,
representing the cause of law and order, has been perhaps one
reason why it was so soon forgotten; and now not a few shortsighted
people need to be reminded that when we were on the brink of an
almost terrific explosion the governor of Illinois did his best to work to
this country a measure of harm as great as any ever planned by
Benedict Arnold, and that we were saved by the resolute action of
the Federal judiciary and of the regular army. Moreover, Governor
Altgeld, though pre-eminent, did not stand alone on his unenviable
prominence. Governor Waite of Colorado stood with him. Most of the
Populist governors of the Western States, and the Republican
governor of California and the Democratic governor of North Dakota,
shared the shame with him; and it makes no difference whether in
catering to riotous mobs they paid heed to their own timidity and
weakness, or to that spirit of blatant demagogism which, more than
any other, jeopardizes the existence of free institutions. On the other
hand, the action of the then Governor of Ohio, Mr. McKinley, entitled
him to the gratitude of all good citizens.
Every true American, every man who thinks, and who if the
occasion comes is ready to act, may do well to ponder upon the evil
wrought by the lawlessness of the disorderly classes when once they
are able to elect their own chiefs to power. If the Government
generally got into the hands of men such as Altgeld, the Republic
would go to pieces in a year; and it would be right that it should go to
pieces, for the election of such men shows that the people electing
them are unfit to be entrusted with self-government.
There are, however, plenty of wrong-doers besides those who
commit the overt act. Too much cannot be said against the men of
wealth who sacrifice everything to getting wealth. There is not in the
world a more ignoble character than the mere money-getting
American, insensible to every duty, regardless of every principle,
bent only on amassing a fortune, and putting his fortune only to the
basest uses—whether these uses be to speculate in stocks and
wreck railroads himself, or to allow his son to lead a life of foolish
and expensive idleness and gross debauchery, or to purchase some
scoundrel of high social position, foreign or native, for his daughter.
Such a man is only the more dangerous if he occasionally does
some deed like founding a college or endowing a church, which
makes those good people who are also foolish forget his real iniquity.
These men are equally careless of the workingmen, whom they
oppress, and of the state, whose existence they imperil. There are
not very many of them, but there is a very great number of men who
approach more or less closely to the type, and, just in so far as they
do so approach, they are curses to the country. The man who is
content to let politics go from bad to worse, jesting at the corruption
of politicians, the man who is content to see the maladministration of
justice without an immediate and resolute effort to reform it, is
shirking his duty and is preparing the way for infinite woe in the
future. Hard, brutal indifference to the right, and an equally brutal
shortsightedness as to the inevitable results of corruption and
injustice, are baleful beyond measure; and yet they are characteristic
of a great many Americans who think themselves perfectly
respectable, and who are considered thriving, prosperous men by
their easy-going fellow-citizens.
Another class, merging into this, and only less dangerous, is that
of the men whose ideals are purely material. These are the men who
are willing to go for good government when they think it will pay, but
who measure everything by the shop-till, the people who are unable
to appreciate any quality that is not a mercantile commodity, who do
not understand that a poet may do far more for a country than the
owner of a nail factory, who do not realize that no amount of
commercial prosperity can supply the lack of the heroic virtues, or
can in itself solve the terrible social problems which all the civilized
world is now facing. The mere materialist is, above all things, short-
sighted. In a recent article Mr. Edward Atkinson casually mentioned
that the regular army could now render the country no “effective or
useful service.” Two months before this sapient remark was printed
the regular army had saved Chicago from the fate of Paris in 1870
and had prevented a terrible social war in the West. At the end of
this article Mr. Atkinson indulged in a curious rhapsody against the
navy, denouncing its existence and being especially wrought up, not
because war-vessels take life, but because they “destroy
commerce.” To men of a certain kind, trade and property are far
more sacred than life or honor, of far more consequence than the
great thoughts and lofty emotions, which alone make a nation
mighty. They believe, with a faith almost touching in its utter
feebleness, that “the Angel of Peace, draped in a garment of
untaxed calico,” has given her final message to men when she has
implored them to devote all their energies to producing
oleomargarine at a quarter of a cent less a firkin, or to importing
woollens for a fraction less than they can be made at home. These
solemn prattlers strive after an ideal in which they shall happily unite
the imagination of a green-grocer with the heart of a Bengalee
baboo. They are utterly incapable of feeling one thrill of generous
emotion, or the slightest throb of that pulse which gives to the world
statesmen, patriots, warriors, and poets, and which makes a nation
other than a cumberer of the world’s surface. In the concluding page
of his article Mr. Atkinson, complacently advancing his panacea, his
quack cure-all, says that “all evil powers of the world will go down
before” a policy of “reciprocity of trade without obstruction”! Fatuity
can go no farther.
No Populist who wishes a currency based on corn and cotton
stands in more urgent need of applied common sense than does the
man who believes that the adoption of any policy; no matter what, in
reference to our foreign commerce, will cut that tangled knot of social
well-being and misery at which the fingers of the London free-trader
clutch as helplessly as those of the Berlin protectionist. Such a man
represents individually an almost imponderable element in the work
and thought of the community; but in the aggregate he stands for a
real danger, because he stands for a feeling evident of late years
among many respectable people. The people who pride themselves
upon having a purely commercial ideal are apparently unaware that
such an ideal is as essentially mean and sordid as any in the world,
and that no bandit community of the Middle Ages can have led a
more unlovely life than would be the life of men to whom trade and
manufactures were everything, and to whom such words as national
honor and glory, as courage and daring, and loyalty and
unselfishness, had become meaningless. The merely material, the
merely commercial ideal, the ideal of the men “whose fatherland is
the till,” is in its very essence debasing and lowering. It is as true
now as ever it was that no man and no nation shall live by bread
alone. Thrift and industry are indispensable virtues; but they are not
all-sufficient. We must base our appeals for civic and national
betterment on nobler grounds than those of mere business
expediency.
We have examples enough and to spare that tend to evil;
nevertheless, for our good fortune, the men who have most
impressed themselves upon the thought of the nation have left
behind them careers the influence of which must tell for good. The
unscrupulous speculator who rises to enormous wealth by swindling
his neighbor; the capitalist who oppresses the workingman; the
agitator who wrongs the workingman yet more deeply by trying to
teach him to rely not upon himself, but partly upon the charity of
individuals or of the state and partly upon mob violence; the man in
public life who is a demagogue or corrupt, and the newspaper writer
who fails to attack him because of his corruption, or who
slanderously assails him when he is honest; the political leader who,
cursed by some obliquity of moral or of mental vision, seeks to
produce sectional or social strife—all these, though important in their
day, have hitherto failed to leave any lasting impress upon the life of
the nation. The men who have profoundly influenced the growth of
our national character have been in most cases precisely those men
whose influence was for the best and was strongly felt as
antagonistic to the worst tendency of the age. The great writers, who
have written in prose or verse, have done much for us. The great
orators whose burning words on behalf of liberty, of union, of honest
government, have rung through our legislative halls, have done even
more. Most of all has been done by the men who have spoken to us
through deeds and not words, or whose words have gathered their
especial charm and significance because they came from men who
did speak in deeds. A nation’s greatness lies in its possibility of
achievement in the present, and nothing helps it more than the
consciousness of achievement in the past.
FOOTNOTES:
[2] The Forum, February, 1895.
II
TRUE AMERICANISM[3]