Commit Graph

8080 Commits

Author SHA1 Message Date
Alvin Moore 21390c493a Merge branch 'release-6.2' of github.com:apple/foundationdb into release_6.2_merge
Resolved merge by keeping new test file from master branch: SampleNoSimAttrition.txt adding new constraint from Release branch about existing test file: SimpleExternalTest.txt

# Conflicts:
#	tests/CMakeLists.txt
2019-12-18 09:05:08 -08:00
Alex Miller d8cbd495af Fix another pop + spill/dq-pop interleaving issue
This fixes an issue introduced in the previous patch, where pop would
immediately set `poppedLocationNeedsUpdate`, but setting the popped
version was now delayed.  This means that we could:

1. Run the spill loop and persist all popped versions
2. Receive a pop, and set the poppedLocationNeedsUpdate flag
3. Run the dq-pop loop, and clear the poppedLocationNeedsUpdate flag

and now when we update the persistentPopped version again, we won't have
the flag set for dq-pop to know that it needs to scan the spilled data
again for the minLocation.

We could more carefully update the flag, but instead, I've just
converted it into a version that's kept in sync purely in the dq-pop
loop, to remove shared state between pop and the dq-pop loop.
2019-12-17 23:15:48 -08:00
Alex Miller b36062a509 DiskQueue should only pop based off of persisted popped tag versions
This commit is to fix a bug where popping a tag between
updatePersistentData and popDiskQueue can cause the TLog to recover to
an incorrect understanding of what data it has available.

The following series of events need to happen to trigger this bug:

    Tag 1:1 is popped to version 10
    updatePersistentData is run...
      updatePersistentPopped runs and we persistentData stores 1:1 as popped to 10
      A mutation is spilled for 1:1 at version 11 at location 1000
      A mutation is spilled for 1:1 at version 21 at location 5000
    updatePersistentData finishes and commits the btree changes
    Tag 1:1 is popped to version 20
    popDiskQueue runs
      The btree is read for spilled mutations with version >=20
      The minimum location required for the disk queue is found to be location 5000
      The disk queue is popped to location 5000

    The TLog crashes

    The worker restarts, and reloads the TLog files from disk
    restorePersistentPopped restores tag 1:1 as having been popped to version 10
    Parallel peeks are received for tag 1:1 starting at version 0
      The first peek is less than the popped version, so we respond with no data, and an end version of 10
      The second peek starts at version 10, which is greater than the popped version
      The btree is read for spilled mutations, and we find that there is a mutation at version 11 at location 1000
      Location 1000 is read in the DiskQueue

The resulting page read at Location 1000 was popped pre-crash, and thus
might either (a) be corrupt or (b) have an incorrect sequence number.

The fix to this is to force popDiskQueue/updatePoppedLocation to use the
popped version that was persisted to disk, and not the most recently
popped version for the given tag.

This bug doesn't manifest in simulation, because we don't have any code
that peeks at a lower version than what has been popped.
2019-12-17 23:02:37 -08:00
Alvin Moore dc01728b5b
Merge pull request #2466 from AlvinMooreSr/publish_cmake
CMake Configuration Modifications
2019-12-17 15:05:58 -08:00
Trevor Clinkenbeard c7aee1cf79 Update documentation/sphinx/source/mr-status-json-schemas.rst.inc
Co-Authored-By: A.J. Beamon <ajbeamon@users.noreply.github.com>
2019-12-17 11:56:08 -08:00
Trevor Clinkenbeard b4d43f0677 Update documentation/sphinx/source/mr-status-json-schemas.rst.inc
Co-Authored-By: A.J. Beamon <ajbeamon@users.noreply.github.com>
2019-12-17 11:55:55 -08:00
tclinken 96eb21055c Added comments for in_flight_bytes and in_queue_bytes in status documentation
This issue was pointed out at
https://forums.foundationdb.org/t/how-to-interpret-moving-data-parameters/1621
2019-12-17 11:55:42 -08:00
tclinken 44a7502384 Added comment on total_written_bytes in status documentation
This issue was pointed out at
https://forums.foundationdb.org/t/when-is-moving-data-total-written-bytes-reset/1625
2019-12-17 11:55:26 -08:00
tclinken 74ce5988d2 Added comments to status documentation
These comments consolidate some clarifications made at
https://forums.foundationdb.org/t/few-queries-on-status-json/684
2019-12-17 11:55:13 -08:00
Alvin Moore 1d260a873c Set the Windows installer name to that of the make build 2019-12-17 09:39:13 -08:00
A.J. Beamon a093021855 Fix priority time calculation. Track max priority busy rather than seconds squared. 2019-12-17 09:14:54 -08:00
Alvin Moore 28d626800d Allow Valgrind to be enabled via environmental variable 2019-12-17 07:12:26 -08:00
Alvin Moore 4d575b2cda Removed cache variable
Added status message to indicate what is buildinng
2019-12-17 00:10:06 -08:00
Jingyu Zhou 7debde6fda Some formatting changes, e.g., remove extra spaces 2019-12-16 15:55:51 -08:00
Jingyu Zhou a98b466f98 Add explanation of recovery version and copy data during recovery 2019-12-16 15:41:19 -08:00
Jingyu Zhou b5627a5c9d
Merge pull request #2468 from atn34/atn34/use-consistent-style
Use consistent "> 0" style for guarding memcpy
2019-12-16 15:21:54 -08:00
Alvin Moore d0f68ace4a Switched back to allowing only one RPM platform to be built at a time.
Allow the selection of el6 RPM creation to be made via environmental variable
2019-12-16 14:41:44 -08:00
Alvin Moore 3bbfa8a1ad Only include the git version within the rpm and deb name if defined
Removed platform el6 and el7 from package name
2019-12-16 14:40:40 -08:00
Alvin Moore 3da9d182b1 Switched to using environmental variable for enablement since TOUPPER did not produce expected results sometimes 2019-12-16 14:37:51 -08:00
Vishesh Yadav eee784fbdb doc: Reorder compare-and-clear documentation 2019-12-16 13:54:23 -08:00
Vishesh Yadav 274a73171c docs: Add counter clear example for CompareAndClear in dev guide 2019-12-16 13:54:05 -08:00
Vishesh Yadav 5c48a105c5 docs: Document CompareAndClear atomic op 2019-12-16 13:53:52 -08:00
Vishesh Yadav fd761396eb
Merge pull request #2435 from PierreZ/samples/python
Fix python sample using docker-compose (#2403)
2019-12-16 13:35:31 -08:00
sramamoorthy 34eff84756 address review comments 2019-12-16 13:31:43 -08:00
Meng Xu 4d027428df FastRestore:Test:Increase txn load to 2500txn per second
More transactions per second can create more data in a backup version,
this can help test if fast restore handles large memory allocation correctly.
2019-12-16 12:13:29 -08:00
Vishesh Yadav f30ded1fac godoc: How to check for non-existing keys from Go bindings 2019-12-16 11:25:18 -08:00
Andrew Noyes cc4e57f72c Use consistent "> 0" style for guarding memcpy 2019-12-16 08:40:35 -08:00
Alvin Moore 5080b8293a Added Windows required library for function GetProcessMemoryInfo 2019-12-16 08:09:10 -08:00
Alvin Moore bc339414f5 Add support for building el6 and el7 RPM packages by default using single cpack command 2019-12-16 00:13:17 -08:00
Alvin Moore 0c4c93a041 Ensured that the name of the packages within cmake remains the same as that within make 2019-12-16 00:11:52 -08:00
Alvin Moore 413cafe368 Modified compilation and package names to conform to existing compilation options and packaging names
Modifications to existing standards (even when wrong should be made outside of port to cmake)
2019-12-15 07:13:46 -08:00
Pierre Zemb d9d2012994
Add a Golang sample using docker-compose 2019-12-14 16:03:12 +01:00
Pierre Zemb be2b97a0e9
Fix python sample using docker-compose 2019-12-14 15:25:33 +01:00
Jingyu Zhou 5d1974539a
Merge pull request #2425 from xumengpanda/mengxu/doc-recovery-v2
Design doc: Recovery internals
2019-12-13 16:34:51 -08:00
Meng Xu a48bd841e4 Design doc:Recovery:Better define knownCommittedVersion
The definition of knownCommittedVersion is authored by Alex Miller;
The revision on which version of data SS should revert is based on
Jingyu Zhou's review comment.
2019-12-13 15:58:12 -08:00
Jingyu Zhou ded2a301e0
Merge pull request #2443 from xumengpanda/mengxu/fast-restore-fix-valgrind-PR
Performant restore [12/XX]: Code clean up
2019-12-13 14:35:20 -08:00
A.J. Beamon 952053ea9c
Merge pull request #2447 from atn34/atn34/disable-external-workload-ubsan
Disable SimpleExternalTest when building with USE_UBSAN=1
2019-12-13 14:11:52 -08:00
A.J. Beamon 48c0c3d67c
Merge pull request #2460 from apple/release-6.2
Release 6.2 Merge Into Master
2019-12-13 14:11:08 -08:00
Meng Xu 97030d9168 FastRestore:Revise and test SevFRMutationInfo
Enabled SevFRMutationInfo for valgrind test, no error found, and disable it again.
Revise debug trace message a bit.
2019-12-13 13:51:21 -08:00
A.J. Beamon 000f7ff2a0
Merge pull request #2457 from gauravvnera/doc_blitz_clear_range
DocBlitz : Clarify Documentation for clear_range API
2019-12-13 12:36:24 -08:00
Alvin Moore 5af941ce25
Merge pull request #2451 from atn34/atn34/add-ubsan
Include libubsan in the docker image
2019-12-13 12:02:35 -08:00
Alvin Moore 3fd637477d
Merge pull request #2459 from AlvinMooreSr/ninja_verbose
More Verbose Compilation Details
2019-12-13 12:02:07 -08:00
A.J. Beamon f277e39d4e
Merge pull request #2458 from gauravvnera/key-after
Add keyAfter method to Java bindings
2019-12-13 11:37:33 -08:00
gauravvnera c71f94f514 revert unintentional changed line 2019-12-14 00:28:08 +05:30
gauravvnera 83da581314 addressed review comments 2019-12-14 00:10:25 +05:30
gauravvnera 59c42360f7
Update documentation/sphinx/source/release-notes.rst
Review comments.

Co-Authored-By: A.J. Beamon <ajbeamon@users.noreply.github.com>
2019-12-13 23:52:57 +05:30
gauravvnera 741dbbc763 add release notes 2019-12-13 23:19:40 +05:30
Alvin Moore 645ad66b02 Added more verbose compilation statements when building via ninja to give more specific error details 2019-12-13 09:20:58 -08:00
gauravvnera f788ba5f85 Add keyAfter method to Java bindings 2019-12-13 19:25:43 +05:30
gauravvnera b734afb50f Clarify Documentation for clear_range 2019-12-13 09:22:36 +05:30