-
Notifications
You must be signed in to change notification settings - Fork 1.7k
(DOCSP-2738): Updated MMAP caution and stable packages table. #3403
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please don't use the icon. Leave as |checkmark|
effeadd
to
c59f2d8
Compare
@kay-kim : Fixed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this needs another pass, especially around big/little endianness and the architecture support.
MMAPv1 is not supported on big-endian architectures such as s390x. | ||
MongoDB returns an error if you set MMAPv1 as the | ||
storage engine on a big-endian system. | ||
MMAPv1 is unsupported on big-endian and certain bi-endian |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ppc64le is specifically little-endian, not bi-endian. s390x appears to be big endian as well. Structuring things this way makes it seem like s390x and PowerPC is bi-endian. Saying bi-endian implies we wouldn't support an OS built for Big Endian. As I understand it, the Power8 processors support either big or little endian, but not both at the same time.
Suggestion: "MMAPv1 is not supported on any big-endian architecture. MMAPv1 also does not support PowerPC." Unless we have a definitive list of other bi-endian or little-endian architectures we don't support, 'certain' casts too wide a net.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Made some revisions. Made it clear that ppc64le is bi-endian. Bi-endian does mean either/or and not both.
MMAPv1 is unsupported on big-endian and certain bi-endian | ||
architectures. This includes the IBM z/Architecture (``s390x``) and | ||
PowerPC (``ppc64le``) platforms. MongoDB returns an error if you | ||
set MMAPv1 as the storage engine on ``s390x`` and ``ppc64le`` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does MongoDB return for all the other big-endian architectures? This should still be generic.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Which other architectures can you install this on? None, to my understanding. I don't feel right getting into platforms we don't support just as CYA.
|
||
* - Product | ||
- x86_64/amd64 | ||
- x86_64 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why was amd64 removed? Did we drop support for it? I don't see that indicated in the source ticket. Our documentation still lists amd64 as a supported arch.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because it is a synonym: https://en.wikipedia.org/wiki/X86-64
- s390x | ||
- POWER8 (little endian) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same question - why was POWER8 removed? as far as I can tell, ppc64le was introduced with POWER8. It's feasible users will recognize one over the other.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One is the chipset, the other is the os compatibility. If we say POWER8, we should switch the others to Intel/AMD, zSeries and ARM. I'd leave this be. We use ppc64le in many other places, including the filenames of the binaries.
- s390x | ||
- POWER8 (little endian) | ||
- ARMv8-A | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggest + -> and later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed. Fixed.
Note that the entire mmapv1 section is only valid for master. There is |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@rkumar-mongo : Updated and back to you.
|
||
* - Product | ||
- x86_64/amd64 | ||
- x86_64 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because it is a synonym: https://en.wikipedia.org/wiki/X86-64
MMAPv1 is unsupported on big-endian and certain bi-endian | ||
architectures. This includes the IBM z/Architecture (``s390x``) and | ||
PowerPC (``ppc64le``) platforms. MongoDB returns an error if you | ||
set MMAPv1 as the storage engine on ``s390x`` and ``ppc64le`` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Which other architectures can you install this on? None, to my understanding. I don't feel right getting into platforms we don't support just as CYA.
MMAPv1 is not supported on big-endian architectures such as s390x. | ||
MongoDB returns an error if you set MMAPv1 as the | ||
storage engine on a big-endian system. | ||
MMAPv1 is unsupported on big-endian and certain bi-endian |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Made some revisions. Made it clear that ppc64le is bi-endian. Bi-endian does mean either/or and not both.
- s390x | ||
- POWER8 (little endian) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One is the chipset, the other is the os compatibility. If we say POWER8, we should switch the others to Intel/AMD, zSeries and ARM. I'd leave this be. We use ppc64le in many other places, including the filenames of the binaries.
- s390x | ||
- POWER8 (little endian) | ||
- ARMv8-A | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed. Fixed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few more things to tighten up. I'd also like someone from the Platforms (?) team to make sure we're clear on this.
storage engine on a big-endian system. | ||
MMAPv1 is unsupported on big-endian architectures like the IBM | ||
z/Architecture (``s390x``) and certain bi-endian architectures like | ||
the PowerPC (``ppc64le``) platform. MongoDB returns an error if you |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should keep this second section generic as well. Otherwise it implies MongoDB does not return errors for any other big-endian architecture, even if MMAPv1 isn't supported.
"MongoDB returns an error when starting a {{mongod}} using MMAPv1 on an unsupported architecture."
z/Architecture (``s390x``) and certain bi-endian architectures like | ||
the PowerPC (``ppc64le``) platform. MongoDB returns an error if you | ||
set ``MMAPv1`` as the storage engine for either the ``s390x`` or | ||
``ppc64le`` platforms. MMAPv1 was deprecated in MongoDB 4.0. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I realised that this include is also brought in to /core/mmapv1. Having this note here is kind of redundant as that page has a big deprecation notice at the top. I think it's OK to remove it. There shouldn't be any surprises w.r.t. MMAPv1 at this point.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed.
MongoDB returns an error if you set MMAPv1 as the | ||
storage engine on a big-endian system. | ||
MMAPv1 is unsupported on big-endian architectures like the IBM | ||
z/Architecture (``s390x``) and certain bi-endian architectures like |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this ultimately begs the question of what other bi-endian or little-endian archs we throw errors on (vs archs we simply don't test against for official support). If it's only ppc64le that we throw errors for, we should just state that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed but forgot to push.
abd3af9
to
cddbf80
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Back to you, @rkumar-mongo
MongoDB returns an error if you set MMAPv1 as the | ||
storage engine on a big-endian system. | ||
MMAPv1 is unsupported on big-endian architectures like the IBM | ||
z/Architecture (``s390x``) and certain bi-endian architectures like |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed but forgot to push.
z/Architecture (``s390x``) and certain bi-endian architectures like | ||
the PowerPC (``ppc64le``) platform. MongoDB returns an error if you | ||
set ``MMAPv1`` as the storage engine for either the ``s390x`` or | ||
``ppc64le`` platforms. MMAPv1 was deprecated in MongoDB 4.0. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed.
- ARMv8-A | ||
|
||
* - MongoDB 3.4 | ||
* - MongoDB Community (3.4+) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[NP] this reverted to +. Change to "3.4 and later"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM mod a few nits. Please pass to platforms to confirm we're clear here.
@acmorrow : Finally got you access to this repo. Can you have a look at this change? The staged versions are noted in the first comment. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This LGTM for the part about MMAPv1 with a suggestion.
MMAPv1 is not supported on big-endian architectures such as s390x. | ||
MongoDB returns an error if you set MMAPv1 as the | ||
storage engine on a big-endian system. | ||
:doc:`MMAPv1 </core/mmapv1>` is unsupported on all big-endian |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rather than trying to state where it isn't supported, why not just state that it is only supported on Intel x86 processors?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For instance, you don't state here that it isn't supported on ARM64. The actual logic that determines whether mmapv1 is here:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
MMAP changes LGTM.
merged in by hand to avoid some merge conflicts: b01adfc |
@rkumar-mongo : This updates the warning at the bottom of this section and updates the table in this section. Links have been checked.