Details

    • Type: Improvement
    • Status: Open
    • Priority: Major - P3
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: planned but not scheduled
    • Component/s: Build
    • Labels:
      None
    • Environment:
      Debian Squeeze, 2.6.32-5-kirkwood, Sheevaplug, ARMv5

      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.

      1. armdoubles.diff
        4 kB
        Jani Monoses
      2. mongi.diff
        2 kB
        Jani Monoses
      3. mongoarm.diff
        8 kB
        Jani Monoses

        Issue Links

          Activity

          Hide
          trusktr Joe Pea added a comment -

          I'm not too familiar with docker. Would I install docker and run that command from inside Android Linux?

          Show
          trusktr Joe Pea added a comment - I'm not too familiar with docker. Would I install docker and run that command from inside Android Linux?
          Hide
          dan@littlegenius.io Daniel Rosenberg added a comment -

          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:

          • Software dockerised and platform independent-
          • Docker
          • Hardware / OS

          In our case, I understand that MongoDB could be dockerised and therefore run on any docker compliant platform.
          Is my understanding correct ?

          Show
          dan@littlegenius.io Daniel Rosenberg added a comment - 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: Software dockerised and platform independent- Docker Hardware / OS In our case, I understand that MongoDB could be dockerised and therefore run on any docker compliant platform. Is my understanding correct ?
          Hide
          maestro_alubia Fabian Köster added a comment -

          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.

          [1] https://en.wikipedia.org/wiki/Hardware_virtualization

          Show
          maestro_alubia Fabian Köster added a comment - 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. [1] https://en.wikipedia.org/wiki/Hardware_virtualization
          Hide
          acm Andrew Morrow added a comment -

          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.

          Show
          acm Andrew Morrow added a comment - 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.
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

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

          Message: SERVER-1811 Re-enable aarch64 support
          Branch: master
          https://github.com/mongodb/mongo/commit/9a94318cf5ea17ecc49d303409aa379aef204b5b

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@mongodb.com'} Message: SERVER-1811 Re-enable aarch64 support Branch: master https://github.com/mongodb/mongo/commit/9a94318cf5ea17ecc49d303409aa379aef204b5b

            Dates

            • Created:
              Updated:
              Days since reply:
              5 days ago
              Date of 1st Reply: