RethinkDB For Windows |
Written by Kay Ewbank | |||
Tuesday, 16 February 2016 | |||
RethinkDB is finally available in a native Windows version to go alongside the Linux and Mac support. The developers say that this is one of the most frequent requests by RethinkDB users, and that porting RethinkDB to Windows took a year of intensive development, touching nearly every part of the database.
RethinkDB is an open source NoSQL JSON database designed for web apps. Its main differentiator is that you can tell it to continuously push updated query results to applications in real time, rather than having your app poll for changes. So far, there's a developer preview for Windows that the team hope users will test in the real world, saying in a blog post that: "You shouldn’t trust it with your data or use it in production environments yet. It’s also not fully optimized, so you might not get the same performance that you would from a stable release." From RethinkDB 2.3 release onwards, the plan is to provide official Windows builds for each version of RethinkDB alongside the binary packages for Linux and Mac OS X. Creating a Windows version took a lot of development time because RethinkDB makes extensive use of platform-specific APIs, and the developers decided that this would be true of the Windows version too, so it has full, native Windows support. As the blog puts it: "You won’t find any POSIX compatibility layers or other similar hacks–RethinkDB uses native Windows APIs on the Windows platform."
Key areas that "required considerable engineering effort" include threading, disk and network I/O, and the event loop. Asynchronous I/O is handled differently on Windows from Linux. On Linux, developers use epoll to get notifications that let them know when a descriptor is ready for reading or writing. On Windows, developers use I/O Completion Ports (IOCP). Asynchronous operations are queued and emit notifications when they succeed or fail. The team has manually added Windows-compatible code paths to handle the platform-specific I/O.
They also had to get the database to compile natively with Microsoft’s C++ compiler, and to make sure that all the third-party open source libraries used in the database build consistently on Windows as well as Linux and Mac OS X. Alongside the Windows version, there's a C# client library, and a simple ASP.NET chat demo with SignalR and the C# RethinkDB driver to show how to get started with RethinkDB in Visual Studio. SignalR is a framework for performing realtime updates in ASP.NET that uses WebSockets to bind a JavaScript frontend with an ASP.NET backend, providing an abstraction layer for RPC and event propagation.
More InformationRelated ArticlesAsterix DB – Big Data Management System To be informed about new articles on I Programmer, sign up for our weekly newsletter,subscribe to the RSS feed and follow us on, Twitter, Facebook, Google+ or Linkedin.
Comments
or email your comment to: comments@i-programmer.info |
|||
Last Updated ( Tuesday, 16 February 2016 ) |