[SERVER-1625] Make core server work on big-endian (Sparc) machines Created: 12/Aug/10  Updated: 06/Dec/22  Resolved: 08/Nov/19

Status: Closed
Project: Core Server
Component/s: Internal Code
Affects Version/s: None
Fix Version/s: None

Type: New Feature Priority: Major - P3
Reporter: Kenneth Lee Assignee: [DO NOT ASSIGN] Backlog - Server Development Platform Team (SDP) (Inactive)
Resolution: Won't Fix Votes: 37
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Solaris SPARC


Issue Links:
Depends
depends on WT-2402 Misaligned structure accesses lead to... Closed
depends on SERVER-14852 Create endian- and alignment-agnostic... Closed
depends on SERVER-14853 Port networking library to AAE read/w... Closed
Related
Assigned Teams:
Server Development Platform
Sprint: Platforms 13 (04/22/16)
Participants:

 Description   

Representing the masses who are in SPARC-heavy environments but still want to use MongoDB. Please enable big-endian support in the core server



 Comments   
Comment by Andrew Morrow (Inactive) [ 08/Nov/19 ]

At this time we do not intend to add support for SPARC to MongoDB. Demand for SPARC doesn't seem sufficient to justify the required infrastructure for us to build, test, and release on that architecture. If you have concerns about this decision, please feel free to reach out on this ticket with your thoughts. Note that we do support big-endian systems per our support for s390x (zSeries).

Comment by Vitus Piroutz [X] [ 09/Jun/16 ]

Hi, also would love to see this running on a client environment.
Thx for the thoughts.

Vitus Piroutz
Vienna, Austria

Comment by Githook User [ 05/May/16 ]

Author:

{u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@mongodb.com'}

Message: SERVER-1625 Add missing dependency edge for Solaris builds
Branch: master
https://github.com/mongodb/mongo/commit/9f91d422fc826d08b8eca8d323276c22d63ba436

Comment by Githook User [ 05/May/16 ]

Author:

{u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@mongodb.com'}

Message: SERVER-1625 Add missing cases for other 64-bit and 32-bit targets
Branch: master
https://github.com/mongodb/mongo/commit/60a146fa271f3dce9ed7b6cf62328c9068ad0ec6

Comment by Nicola Baraldo [ 28/Apr/16 ]

Hi, I have also a strong interest in SPARC support for a big project I am working.

Thank you for your support!

Nicola Baraldo
Iconsulting (Italy, BO)

Comment by Dave McGuire [ 18/Apr/16 ]

Several of my customers have a strong interest in SPARC support.

Thank you for your efforts on this.

-Dave


Dave McGuire, AK4HZ
New Kensington, PA

Comment by Andrew Morrow (Inactive) [ 18/Apr/16 ]

The master branch of MongoDB, which will become MongoDB 3.4, has now been ported to big-endian systems. There are important qualifications:

  • The MMAPv1 storage engine is not supported on big-endian systems. Only the WiredTiger storage engine is supported. The MMAPv1 system is only supported on x86_64 based systems.
  • There is still no support for SPARC as we do not yet support strictly aligned targets. Other big-endian targets, in particular s390x, will work.
  • The master branch is a development branch and binaries built from it are not suitable for production use. Big-endian support will be production ready in the MongoDB 3.4 release series, but will only be supported on s390x.

This ticket has been open for a very long time, and has a long comment history, and many watchers. We would appreciate your feedback on the above qualifications, however, we are inclined to close the ticket as fixed. If big-endian support for MMAPv1 or strict alignment support (aka SPARC) are still of interest, please reply and let us know, or, better, open new tickets requesting those specific features.

Comment by Ramon Fernandez Marina [ 07/Jan/16 ]

We're working on adding support for big-endian platforms to MongoDB. The current target date for availability is currently late 2016.

Supporting strict-alignment platforms like SPARC is not in scope for this work though, but it should pave the ground for adding support for SPARC in the future – either internally or from community contributions. If anyone is interested in exploring this last option please move the discussion to the mongodb-dev group.

Regards,
Ramón.

Comment by Carolina Herrera [ 06/Jan/16 ]

Hi, do you have any update about this? I'm trying to run MongoDB in SunOS 5.10 sparc

Comment by James Tomkins [ 30/Jul/13 ]

We have a large investment in IBM z/Architecture and a big-endian version of MongoDB would massively increase the number of projects which we could consider MongoDB for. I think even having a committed future date would be enormously helpful in achieving organisational commitment to Mongo.

Comment by Steven Sims [ 30/Jul/13 ]

We have used MongoDB for development on Linux/x86_64, but some of our customers mandate Solaris/sparc for servers, so looks like we need to switch to a different db server - a pity as MongoDB works so well with our apps.

Comment by Jason Klueber [ 28/Jun/13 ]

I'm in the same boat here. We're an AIX heavy shop, and being able to run Mongodb for our multi-application audit log system would be a lifesaver.

Comment by Dave McGuire [ 09/Feb/13 ]

JB, I'm in a similar situation. Mongodb is perfect for my company's project, but the lack of big-endian functionality is a show stopper for us. 10gen, please consider bumping this up on the priority list a bit. It would make a big positive impact on my organization.

Comment by JB Laviron [ 02/Jan/13 ]

Embedding mongodb into our architecture, our software is going to be installed and used by many customers (with appropriate support license from 10gen for each of them. i.e: $$ for 10gen).
We need to get mongodb supporting big endian (Solaris SPARC, Hp-Ux, Aix, ...) asap and would appreciate any committed plan from 10gen. Thanks !

Comment by Xinfeng Liu [ 30/Oct/12 ]

Is it possible to extend BSON format and the wire protocol to allow Big Endian? That is: For core server on big endian system everything is big endian ; And have a flag to indicate endian-ness in wired messages. Although this will break the current BSON standard and on-disk format, and may also need a handshake in wire protocol, but it means less code changes in core server and more efficient by avoiding byte swapping.

I have an experiment fork for Solaris Sparc with Solaris Studio compiler, currently everything is big-endian, and by running "test" all tests passed. https://github.com/xinfengliu/mongo/tree/v2.2
Of course, this fork is NOT called a valid PORT because the fork is not compatible.

SPARC cannot handle misaligned access in hardware, so the memory access in mongod has to be compiled in byte-unit (-xmemalign=1s) rather than word-unit (otherwise bus error and core dump would occur), this is inefficient and increases the binary size a lot. In addition, snappy (used by mongodb) also favorite little endian and assume misaligned access is cheap. I'm still new to mongodb, I don't know how big performance impacts for it, may need more time to evaluate.

Comment by Eric Milkie [ 08/Aug/12 ]

On CPUs with bi-endian support, you need to run a little-endian OS in order to run the MongoDB server.

Comment by Stewart [ 08/Aug/12 ]

I understand that MongoDB needs to run on little endian CPUS.

What about those CPUs that can run both (bi-endian)? Such as SPARC64?

Comment by Stewart [ 08/Aug/12 ]

Yes, we would purchase the support if we get it on Sparc

Comment by Per Ola Ingvarsson [ 04/Nov/11 ]

https://github.com/skrabban/mongo-nonx86 should work (works ok on FreeBSD/sparc64). It is getting old though. 10gen hasn't shown very much interest to get it integrated.

Comment by Iwan Aucamp [ 03/Nov/11 ]

http://www.df.lth.se/~pi/mongo_big_endian.html

Comment by Iwan Aucamp [ 03/Nov/11 ]

http://www.df.lth.se/~pi/mongo_big_endian.html

Comment by Iwan Aucamp [ 03/Nov/11 ]

Any news on this yet ?

Comment by Iwan Aucamp [ 17/Jul/11 ]

Hi Elliot - the problem is this option cannot be controlled from within solaris as far as I'm aware - you could probably compile your own OS (e.g. opensolaris, freebsd, linux) in little-endian mode - but with the official Solaris 10 you can only use it in big-endian mode on SPARC systems.

Comment by T.J. Yang [ 17/Jul/11 ]

Hi, Eliot
I can arrange a personal sparc test machine(Sun Blade100) at home for you to test. Are you interested ?
If yes, I will enable ssh login and prepare gcc or Sun Studio compilers for you to test.
Let me know.

Comment by Eliot Horowitz (Inactive) [ 17/Jul/11 ]

According to this: http://en.wikipedia.org/wiki/SPARC sparcv9 can access data in little endian.
I don't have a machine to test on, but seems possible.

Comment by Iwan Aucamp [ 16/Jul/11 ]

Solaris on SPARCv9 - I have checked and seen nothing to indicate it would be possible to run mongo in little-endian mode.

Comment by Eliot Horowitz (Inactive) [ 16/Jul/11 ]

@iwan What platform are you using? Is it bi-endian capable?

Comment by Iwan Aucamp [ 16/Jul/11 ]

Is there a possibility of a commercial arrangement to speed this up ?

Comment by Klaus Lehner [ 22/Jun/11 ]

we have as application server:

SunOS 5.10
Model T5240, Ultra SPARC T2+ Eight Core

and as database server:

SunOS 5.10
Model M5000, SPARC64 VII Quad Core

Comment by T.J. Yang [ 21/Jun/11 ]

Posting Soalris Endian URL here as a reminder to try it out when I have time.
http://developers.sun.com/solaris/articles/support_for_x86.html#2

Comment by Eliot Horowitz (Inactive) [ 21/Jun/11 ]

That might be bi-endian.
You can test by looking at gcc options and seeing if there is a flag that flips.
If so - should be easy to compile yourself.

Comment by T.J. Yang [ 21/Jun/11 ]

In my case, I am interested to run mongo on sun4v SPARC Enterprise T5120 and old sun4u on Solaris 10.

Comment by Eliot Horowitz (Inactive) [ 21/Jun/11 ]

There are no imminent plans.
What chip/os are you looking for?
Some can do emulation.

Comment by Klaus Lehner [ 20/Jun/11 ]

Eliot, are there any plans when to implement that feature request? We'd need mongo on sparc for a big customer project and would need to know if this was scheduled for the next releases, otherwise we would need to go for another technlogy (which we do not really want). What's your estimate to implement that?

Comment by T.J. Yang [ 10/May/11 ]

Please port mongo to Sparc Solaris.

Generated at Thu Feb 08 02:57:34 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.