Skip to content
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

Windows support #67

Open
ghost opened this issue Sep 8, 2016 · 4 comments
Open

Windows support #67

ghost opened this issue Sep 8, 2016 · 4 comments

Comments

@ghost
Copy link

ghost commented Sep 8, 2016

Hello,

are there any plans for Windows support? I have tried to compile with VS 2015, but there are some linux specific includes, like fcntl.h, sys/types.h. Apart from that Windows will need mmap port.

@areese
Copy link

areese commented Sep 8, 2016

I don't see this working on windows due to the use of robust futexes, and mmap acts differently on windows.
:)

However, it has been a really long time since I've looked at the apis on windows.

@steve-carney
Copy link

The locking was originally designed to be pluggable.  We had the original ylock that was replaced with linux pthread locking.  It should be possible to create a Windows plugin, but I wouldn't expect it to be easy.
mmap implementations can also be a tricky point in how they treat map size rounding, and the page mapping interaction with (linux) remap_file_pages.
Steve

On Thursday, September 8, 2016 8:39 AM, Allen Reese <notifications@github.com> wrote:

I don't see this working on windows due to the use of robust futexes, and mmap acts differently on windows.
:)However, it has been a really long time since I've looked at the apis on windows.—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@ghost
Copy link
Author

ghost commented Sep 8, 2016

@areese @steve-carney Thank you for your insights,guys :) Seems like i will have to move to linux platform, like 3/4 libraries which support on-disk datastore won´t compile or doesn´t work well on Windows. I have tried LMDB, but it didn´t perform very well.

@timrc-git
Copy link

@brano543 The original version of MDBM that came from Larry McVoy (many years ago) did support Win32, but it has been changed much since then. Thought I still had a copy, but couldn't find it.
There are ports of mmap (i.e. https://github.com/witwall/mman-win32), but there will definitely still be some issues.
As Steve mentioned, no robust locks, so if a process dies/exits holding a lock, you have to do messy manual cleanup. And certain features would have to be disabled (e.g. "windowed mode" because of remap_file_pages).

You might try out the new Ubuntu-in-userland mode for Win10 that MS just released, with the offending options disabled in Makefile.base. But I don't know if it will work. It sounds like there are still a number of issues (including pthreads problems).

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

No branches or pull requests

3 participants