iBoxDB

Fast ACID Table Style Document NoSQL Application Database

1. iBoxDB NoSQL Database Document Database for JAVA C# Android ORM Database Mobile Database Transactional Thread Safe Multi-Threaded Base de datos Bases de La agilidad De base trato Rodeado de bases de Base de objetos Base de datos de documentos Datos móviles 2. Document Database embedded File NoSql ACID Transaction Graph Lightweight Smart Small JSON Database Java C# object-oriented embedded database document nosql Die Datenbank Die dokumente der Datenbank Datenbank Angelegenheiten Das dokument Store Embedded Datenbank Der agile 3. Embedded Database Fast Lightweight Database NoSQL Database Windows Linux OS X Windows Phone Android iPhone JavaScript Nashorn La base de données de transaction La base de données de documents Rapide 4. Java Simple NoSQL Database Professional Lightweight ORM Xamarin Unity3D Object Database JSP WEB HTML5 JavaScript CSharp X86 ARM Встроенную базу данных проворный файл базы данных Транзакция 5. Application Database SQL Agile Development Update Increment Linux NET Java JavaScript Mono Nashorn jjs Embedded Document NoSQL Database Comparison 6. C# NoSQL Embedded Document Database Comparison Android NoSQL Database Java NoSQL Embedded Document Database Comparison 7. Unity NoSQL Database Java Database Mono NET Database local lightweight database server self contained database nosql databases c# local database 8. local database server FREE Java MVCC ACID NoSQL Embedded Document Database Engine iBoxDB Android Windows Phone Mono Lightweight 9. FREE Java Android C# MVCC ACID NoSQL Embedded Document Database Engine Comparison 10. lightweight Database Xamarin Unity3D ACID Transaction NoSQL Database fast database local server C# Database 11. Java NET Mono in memory database NoSQL ASP dotNET Serverless Table Style Lightweight Java Database Key Value SQL Agile Development Update Increment Selecting Tracer Transaction Embedded Document Database 數據庫 敏捷開發 數據庫事物事務 嵌入式數據庫 文檔數據庫 對象數據庫 移動數據庫 12. C# Embeddable Database Java NoSQL Database ACID NoSQL File storage Solution NoSql Document versioning isolation Fast DB 数据库 敏捷开发 数据库事务 嵌入式数据库 文档数据库 对象数据库 移动数据库 13. Best nosql database Database Unity Game C# Java embedded nosql db Android Document Database MVCC Java Document Database データベース 敏捷開発 データベースの事務 取引 组み込み式のデータベース ドキュメントデータベース 対象のデータベース モバイルデータベース 14. Java embedded nosql database iBoxDB embedded nosql database net Transaction ACID C# Document Databases 민첩하다 개발 데이터베이스 내장 데이터베이스 15. ACID dotNET Document Database NoSQL Software Server-Free Schema-Less Java Embedded Database C# NET Embedded Database 16. best game database NET C# ACID NoSQL embedded object database powerful cross platform NoSQL database system SaaS IaaS PaaS small Java C# fast multithreaded engine and server with memory and disk tables transaction isolation NoSQL embedded database 17. in memory database software for real time and embedded applications embedded dotNET database engine has zero deployment costs NoSQL embedded database for NET Java C# Simple NoSQL Object Database.

Project Description

iBoxDB is a fast transactional table style document NoSQL Application Database, easily store, process objects and documents, traditional table with unstructured data, zero configuration, pure JAVA and .NET engines, no dependencies.

iBoxDB has a well designed interface with great performance and capability for agile development. You can create applications with database services embedded and deploy it on mobiles, desktops, servers, to persist your data from anywhere.

Dual Core Application Database
For   JAVA   .NET   Android   Mono   Unity3D   Xamarin   Nashorn   Linux   Windows Phone

Features

Examples

Each box is an ISOLATED data space (transaction-based)
  using(var box = db.Cube())
  {                            
     //select, insert, update, delete ...
     var result = box.Commit();
  }
  try(Box box = db.cube()){
     ...
     CommitResult r = box.commit();
  }
                    
Normal Object
 box.Bind("Member").Insert(
       new Member() {  
             ID=box.NewId(Member.IncTableID, 1) ,
             LoginName = "Andy",
             Password = Member.EncodePassowrd("123"),
             Tags = new string[]{ "Nice" , "Strong" }
        }
      );
  Member m = new Member();
  m.ID = box.newId(Member.IncTableID, 1);
  m.setName("Andy");
  m.setTags(new Object[] { "Nice", "Strong" });
  box.bind("Table").insert(m);
                    
Dynamic Object (document database)
  game["GameType"] = "ACT";
  box.Bind("Product").Insert(game);
  game.put("GameType", "ACT");
  box.bind("Table").insert(game);
                    
Key Value Style Query
  box.Bind("Table", 2L).Select<AClass>();
   //Composite Key
  box.Bind("Table2", 99, "ABC").Select<BClass>();
  box.bind("Table", ID).select(Member.class);
  //Composite Key
  box.bind("Table2",8, "MyID").select(Product.class);
                    
SQL Like
  //from TABLE where A>? & B<=? order by C limit 0,10
  box.Select<Member>("from Member where LoginName==?", "MyName");
  //from [table] where [condition] 
  //                    order by [field1] desc,[field2] limit [0,10]
  //[Condition:] == != < <= > >= & | ( )
  //[IFunction:] =[F1,F2,F3]
  box.select(Member.class, "from Member where Name==?", "MyName");
                    
Custom QueryFunction
  box.Select<Member>("from Member where [Tags]", new QueryArray("Value"));
Compatible with LINQ (.NET)
  from o in box.Select<Class>("from Class")
  where o.Text.Contains(text)
  select o;
Compatible with Stream (Java8)
  StreamSupport.stream(db.select("from Table").spliterator(), true)
  .collect(Collectors.groupingBy((l) -> l.get("GroupID"),
   Collectors.summingLong((l) -> (Long) l.get("Value"))));
Update Increment
Apply To Trigger Type Value From
AutoIncrement primary key insert number Table Max(ID)+1
UpdateIncrement non-primary key insert/update long Database NewId(MaxPos,1)
Selecting Tracer
Thread Usage
Locker blocked read/write same record
Tracer non-blocked read/write different records
Supported Types
.NET JAVA
 bool
 char
 byte
 sbyte
 short 
 ushort
 int
 uint
 long
 ulong              
 float
 double        
 decimal
 DateTime
 Guid
         
 bool? 
 char? 
 byte? 
 sbyte? 
 short?
 ushort? 
 int? 
 uint? 
 long? 
 ulong?      
 float? 
 double? 
 decimal?
 DateTime?
 Guid? 
 string 
       
 //non-indexable
 Dictionary<string, object>
 MemoryStream
 bool[] 
 char[] 
 byte[]
 sbyte[] 
 short[]
 ushort[] 
 int[] 
 uint[] 
 long[]
 ulong[]
 float[]
 double[] 
 decimal[] 
 DateTime[] 
 Guid[]
             
 boolean 
 Boolean
 byte 
 Byte
 char 
 Character
 short 
 Short
 int 
 Integer
 long 
 Long
 float
 Float
 double
 Double
 UUID
 Date
 //dynamic length
 BigDecimal
 BigInteger
 String
 
 //Non-Indexable
 HashMap<String,Object>
 MemoryStream
 byte[]
 Object[]
                            
IO
.NET JAVA
 class BoxFileStreamConfig
 class BoxMemoryStreamConfig
 class ReadonlyStreamConfig
 class CacheStreamConfig 
 class BoxFileStreamConfig 
 class BoxMemoryStreamConfig
 class ReadonlyStreamConfig
 class CacheStreamConfig 
Database Path
C# & JAVA,  place outside IDE working directory can get better performance
iBoxDB.LocalServer.DB.Root("/data/");
                
ASP.NET Cross Platform
iBoxDB.LocalServer.DB.Root(MapPath("~/App_Data/"));
                      
Xamarin
iBoxDB.LocalServer.DB.Root(System.Environment.GetFolderPath( 
       System.Environment.SpecialFolder.Personal));
                          
Unity3D
iBoxDB.LocalServer.DB.Root(Application.persistentDataPath);
                
Android
iBoxDB.LocalServer.DB.root(android.os.Environment.getDataDirectory()
       .getAbsolutePath() + "/data/" + packageName + "/");
                
JSP WebApplication
@WebListener()
public class StartListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent sce) {
       String path = System.getProperty("user.home") + "/data/"; 
       new File(path).mkdirs();   
       iBoxDB.LocalServer.DB.root(path); 
    }
}
               
Query
//query
box.Select("from Member");
//query, load to memory first, startwith '*'
box.Select("*from Member");
//query, selecting tracer, startwith '!'
box.Select("!from Member")
                
Index, make Select hundred times faster in average
config.EnsureIndex<Member>("Member", "Field1","Field2")
config.EnsureIndex(Member.class, "Member", isUniqueIndex,"Field1","Field2")
box.Select("from Member where Field1 == ? & Field2 == ?")
Getting Started   C# and Java
 var server = new DB();
 server.GetConfig().EnsureTable<Record>("Table", "ID");
 DB.AutoBox auto = server.Open();
 auto.Insert("Table", new Record { ID = 1, Name = "Andy" });
 var o1 = auto.SelectKey<Record>("Table", 1);
 o1.Name = "Kelly";
 auto.Update("Table", o1);
 auto.Delete("Table", 1);
                    
 DB server = new DB();
 server.getConfig().ensureTable(Record.class, "Table", "ID");
 DB.AutoBox auto = server.open();
 auto.insert("Table", new Record(1, "Andy"));
 Record o1 = auto.selectKey(Record.class, "Table", 1);
 o1.Name = "Kelly";
 auto.update("Table", o1);
 auto.delete("Table", 1);
                
Command Line   F# and JavaScript
 #r "iBoxDB.dll" 
 open iBoxDB.LocalServer 
 open System 
 DB.Root( "C:\\DB" ) 
 let server = new DB() 
 let db = server.Open() 
 for v in db.Select("from OT limit 0 , 2") do 
   Console.WriteLine(DB.ToString(v)) 
 for v in db.GetDatabase().GetSchemata() do 
   Console.WriteLine(v.Key) 
 server.Dispose()
                
 //jjs -cp iBoxDB.jar 
 var DB = Java.type("iBoxDB.LocalServer.DB") 
 DB.root("/db/") 
 var server = new DB() 
 var db = server.open() 
 db.select("from table1 limit 0,3") 
   .forEach( function(v){ print(v) }) 
 db.getDatabase().getSchemata() 
   .forEach( function(v){ print(v) }) 
 server.close() 
                
Benchmark with MongoDB
iBoxDB.Java 32bit System Low Memory
iBoxDB.java v1.4.1 mongodb-win32-i386-2.5.4 mongo-java-driver-2.9.3.jar
Results:
threadCount=100000 , batchCount=10
MongoDB(Default)
 Database Transaction Test: None
 Insert:1000000  AVG:10521 objects/s
 
iBoxDB(File Mode)
 Database Transaction Test: Succeeded
 Insert:1000000  AVG:17981 objects/s
 Update:1000000  AVG:12397 objects/s 
 Delete:1000000  AVG:22869 objects/s
            
iBoxDB(MemoryMappedFile Mode)
 Database Transaction Test: Succeeded
 Insert:1000000  AVG:38458 objects/s
 Update:1000000  AVG:20200 objects/s 
 Delete:1000000  AVG:33342 objects/s
 
iBoxDB(InMemory Mode)
 Database Transaction Test: Succeeded
 Insert:1000000  AVG:39132 objects/s
 Update:1000000  AVG:20226 objects/s 
 Delete:1000000  AVG:33658 objects/s
                

iBoxDB.NET 64bit System
iBoxDB v1.5 mongodb-win32-x86_64-2008plus-2.4.5 MongoDB.Driver v1.8.2.34
MongoDB(Default)
 Database Transaction Test: None
 Insert:1,000,000  AVG: 32,702 objects/s
 
iBoxDB(File Mode)
 Database Transaction Test: Succeeded
 Insert:1,000,000  AVG:33,368 objects/s
 Update:1,000,000  AVG:16,939 objects/s 
 Delete:1,000,000  AVG:22,504 objects/s
 
iBoxDB(MemoryMappedFile Mode)
 Database Transaction Test: Succeeded
 Insert:1,000,000  AVG:42,236 objects/s
 Update:1,000,000  AVG:17,765 objects/s 
 Delete:1,000,000  AVG:23,147 objects/s
 
iBoxDB(InMemory Mode)
 Database Transaction Test: Succeeded
 Insert:1,000,000  AVG:47,382 objects/s
 Update:1,000,000  AVG:26,806 objects/s 
 Delete:1,000,000  AVG:35,092 objects/s
                
Replication Master-Slave , Master-Master
iBoxDB Fast Transactional NoSQL Application Database Replication
iBoxDB Fast Transactional NoSQL Application Database For Java, .Net, Android, Windows Phone, Mono, Unity3D, Xamarin, Nashorn, Node.js, Linux, Windows
iBoxDB Simple NoSQL database embedded nosql db Windows Linux OS X Windows Phone ACID NoSQL data storage solution nosql document versioning Android iPhone Java NET Mono Transaction Embedded Document Database NoSQL Software in memory database NoSQL ASP dotNET JSP WEB HTML5 JavaScript CSharp X86 ARM C# Java Serverless Table-Style Server-Free Schema-Less Key-Value SQL Agile Development Update Increment Selecting Tracer SQL Agile Development Update Increment Selecting Tracer Nashorn ACID Transaction NoSQL Embeddable dotNET C# ACID NoSql embedded object database Java C# Lightweight Object Database NoSQL embedded database for dotNET Java C# Android object-oriented embedded database document nosql Application Database Embedded Database Document Database Object Database Mobile Database iBoxDB Android Windows Phone Lightweight Java Database C# NET Embedded Database Nashorn ACID Unity NET Transaction NoSQL Graph Java Embedded Nosql Database embedded NoSQL in memory database software for real time and embedded applications powerful cross platform NoSQL database system Transactional Document Database net best game database SaaS IaaS PaaS DB Services Xamarin Unity3D Unity Lightweight Smart Small JSON Database Fast Android Database NoSQL Database nosql isolation fast data of isolation Best nosql database Java C# Lightweight Smart Small JSON Database Xamarin Unity3D Linux ACID Transaction NoSQL Database C# Document Database ACID Android Document Database MVCC Java Document Database Transaction ACID dotNET Document Database embedded dotNET database engine has zero deployment costs NoSQL embedded database for NET Java C# small fast multithreaded engine and server with memory and disk tables transaction isolation NET Java JavaScript Mono Nashorn jjs Embedded Document Application Database SQL Agile Development Update Increment Java Embedded Database C# Embeddable database java embeddable nosql database embedded nosql java JSON SMALL nosql db performance database small footprint nosql isolation
NoSQL Xamarin Mono Unity Mobile Simple NoSQL ACID Transaction NoSQL Database NET Embedded Document Java JavaScript 1. Base de datos Bases de La agilidad De base trato Rodeado de bases de Base de objetos Base de datos de documentos Datos móviles 2. Die Datenbank Die dokumente der Datenbank Datenbank Angelegenheiten Das dokument Store Embedded Datenbank Der agile 3. La base de données de transaction La base de données de documents Rapide 4. Встроенную базу данных проворный файл базы данных Транзакция 5. UN database Integrato 6. 数据库 敏捷开发 数据库事务 嵌入式数据库 文档数据库 对象数据库 移动数据库 7. データベース 敏捷開発 データベースの事務 取引 组み込み式のデータベース ドキュメントデータベース 対象のデータベース モバイルデータベース 8. 민첩하다 개발 데이터베이스 내장 데이터베이스 9. Application Database Java Android Database iBoxDB Android lightweight database local server Free NET Java NoSQL Embedded FREE C# MVCC ACID NoSQL Unity3D Linux Embedded Document Database Engine Windows Phone Xamarin Embedded Document Database Engine Comparison FREE Java MVCC ACID NoSQL Mono Nashorn jjs SQL AgileDevelopment Update Increment C# NoSQL Embedded Document Database Comparison Android NoSQL Database Java NoSQL Embedded Document Database Comparison Mono NoSQL Database Comparison Unity NoSQL Database