web api 2 for mvc developers pdf : Merge pdf online SDK software API .net winforms azure sharepoint mongodb_%20the%20definitive%20guide%20-%20kristina%20chodorow_140121-part1766

Mon Jan 30 11:09:18 [rsSyncbuild index { _id: 1 }
Mon Jan 30 11:09:18 [rsSyncbuild index done 0 records 0 secs
Mon Jan 30 11:09:18 [rsSyncreplSet initial sync drop all databases
Mon Jan 30 11:09:18 [rsSyncdropAllDatabasesExceptLocal 1
Note that any existing data will be dropped at this point. Only do an initial sync if
you do not want the data in your data directory or have moved it elsewhere, as
mongod’s first action is to delete it all.
2. Cloning is the initial data copy of all records from the sync source. This is usually
the most time-consuming part of the process:
Mon Jan 30 11:09:18 [rsSyncreplSet initial sync clone all databases
Mon Jan 30 11:09:18 [rsSyncreplSet initial sync cloning db: db1
Mon Jan 30 11:09:18 [FileAllocatorallocating new datafile /data/db/db1.ns
filling with zeroes...
3. Then the first oplog application occurs, which applies any operations that happened
during the clone. This may have to reclone certain documents that were moved
and, therefore, missed by the cloner:
Mon Jan 30 15:38:36 [rsSyncoplog sync 1 of 3
Mon Jan 30 15:38:36 [rsBackgroundSyncreplSet syncing to: server-1:27017
Mon Jan 30 15:38:37 [rsSyncNotifierreplset setting oplog notifier to 
Mon Jan 30 15:38:37 [repl writer worker 2replication update of non-mod
ts: Timestamp 1352215827000|17h: -5618036261007523082v: 2op: "u", 
ns: "db1.someColl", o2: { _id: ObjectId('50992a2a7852201e750012b7') }, 
o: { $set: { count.0: 2count.1: 0 } } }
Mon Jan 30 15:38:37 [repl writer worker 2replication info 
adding missing object
Mon Jan 30 15:38:37 [repl writer worker 2replication missing object
not found on source. presumably deleted later in oplog
This is roughly what the logs will look like if some documents had to be recloned.
Depending on the level of traffic and the types of operations that where happening
on the sync source, you may or may not have missing objects.
4. Then the second oplog application occurs, which applies operations that happened
during the first oplog application:
Mon Jan 30 15:39:41 [rsSyncoplog sync 2 of 3
This one generally passes without much fanfare. It is only distinct from the first
application in that there should no longer be anything to reclone.
5. At this point, the data should exactly match the data set as it existed at some point
on the primary so that the secondary can start building indexes. This can be quite
time-consuming if you have large collections or lots of indexes:
Mon Jan 30 15:39:43 [rsSyncreplSet initial sync building indexes
Mon Jan 30 15:39:43 [rsSyncreplSet initial sync cloning indexes for : db1
Mon Jan 30 15:39:43 [rsSyncbuild index db.allObjects { someColl: 1 }
Syncing | 189
Merge pdf online - Merge, append PDF files in, ASP.NET, MVC, Ajax, WinForms, WPF
Provide C# Demo Codes for Merging and Appending PDF Document
pdf merger; best pdf combiner
Merge pdf online - VB.NET PDF File Merge Library: Merge, append PDF files in, ASP.NET, MVC, Ajax, WinForms, WPF
VB.NET Guide and Sample Codes to Merge PDF Documents in .NET Project
pdf combine two pages into one; break a pdf into multiple files
Mon Jan 30 15:39:44 [rsSyncbuild index done.  scanned 209844 total records
1.96 secs
6. Then the final oplog application occurs; this final step is merely to prevent the
member from becoming a secondary while it is still far behind the sync source. It
applies all of the operations that happened while indexes were building:
Tue Nov  6 16:05:59 [rsSyncoplog sync 3 of 3
7. At this point, the member finishes the initial sync process and transitions to normal
syncing, which allows it to become a secondary:
Mon Jan 30 16:07:52 [rsSyncreplSet initial sync done
Mon Jan 30 16:07:52 [rsSyncreplSet syncing to: server-1:27017
Mon Jan 30 16:07:52 [rsSyncreplSet SECONDARY
The best way to track an initial sync’s progress is by watching the server’s log.
Doing an initial sync is very easy from an operator perspective: start up a mongod with
a clean data directory. However, it is often preferable to restore from backup instead, as
covered in Chapter 22. Restoring from backup is often faster than copying all of your
data through mongod.
Also, cloning can ruin the sync source’s working set. Many deployments end up with a
subset of their data that’s frequently accessed and always in memory (because the OS is
accessing it frequently). Performing an initial sync forces the member to page all of its
data into memory, evicting the frequently-used data. This can slow down a member
dramatically as requests that were being handled by data in RAM are suddenly forced
to go to disk. However, for small data sets and servers with some breathing room, initial
syncing is a good, easy option.
One of the most common issues people run into with initial sync is when step 2 (cloning)
or step 5 (building indexes) takes too long. In these cases, the new member can “fall off”
the end of sync source’s oplog: the new member gets so far behind the sync source that
it can no longer catch up because the sync source’s oplog has overwritten the data the
member would need to use to continue replicating.
There is no way to fix this other than attempting the initial sync at a less-busy time or
restoring from a backup. The initial sync cannot proceed if the member has fallen off
of the sync source’s oplog. The next section covers this in more depth.
Handling Staleness
If a secondary falls too far behind the actual operations being performed on the sync
source, the secondary will go stale. A stale secondary is unable to continue catch up
because every operation in the sync source’s oplog is too far ahead: it would be skipping
operations if it continued to sync. This could happen if the slave has had downtime, has
more writes than it can handle, or is too busy handling reads.
190 | Chapter 10: Components of a Replica Set
Online Merge PDF files. Best free online merge PDF tool.
Online Merge PDF, Multiple PDF files into one. Download Free Trial. Merge PDF, Multiple PDF files. Drag and drop your PDF or several files in the box above.
merge pdf; reader merge pdf
C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
C# convert PDF to Word, C# extract text from PDF, C# convert PDF to Jpeg, C# compress PDF, C# print PDF, C# merge PDF files, C# view PDF online, C# convert PDF
add pdf together; break pdf into multiple files
When a secondary goes stale, it will attempt to replicate from each member of the set
in turn to see if there’s anyone with a longer oplog that it can bootstrap from. If there is
no one with a long-enough oplog, replication on that member will halt and it will need
to be fully resynced (or restored from a more recent backup).
To avoid out-of-sync secondaries, it’s important to have a large oplog so that the primary
can store a long history of operations. A larger oplog will obviously use more disk space.
But in general this is a good trade-off to make because the disk space tends to be cheap
and little of the oplog is usually in use, and therefore it doesn’t take up much RAM. For
more information on sizing the oplog, see “Resizing the Oplog” on page 220.
Members need to know about the other members’ states: who’s primary, who they can
sync from, and who’s down. To keep an up-to-date view of the set a member sends out
heartbeat request to every other member of the set every two seconds. A heartbeat
request is a short message that checks everyone’s state.
One of the most important functions of heartbeats is to let the primary know if it can
reach a majority of the set. If a primary can no longer reach a majority of the servers, it
will demote itself and become a secondary.
Member States
Members also communicate what state they are in via heartbeats. We’ve already dis‐
cussed two states: primary and secondary. There are several other normal states that
you’ll often see members be in:
This is the state MongoDB goes into when you first start a member. It’s the state
when MongoDB is attempting to load a member’s replica set configuration. Once
the configuration has been loaded, it transitions to STARTUP2.
This state will last throughout the initial sync process but on a normal member, it
should only ever last a few seconds. It just forks off a couple of threads to handle
replication and elections and then transitions into the next state: RECOVERING.
This state means that the member is operating correctly but is not available for
reads. This state is a bit overloaded: you may see it in a variety of situations.
On startup, a member has to make a couple checks to make sure it’s in a valid state
before accepting reads; therefore, all members will go through recovering state
briefly on startup before becoming secondaries. A member can also go into
RECOVERING state during long-running operations such as compact or in re‐
Heartbeats | 191
VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
RasterEdge. PRODUCTS: ONLINE DEMOS: Online HTML5 Document Viewer; Online XDoc.PDF Demo▶: Convert Jpeg to PDF; Merge PDF Files; Split PDF Document; Remove
scan multiple pages into one pdf; reader create pdf multiple files
VB.NET PDF - Convert PDF Online with VB.NET HTML5 PDF Viewer
C# convert PDF to Word, C# extract text from PDF, C# convert PDF to Jpeg, C# compress PDF, C# print PDF, C# merge PDF files, C# view PDF online, C# convert PDF
c# pdf merge; reader combine pdf pages
sponse to the replSetMaintenance command (see “Using Maintenance Mode” on
page 213).
A member will also go into RECOVERING state if it has fallen too far behind the
other members to catch up. This is, generally, a failure state that requires resyncing
the member. The member does not go into an error state at this point because it
lives in hope that someone will come online with a long-enough oplog that it can
bootstrap itself back to non-staleness.
Arbiters have a special state and should always be in state ARBITER during normal
There are also a few states that indicate a problem with the system. These include:
If a member was up but then becomes unreachable. Note that a member reported
as “down” might, in fact, still be up, just unreachable due to network issues.
If a member has never been able to reach another member, it will not know what
state it’s in, so it will report it as unknown. This generally indicates that the unknown
member is down or that there are network problems between the two members.
This is the state of a member that has been removed from the set. If a removed
member is added back into the set, it will transition back into its “normal” state.
This state is used when a member is rolling back data, as described in “Rollbacks”
on page 193. At the end of the rollback process, a server will transition back into the
recovering state and then become a secondary.
Something uncorrectable has gone wrong and this member has given up trying to
function normally. You should take a look at the log to figure out what has caused
it to go into this state (grep for "replSet FATAL" to find the point where it went into
the FATAL state). You generally will have to shut down the server and resync it or
restore from backup once it’s in this state.
A member will seek election if it cannot reach a primary (and is itself eligible to become
primary). A member seeking election will send out a notice to all of the members it can
reach. These members may know of reasons that this member is an unsuitable primary:
it may be behind in replication or there may already be a primary that the member
192 | Chapter 10: Components of a Replica Set
VB.NET PDF - Annotate PDF Online with VB.NET HTML5 PDF Viewer
VB.NET PDF - Annotate PDF Online with VB.NET HTML5 PDF Viewer. Explanation about transparency. VB.NET HTML5 PDF Viewer: Annotate PDF Online. This
combine pdf files; best pdf merger
C# HTML5 PDF Viewer SDK to annotate PDF document online in C#.NET
C# PDF - Annotate PDF Online with C#.NET HTML5 PDF Viewer. Supported Functionalities transparency. C# HTML5 PDF Viewer: Annotate PDF Online. This
split pdf into multiple files; combine pdfs online
seeking election cannot reach. In these cases, the other members will not allow the
election to proceed.
Assuming that there is no reason to object, the other members will vote for the member
seeking election. If the member seeking election receives votes from a majority of the
set, the election was successful and will transition into primary state. If it did not receive
a majority if votes, it will remain a secondary and may try to become a primary again
later. A primary will remain primary until it cannot reach a majority of members, goes
down, is stepped down, or the set is reconfigured.
Assuming that the network is healthy and a majority of the servers are up, elections
should be fast. It will take a member up to two seconds to notice that a primary has gone
down (due to the heartbeats mentioned earlier) and it will immediately start an election,
which should only take a few milliseconds. However, the situation is often non-optimal:
an election may be triggered due to networking issues or overloaded servers responding
too slowly. In these cases, heartbeats will take up to 20 seconds to timeout. If, at that
point, the election results in a tie, everyone will have to wait 30 seconds to attempt
another election. Thus, if everything goes wrong, an election may take a few minutes.
The election process described in the previous section means that if a primary does a
write and goes down before the secondaries have a chance to replicate it, the next pri‐
mary elected may not have the write. For example, suppose we have two data centers,
one with the primary and a secondary, and the other with three secondaries, as shown
in Figure 10-2.
Figure 10-2. A possible two-data-center configuration
Suppose that there is a network partition between the two data centers, as shown in
Figure 10-3. The servers in the first data center are up to operation 126, but that data
center hasn’t yet replicated to the servers in the other data center.
Rollbacks | 193
C# HTML5 PDF Viewer SDK to convert and export PDF document to
C# convert PDF to Word, C# extract text from PDF, C# convert PDF to Jpeg, C# compress PDF, C# print PDF, C# merge PDF files, C# view PDF online, C# convert PDF
batch combine pdf; attach pdf to mail merge
VB.NET PDF - Create PDF Online with VB.NET HTML5 PDF Viewer
RasterEdge. PRODUCTS: ONLINE DEMOS: Online HTML5 Document Viewer; Online XDoc.PDF Demo▶: Convert Jpeg to PDF; Merge PDF Files; Split PDF Document; Remove
pdf combine pages; pdf combine files online
Figure 10-3. Replication across data centers can be slower than within a single data
The servers in the other data center can still reach a majority of the set (three out of five
servers). Thus, one of them may be elected primary. This new primary begins taking its
own writes, as shown in Figure 10-4.
Figure 10-4. Unreplicated writes won’t match writes on the other side of a network
When the network is repaired, the servers in the first data center will look for operation
126 to start syncing from the other servers but will not be able to find it. When this
happens, A and B will begin a process called rollback. Rollback is used to undo ops that
were not replicated before failover. The servers with 126 in their oplogs will look back
through the oplogs of the servers in the other data center for a common point. They’ll
find that operation 125 is the latest operation that matches. Figure 10-5 shows what the
oplogs would look like.
194 | Chapter 10: Components of a Replica Set
Figure 10-5. Two members with conflicting oplogs: A apparently crashed before repli‐
cating ops 126−128, so these operations are not present on B, which has more recent
operations. A will have to rollback these three operations before resuming syncing.
At this point, the server will go through the ops it has and write its version of each
document affected by those ops to a .bson file in a rollback directory of your data di‐
rectory. Thus, if (for example) operation 126 was an update, it will write the document
updated by 126 to collectionName.bson. Then it will copy the version of that document
from the current primary.
The following is a paste of the log entries generated from a typical rollback:
Fri Oct  7 06:30:35 [rsSyncreplSet syncing to: server-1
Fri Oct  7 06:30:35 [rsSyncreplSet our last op time written: Oct  7 
Fri Oct  7 06:30:35 [rsSyncreplset source's GTE: Oct  7 06:30:31:1
Fri Oct  7 06:30:35 [rsSyncreplSet rollback 0
Fri Oct  7 06:30:35 [rsSyncreplSet ROLLBACK
Fri Oct  7 06:30:35 [rsSyncreplSet rollback 1
Fri Oct  7 06:30:35 [rsSyncreplSet rollback 2 FindCommonPoint
Fri Oct  7 06:30:35 [rsSyncreplSet info rollback our last optime:   Oct  7 
Fri Oct  7 06:30:35 [rsSyncreplSet info rollback their last optime: Oct  7 
Fri Oct  7 06:30:35 [rsSyncreplSet info rollback diff in end of log times: 
-26 seconds
Fri Oct  7 06:30:35 [rsSyncreplSet rollback found matching events at Oct  7 
Fri Oct  7 06:30:35 [rsSyncreplSet rollback findcommonpoint scanned : 6
Fri Oct  7 06:30:35 [rsSyncreplSet replSet rollback 3 fixup
Fri Oct  7 06:30:35 [rsSyncreplSet rollback 3.5
Fri Oct  7 06:30:35 [rsSyncreplSet rollback 4 n:3
Fri Oct  7 06:30:35 [rsSyncreplSet minvalid=Oct  7 06:30:31 4e8ed4c7:2
Fri Oct  7 06:30:35 [rsSyncreplSet rollback 4.6
Fri Oct  7 06:30:35 [rsSyncreplSet rollback 4.7
Fri Oct  7 06:30:35 [rsSyncreplSet rollback 5 d:6 u:0
Fri Oct  7 06:30:35 [rsSyncreplSet rollback 6
Fri Oct  7 06:30:35 [rsSyncreplSet rollback 7
Fri Oct  7 06:30:35 [rsSyncreplSet rollback done
Fri Oct  7 06:30:35 [rsSyncreplSet RECOVERING
Fri Oct  7 06:30:36 [rsSyncreplSet syncing to: server-1
Fri Oct  7 06:30:36 [rsSyncreplSet SECONDARY
Rollbacks | 195
The server begins syncing from another member (server-1, in this case) and realizes that
it cannot find its latest operation on the sync source. At that point, it starts the rollback
process by going into rollback state ("replSet ROLLBACK").
At step 2, it finds the common point between the two oplogs, which was 26 seconds ago.
It then begins undoing the operations from the last 26 seconds from its oplog. Once the
rollback is complete, it transitions into recovering state and begins syncing normally
To apply operations that have been rolled back to the current primary, first use mongor
estore to load them into a temporary collection:
$ mongorestore --db stage --collection stuff \
> /data/db/rollback/important.stuff.2012-12-19T18-27-14.0.bson
Now you should examine the documents (using the shell) and compare them to the
current contents of the collection from whence they came. For example, if someone had
created a “normal” index on the rollback member and a unique index on current pri‐
mary, you’d want to make sure that there weren’t any duplicates in the rolled-back data
and resolve them if there were.
Once you have a version of the documents that you like in your staging collection, load
it into your main collection:
> staging.stuff.find().forEach(function(doc) {
...     prod.stuff.insert(doc);
... })
If you have any insert-only collections, you can directly load the rollback documents
into the collection. However, if you are doing updates on the collection you will need
to be more careful about how you merge rollback data.
One often-misused member configuration option is the number of votes each member
has. Manipulating the number of votes is almost always not what you want and causes
a lot of rollbacks (which is why it was not included in the list of member properties in
the last chapter). Do not change the number of votes unless you are prepared to deal
with regular rollbacks.
For more information on preventing rollbacks, see Chapter 11.
196 | Chapter 10: Components of a Replica Set
When Rollbacks Fail
In some cases, MongoDB decides that the rollback is too large to undertake. Rollback
can fail if there are more than 300 MB of data or about 30 minutes of operations to roll
back. In these cases, you must resync the node that is stuck in rollback.
The most common cause of this is when secondaries are lagging and the primary goes
down. If one of the secondaries becomes primary, it will be missing a lot of operations
from the old primary. The best way to make sure you don’t get a member stuck in rollback
is to keep your secondaries as up to date as possible.
Rollbacks | 197
Documents you may be interested
Documents you may be interested