Skip to content

Conversation

corentinbaron
Copy link
Contributor

I have built and run 2.6 successfully on PowerPC64 in little endian mode. Some work will be required on big endian to rebase from our 2.4.9 (did you take look at our code in branch r2.4.9-ppc?)

Regards.

@amschwerin
Copy link
Contributor

This seems fine. We can merge it after we branch for 2.6

However, unless the IBM Power architecture uses the "processor consistency" as its consistency model, there are almost certainly concurrency errors if you executed this code on a multicore PowerPC system. This is because the MongoDB code base assumes processor consistency somewhat freely, and any porting effort to other architectures will require addressing that behavior.

Similarly, does the Power architecture support unaligned loads and stores? If not, the BSON library probably will bus error pretty much immediately without some work.

Can you provide a good reference for the Power architecture, including instruction set, memory consistency model, alignment requirements, etc? Perhaps the architecture manuals are available online, as they are for Intel and AMD?

I took a look at the 2.4.9-ppc branch from the ibmsoe/mongo repository. It looks like a correct handling of byteswapping. I'd want to chat w/ you and @acmorrow a little before embarking on the byteswapping work on master branch, to make sure we've chosen the right place to put the abstractions.

@kangas
Copy link
Contributor

kangas commented Mar 7, 2014

@corentinbaron, have you signed our contributor's agreement? We will need this before we can merge your patch. http://www.mongodb.com/contributor

@corentinbaron
Copy link
Contributor Author

@andy10gen the unit tests ran with no error on my machine. We just have yet to rebase the byteswapping on this basis. You can find the technical documentation on the power architecture on https://www.power.org/

@kangas There are discussions ongoing between you and IBM and I'm not sure I can sign this agreement on behalf of IBM (I'm even pretty sure I can't right now).

@corentinbaron
Copy link
Contributor Author

@kangas I just had the go from IBM's legal department on this, so we can get started officially (I just signed the agreement).
@andy10gen I'd be glad to chat with you and @acmorrow so we can work on porting version 2.6 on little endian systems. I'd also have a few questions regarding aligned buffers as linux distros on power usually have a 64kB page size instead of the 4kB found elsewhere, but I guess it'll be more of a performance issue as mongodb works perfectly as is on power.

@kangas
Copy link
Contributor

kangas commented Mar 27, 2014

@corentinbaron, thank you for signing! I will merge as soon as we're unfrozen on master.

@kangas kangas changed the title Added PPC64 as it works as is in little endian SERVER-13452 Added PPC64 as it works as is in little endian Apr 1, 2014
@corentinbaron
Copy link
Contributor Author

You're welcome. Please let me know when you'll be able to discuss byteswapping.

@kangas
Copy link
Contributor

kangas commented Apr 4, 2014

Merged to master in 388524c. Thanks!

@kangas kangas closed this Apr 4, 2014
jiongle1 pushed a commit to scantist-ossops-m2/mongo that referenced this pull request Mar 30, 2024
In summary: we don't copy hot-backup files; when we load the hot backup
metadata file during WiredTiger startup, if there are entries in the
metadata file without a valid checkpoint, we assume they're bulk-loaded
files and re-create them with no contents.

Implement Alex's idea: don't walk the metadata file in the hot-backup
code looking for 'file:' objects, instead use __wt_meta_btree_apply()
plus a callback instead.

Clarify __wt_conn_btree_apply() and __wt_meta_btree_apply(): we talk
about EBUSY errors, but all we can handle are bulk-loaded files.
Rename __wt_conn_btree_apply_single() to __wt_conn_btree_apply_bulk(),
and change it to only operate on bulk-loaded files.

Increase the size of the metadata backup line we can handle from 512B
to 5KB; this should be a dynamic value, but I'm not going to do it right
now.

Reference: mongodb#570, mongodb#653.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants