Why is HarperDB written in Node.js?
Node.js provides a popular interface allowing new and experienced developers to get up to speed quickly. With a very large community Node.js has been adopted by many market leader domains allowing for the installation and proliferation of Node.js and packages. This creates integration points for places as small as micro-processing boards to enterprise level super computers and graphic processing units.
How is data stored in HarperDB?
Data is stored on disk in an attribute exploded model. See "What is an exploded model?"
How is HarperDB’s SQL and NoSQL capabilities different from other solutions?
Many solutions offer noSQL capability and separate processing for SQL such as in-memory transformation or multi-model support. HarperDB’s unique mechanism for storing each data attribute individually allows for performing noSQL and SQL operations in real-time on the stored data set.
What is an exploded model?
HarperDB takes each attribute of a database table object and creates a directory and file for the attribute and its corresponding value. For example the attribute eye color will be represented by a directory and the corresponding value “green” will be represented by a file with the value “green."
Does HarperDB support ACID transactions?
All transactions are granular down to the attribute allowing for extremely precise writes/updates. If one aspect of the write fails, HarperDB rolls back the transaction to the previous record state. All transactions are versioned allowing for precise rollback and auditing. All data is written directly to the file system allowing for data durability in a human readable format.
HarperDB is natively schema-less allowing for developers to dynamically add new data points on the fly with no administration. Our roadmap includes the option to create a structured schema on tables that need more control.
How does HarperDB ensure high availability and consistency?
Node.js clustering allows our developers to create highly available access to users data stores. We do this by utilizing file system journaling and a consistency check process to manage race conditions and unintended overwrites. HarperDB’s exploded data model allows for attribute specific roll backs allowing users to quickly correct mistakes.
What type of device should I run HarperDB on?
HarperDB is built to have a small footprint on scale as such it can run on micro-computers, like a Raspberry Pi, all the way up to a super computer. It it built with scalability and flexibility in mind and can grow with your IT eco-system.
What operating system should I use to run HarperDB?
HarperDB is built to run on any flavor of Linux or Mac.
Is HarperDB row or column oriented?
HarperDB can be considered column oriented, however, the exploded data model creates an interface that is free from either of these orientations. A user can search and update with columnar benefits and be as ACID as row oriented restrictions.
What coding languages can I use to work with HarperDB?
HarperDB has TCP, HTTP, JDBC, and ODBC protocols. Java, Node.js, PHP, .NET, C#, Ruby, and any other language that can interact with these protocols is supported.