[SERVER-1811] ARM support Created: 19/Sep/10 Updated: 11/Nov/19 Resolved: 23/Aug/16 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Build |
| Affects Version/s: | None |
| Fix Version/s: | 3.3.11 |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | Jonne Hass | Assignee: | Brian McCarthy |
| Resolution: | Done | Votes: | 93 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Debian Squeeze, 2.6.32-5-kirkwood, Sheevaplug, ARMv5 |
||
| Attachments: |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Issue Links: |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sprint: | Build 17 (07/15/16), Build 18 (08/05/16), Build 2016-08-26 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Participants: |
AJ ONeal, Andrew Morrow, Andy Schwerin, artisan kloschi, Brian Hutchinson, Brian McCarthy, D'Heure Ben, Daniel Rosenberg, Daniel Ward, dmytty, Dwight Merriman, Eliot Horowitz, Eric Milkie, Fabian Köster, Fredrik Svantesson, Githook User, Glenn Byron, HLFH, Ivan Kostyuk, Jani Monoses, janis, Joe Pea, Jonathan Baldwin, Jonne Hass, joshg, Karim Lalani, Kev, Matthew R Chase, Matt Thompson, Mauricio S Otta, Nipun Batra, Olivier, Pawel Sledzikowski [X], Per Ola Ingvarsson, Philippe May, Phill Pafford, plustek, re pat, Richard Kimber, Sergii Puliaiev [X], soywiz, Thomas Krause, Timothy Turner, Tony DEBOSCHERE, Wilson Júnior, Yigit Sapli, Yuri Trukhin
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Description |
|
Since the upcoming social network Diaspora* uses mongodb as backend it would be nice to have it running on little home servers such as the Sheevaplug. As such servers are often based on ARM-architecture mongodb needs support for this. |
| Comments |
| Comment by Andrew Morrow (Inactive) [ 09/Aug/18 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
fredrik-svantesson - If that is something you would like to see provided, would you mind opening a new ticket explicitly requesting it? This ticket is closed, and from a workflow perspective it is easier for us to evaluate and track such a request with an open ticket. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Fredrik Svantesson [ 09/Aug/18 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Are there any plans to provide up-to-date ARM binaries for Debian 9 as well? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Brian McCarthy [ 23/Aug/16 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MongoDB is pleased to announce the 64-bit ARM development release for both its Community and Enterprise offerings. This encompasses the core server components including the shell, mongod and mongos processes, and the server tools. ARM support will apply for Ubuntu 16.04 64-bit on ARMv8 or newer. Please note that only the WiredTiger storage engine is supported for the core server. MMAPv1 will not be supported on ARM. The community edition of the binaries are now available on our downloads page for the latest 3.3.11 release. For customers requiring comprehensive support, advanced security features, and certifications, the Enterprise Evaluation Edition is available here Official ARM support will arrive with the MongoDB 3.4 GA. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Githook User [ 28/Apr/16 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Author: {u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@mongodb.com'}Message: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Andrew Morrow (Inactive) [ 20/Jan/16 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hi All - Yes, there has been some progress on Aarch64, along with several other general portability improvements. That work is ongoing and incomplete, and is only available on the master branch, which is not suitable for production (the master branch is currently the source for the 3.3 development releases, which will eventually become the stable 3.4 release). Note that Aarch64 support is experimental, not currently slated to officially land in 3.4, and is not currently being actively developed or tested. However, you are welcome to experiment with it and we hope that you will report your findings. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Fabian Köster [ 20/Jan/16 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Docker performs only container virtualization, meaning all docker containers are running on the Linux kernel of the host system, just isolated using Linux cgroups. So if your host system is ARM-based it can only run ARM-based containers or generally speaking: Docker can only run containers build for the same architecture as the host system. So Docker (and other container virtualization systems) do not help with this issue. What you need is full hardware virtualization [1]. A popular software of this category is QEMU which can for example emulate a x86 system on an ARM-based Linux. It should be able to run on Android too. But be aware that this full virtualization is very expensive in terms of resources and adds a lot of overhead to the software running inside of it. So you probably won't get the performance from MongoDB you would expect, especially on relatively low-end processors like the ones in smartphones. The only real solution is to add native ARM v8 support to MongoDB itself. More and more servers out there are using ARM architecture, so this is quite inevitable. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Rosenberg [ 20/Jan/16 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Me too. My question was more for Mongodb dev team. But it looks feasible. Docker is basically a light weight container, which enable software to run software which has been packaged as docker regardless of the underlying hardware. This is similar in concept to virtualization but is more effective. If I understand correctly, you have basically 3 layers:
In our case, I understand that MongoDB could be dockerised and therefore run on any docker compliant platform. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Joe Pea [ 20/Jan/16 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I'm not too familiar with docker. Would I install docker and run that command from inside Android Linux? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Rosenberg [ 20/Jan/16 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I wonder if docker can give an alternative to run MongoDB on ARM v7 (32 bit) and ARM v8 (Aarch64). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Joe Pea [ 20/Jan/16 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Any progress on this? I'd really like to get Meteor running on my Nexus 6P Android phone (AArch64). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Andrew Morrow (Inactive) [ 03/Sep/15 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hi dan@littlegenius.io - Please note that official support for ARM v7 is unlikely. The MMAPv1 storage engine is limited to ~1GB of journaled data on 32-bit systems, and the WiredTiger storage engine is 64-bit only. Effectively, this means that any future ARM port will only target Aarch64. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Rosenberg [ 03/Sep/15 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
With the strong trend of ARM microserver in the cloud space (see ovh, scaleway, HP, datacentred,...) with low TCO, support of ARM v7 and v8 is very welcome. +10. Really looking forward to it. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Tony DEBOSCHERE [ 17/Jul/15 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Thanks ! Looking forward to it | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Richard Kimber [ 16/Jul/15 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Thanks @Andrew, that really good news! | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Andrew Morrow (Inactive) [ 16/Jul/15 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hi All - Earlier this week, a major roadblock for portability to non-x86 platforms was resolved. For some time, we have been stuck using an old version of the V8 Javascript interpreter because newer V8 versions removed critical memory management facilities that we depended on to constrain resource utilization during server side Javascript execution. While newer versions of V8 had added ARM support, the version on which we were pinned did not have those changes. However, on Tuesday, we committed experimental support for building with SpiderMonkey. SpiderMonkey both provides the resource management facilities that we require, and we anticipate, though have not yet confirmed, that it will not represent a barrier to portability like old V8 engine did. The next development release, 3.1.6, will contain the new SpiderMonkey interpreter as an opt-in, however, our initial integration will only have build information encoded for how to target x86. If you are interested in trying to build with SpiderMonkey on other platforms, please reach out to the development team on mongodb-dev and we can provide guidance on how to configure SpiderMonkey on those platforms, or for any other portability issues. To build with the new interpreter, invoke scons with the --js-engine=mozjs flag. Please note that currently we only officially target, test, and release for x86, and we are aware of latent endian, aliasing, and alignment issues in the codebase in general, and in the storage engines in particular. These issues may or may not adversely affect ports to other processors, depending on their endianness and sensitivity to alignment. We are working to resolve these issues, however fixing them is not an explicit release goal for the upcoming 3.2 stable. Additionally, there are likely to be issues with the build system, which has not been well tested on non-x86 systems. For examples of some of these types of issues, please see | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Tony DEBOSCHERE [ 15/Jul/15 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Same goes for me. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Sergii Puliaiev [X] [ 14/Jul/15 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I would like to have the support of not only Raspberry - but some NAS servers as well - for example Netgear ReadyNAS 104. It would be nice to have mongoDB as well. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Glenn Byron [ 06/Jul/15 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
It has been nearly a year now. Any word on when we will be able to run MongoDB on a Raspberry PI without jumping through hopes. With all the Internet of Things talk I'm surprised this has not become a higher priority. A Mean stack on a Raspberry PI seems like a great solution. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Andrew Morrow (Inactive) [ 04/Aug/14 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hi All - Here is a quick update on the status of ARM support. There are a number of projects under way, but a significant amount of work remains:
Until we have completed the above projects, ARM will remain unsupported. However, we are interested in offering MongoDB on ARM, and progress is being made on all of the above projects. Thanks, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Phill Pafford [ 04/Aug/14 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
would also like a Debian solution as well, thanks! | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Ivan Kostyuk [ 02/Aug/14 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I'm checking for same, trying to build Mongo on Raspberry Pi B+ equipped with ARMv6. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Phill Pafford [ 29/Jul/14 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
How can we get this implemented? There is a growing need for this | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Eric Milkie [ 02/Apr/14 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Olivier, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Olivier [ 02/Apr/14 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Looks like this port is in standby, last activity was 3 weeks ago and | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by D'Heure Ben [ 01/Apr/14 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hi guys ... Someone here could help me ? Thank you with advance | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Pawel Sledzikowski [X] [ 21/Jan/14 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@Matt Thompson, Many thanks for your binary package of MongoDB for arm7l architecture. I'm confirming it appears to be working for me although I haven't done any reasonable testing yet (at least it starts correctly). Hardware: MK908II with PicUntu 4.5 on board. On the other hand, I tried to compile your fork from a scratch (source) but no dice. Same thing with other Mongo forks for ARM architecture: https://github.com/skrabban/mongo-nonx86 and https://github.com/RickP/mongopi (although they're working perfectly fine for RaspberryPi hardware - I have tested it). Error: Glad to see working MongoDB on ARM processor. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Matthew R Chase [ 20/Nov/13 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
It's way past time to support ARM. get on the ball already. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Yigit Sapli [ 24/Oct/13 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Has anyone tried building and running on Odroids, specifically on odroid-u2's? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Ward [ 15/Oct/13 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
This is definitely something I'd like to see introduced. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by HLFH [ 20/Jul/13 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Why do you use MongoDB if they don't have ARM support ? Boycott | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Yuri Trukhin [ 07/May/13 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
very need arm version, works in raspberry pi | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by plustek [ 15/Apr/13 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@Matt Thompson, when cross compiling the MongoDB 2.4.1 with V8 for armv7-a cortex-a9, I have encountered following problem: Assembler Message: have you encountered any similar issue? Rob | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Matt Thompson [ 08/Apr/13 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I've successfully patched MongoDB 2.4.1 with V8 for armv7l (Cortex A15) on a Chromebook running Ubuntu 13.04. I have not done extensive testing nor checked the correctness of the quick patches to the platform specific atomic operations. git clone -b v2.4.1 https://github.com/wtfuzz/mongo-arm A binary package is available from: https://s3.amazonaws.com/wtfuzz/mongo-arm/mongodb-linux-armv7l-2.4.1.tgz | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Nipun Batra [ 03/Dec/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I ran out of space while building MongoDB https://github.com/skrabban/mongo-nonx86 on Plug Computer (Ionics Stratus), which has only 512 MB flash. Can i build it on some other system specifying target as ARM for Plug Computer and then just transfer that to the Plug Computer? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Timothy Turner [ 19/Aug/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I was able to to get mongo v2.1.1 installed on the Raspberry Pi Using the help listed here form soywiz. I am working on getting a more stable version installed on the pi v2.0.7. I have been working with Arch Linux Arm. The issues with 2.0.7 have been with boost. Also, I attempted to install v2.2.0 however there was to much inline asm to covert from x86 to arm. I don't know enough about assembly to convert for different architecture types. For ARMv5 in Arch Linux Arm with boost 1.5.0 and mongodb v2.1.1 it was a matter of converting all instances if UTC_TIME to UTC_TIME_ for boost and adding another line of code in to atomic_int.h for asm memory barrier for AtomicUInt::SET function. Tim | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Timothy Turner [ 01/Aug/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
So, has Mongodb 2.x been successfully installed on ARMv5? In my case I am using Raspberry Pi. I added the patch to atomic_int.h and have passed that error however it failed at another point. I am using ArchLinuxArm and I don't mind switching to debian if that is working. Thanks. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Mauricio S Otta [ 14/Jun/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
include me wanting these with my 4 pogo plugs and ArchLinux ARM | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Kev [ 12/Jun/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
You may want to add the raspberry pi to the environment. Also the debian guys seem to have a working port. How about e.g. ArchLinuxArm? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Per Ola Ingvarsson [ 17/Apr/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@Jonathan Baldwin | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Jonathan Baldwin [ 16/Apr/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Does the "mongo-nonx86" project on github actually compile and run on ARM chipsets? I have a plug server with Debian on it that I need to run Mongo on...will it work if I pull v1.8 and compile directly onto the plug? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Eric Milkie [ 11/Apr/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
As a rule, we only backport as necessary to fix bugs. Since mongo ARM is experimental, using a development version should be no detriment. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Jani Monoses [ 11/Apr/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Would it make sense to backport the 3 git commits that fix ARM support to the 2.0 branch? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Jani Monoses [ 06/Apr/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
current master should build and run on armv7/linux at least. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Jani Monoses [ 04/Apr/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Patch updated against current master, where the atomic counters issue is solved now. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Jani Monoses [ 04/Apr/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Brian, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Per Ola Ingvarsson [ 04/Apr/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@Brian Hutchinson git clone https://github.com/skrabban/mongo-nonx86 +v1.8 It is version 1.8-someting, but is reported to work. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Brian Hutchinson [ 03/Apr/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
OK, I gave up on my idea to cross compile MongoDB for ARM. Sounds like most are native building it so I setup a BeagleBoard xM with headless Ubuntu and have all the required packages installed to start building mongo. Which repo should I clone to have the best success of seeing something run on the ARM? I don't care at this point if it is ARMv5 or ARMv7, I just want to see something run. Thanks, Brian | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Per Ola Ingvarsson [ 03/Apr/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Here is a patch to properly detect fetch and add in scons:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Jani Monoses [ 30/Mar/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
BTW, are the pthread splinlocks better than the ones using gcc atomics, as they seem to be picked with higher prio? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Jani Monoses [ 30/Mar/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Using this unpolished patch I got the smoketests passing on ARMv7/Ubuntu 1) Intel asm code in spinlocks implementation: do the glibs and gcc atomics not generate optimal code in this case so that the extra pause is needed? Worst case this can be ifdeffed out under _X86_ 2)Alignment traps on ARM when accessing doubles: a lot of ugly code to use packed struct instead of direct doubles. I did not even attempt to figure out what a cleaner solution should be, the mongo devs surely have suggestions. 3) The counters which if atomic ints are also generating alignment traps on ARM. There should be a cleaner solution as mentioned here This patch is against the current master branch (2.1) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Andy Schwerin [ 28/Mar/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
For the time being, Mongo on the ARM should be considered unsupported and experimental. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Brian Hutchinson [ 28/Mar/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
So are you saying that Mongo will run OK compiled for ARMv5 but not ARMv7? The Cortex A8 is binary compatible with both so while not optimal, running with ARMv5 is better than nothing! Thanks, Brian | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by soywiz [ 12/Mar/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I'm not sure why is this happening, but it spits the "unsupported compiler or platform" on tonido-plug arch linux even when it has GCC 4.6.2. I have tried and it has the __sync_fetch_and_add and __sync_add_and_fetch macros. So maybe it could be replaced to: ------- And about the previous patch, this is the right one:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by soywiz [ 12/Mar/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
(Not tested yet). But a patch for the atomic increment could be something like this:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by soywiz [ 12/Mar/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
This could be useful: On my TonidoPlug: [root@TonidoPlug ~]# gcc -dM -E - < /dev/null | grep ARM | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Jani Monoses [ 01/Mar/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
With this patch the BSON tests called on starting either mongo or mongod pass. They SIGBUS otherwise on ARMv7/Ubuntu due to unaligned access to floating point values. The explicit signed char fixes another crash later on - char is signed by default on ARM. I still need to see why the smoketests fail. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by AJ ONeal [ 01/Mar/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I would be willing to send a raspberry pi to you for testing if you need the hardware. I think raspberry pi will very quickly become the most popular of all the dev boards (unless it's a total flop). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Brian Hutchinson [ 23/Feb/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Well I think this is interesting .... of TI's BeagleBoard variant, there are almost 60K boards floating around now (ARM Cortex A8) and the new BeagleBone (also Cortex A8) is already up to 20K! This doesn't include Panda, Raspberry Pi (the first 10K batch will be released in a week or two) and all the other nice ARM boards out there that could be running MongoDB and exposing it in the embedded space | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Eliot Horowitz (Inactive) [ 23/Feb/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Its currently not officially supported. Some bi-endian systems work today, but we don't have good test beds for those. If people know of configs that are interesting, we would be interested in adding some more build machines. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Brian Hutchinson [ 23/Feb/12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hi, I'd like to understand the issues of building MongoDB for ARM. More specifically .... ARM Cortex A8 with gcc 4.6. I guess I don't fully understand the status of MongoDB on ARM. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Per Ola Ingvarsson [ 15/Sep/11 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@Dwight Merriman Atomic int is not a problem, it is just the #ifdef that doesn't work. See mongo-nonx86 for a SCons based test. Changing the test is enough to compile, but differences in char signedness will cause other problems when running. The ones I have found have been fixed in mongo-nonx86. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Dwight Merriman [ 12/Sep/11 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
if atomic int is a problem just use a mutex instead. i will try to add that to AtomicUInt class sometime but a lot of other work in queue unfortunately! something like (pseudocode): mongo::mutex atomicMutex("atomic"); void inc() { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Wilson Júnior [ 23/Aug/11 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
someone managed to compile for the android? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Karim Lalani [ 20/Aug/11 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@Per Ola Ingvarsson: It works. Tested on Debian Squeeze on Pogoplug which has armv5tel | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Per Ola Ingvarsson [ 13/Aug/11 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
It would be nice if someone with real ARM hardware could try this out: git clone https://github.com/skrabban/mongo-nonx86 +v1.8 Should compile out of the box on debian/armel and detect that armv5 needs special care with the alignment of data. Passes the tests in ./test on qemu, but qemu doesn't implement the alignment traps. Otoh, it also runs on sparc wich is very picky in that aspect. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Dwight Merriman [ 08/Jul/11 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
couple notes:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Eliot Horowitz (Inactive) [ 25/Jun/11 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Would be great if someone could try on a bi-endian arm box?= | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by dmytty [ 22/Jun/11 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Arm v7+ is bi-endian. Should MongoDB be distributed only for newer Arm versions? Some notes: Little-endian operating systems: Big-endian operating systems: Her's some compiler option notes: Highlights of the compiler option include the following flags: Conclusion: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by janis [ 01/Apr/11 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I second that. i would like to run it on qnap or synology | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by dmytty [ 13/Mar/11 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
A comment was made elsewhere that mangodb should consider involvement with Linaro ( http://www.linario.org/ ). I agree strongly with this suggestion. Mangodb could well become the 'go-to' solution for embedded devices - particularly in the industrial area. Linaro is the strongly supported team (70+ now, soon 100 full time developers) which is creating a software ecosystem for the ARM market. All of the Linaro software will run on devices such as the Pandaboard with up to date OS's such as Ubuntu 11.04 (currently supporting 10.10). Projects such as Linario show the rapid growth in the ARM market. After doing a survey of NoSQL, I was very disappointed to see that MangoDB was not supported on devices such as the pandaboard. In every other respect MangoDB seems perfect - in particular, it has the ad-hoc query support that Redis does not have. I had assumed that C++ mean no problems porting to ARM, and that it was already available, but.... The potential for NoSQL in the embedded space is huge. Matched with Pandaboard + Python, MangoDB would allow for some crazy fast prototyping for low cost (<$200), compact (<mini-ITX), low-power (<5 watt) devices. How about NoSQL = NoDesktop (Not Only Desktop)? Hope this happens soon... | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Thomas Krause [ 08/Mar/11 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Here is a quick status report of my current findings for compiling it under ARM (just in case someone else want's to give it a try as well): I was able to set up a Debian wheezy installation with qemu emulating a versatile developing board using the instructions at http://geekboy.fr/geek/installing-debian-squeeze-arm-with-qemu-on-a-mac/ I tried compilation on the emulated machine and installed all necessary packages, but since it was incredible slow I now use a cross compile environment based on the default Ubuntu ARM GCC 4.4 cross compiler and scratchbox2 (I had to apply http://maemo.gitorious.org/scratchbox2/scratchbox2/commit/e1ab7c2b9e2be2fc831ea11a3c7a45b71df14028 otherwise the Ubuntu ARM cross compiler does not work properly with scratchbox2, I also copied everything from /usr and /lib from the emulated machine into the cross compile root). Debian Wheezy has GCC 4.4 which claims support for builtin atomic functions under ARM in their changelog. Unfortunately both compilers (the Debian native one and the Ubuntu cross) did not define _GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 even if they should have the corresponding system functions. I bypassed this by specifying 'scons -cxx="-D_GCC_HAVE_SYNC_COMPARE_AND_SWAP_4" mongod' as build command. Currently the mongo-daemon is compiling in my scratchbox2-enviroment and I hope I can report some positive results later. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Philippe May [ 07/Mar/11 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Thomas, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Thomas Krause [ 07/Mar/11 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@repat Did you compile with 4.4 or a lower version? The #elif defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) [...] code in bson/util/atomic_int.h should actually compile if using gcc 4.4 without any change to the elif macro. The only ARM-powered device I have currently access to is my Android-Smartphone. Maybe I can give it a try. ARM is said to be little endian per default so it might work. If there is any more assembler code in mongodb I should be aware of? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Philippe May [ 04/Mar/11 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I second that. ARM devices are getting very popular everywhere. I'm planning to switch a Python project (Hanji: http://hanji.info/) targeting mobile devices to mongo where it would fit perfectly well, but this is a real stopper and if it's not moving i'll have to drop this idea. So really no one can investigate this issue? I'm using Maemo/N900, Android and Meego are targets too. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Eliot Horowitz (Inactive) [ 25/Oct/10 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Making that compile is a very small pieces of the work to be done. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by re pat [ 25/Oct/10 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The way I understood the sourcecode you could either use ARM ASM Code(for i386 etc) OR(#else if) the bit of code which is only available in gcc >=4.4.0. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Eliot Horowitz (Inactive) [ 16/Oct/10 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Unfortunately compiling is only a small portion of the issue. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by joshg [ 16/Oct/10 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
re pat: excellent work documenting all that! I see there's some steps you've taken to trick the compiler, I must give this a try myself. I too, however, have outlined steps I've taken in an attempt to install Disapora on my N900! Link: http://talk.maemo.org/showthread.php?t=63889 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by re pat [ 16/Oct/10 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I'd like to second that as well. I had a look at the code and got it compiled until it comes to atomic integers: http://repat.de/2010/10/diaspora-on-dockstar-with-debian-lenny/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by joshg [ 16/Oct/10 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I too can express great interest in getting this feature added. I've tried installing mongoDB on my armv7 powered N900, would be great to get it working. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by artisan kloschi [ 12/Oct/10 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I second this request. Would be great to use mongoDB on all that arm based mini plattforms, as sheeva, dockstar .. whatever kirkwood |