immudb 1.0 DBMS á áááá¬áááºááŸá¬ážáá±á¬ áá¯ááºáá±ááŸá¯ááᯠááááºáááºáá²á·ááŒá®ážá ááá·áºááœááºážáá¬ážááá»áŸáá±áá¬á¡á¬ážáá¯á¶ážá áááŒá±á¬ááºážáá²ááá¯ááºááŸá¯ááŸáá·áº ááááºážááááºážááŸá¯ááᯠá¡á¬ááá¶áá±ážááá·áºá¡ááŒáẠáá±ááºáá±á¬ááºááŒááºááœá²áá±áá±á¬ á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠá¡áá¬á¡ááœááºáá±ážáᬠáá±áá¬ááá¯ááºááá¯ááºááŸá¯á áá»áŸáá¯á·ááŸááºáá¯ááºááŸááºááŒááºážááá¯ááºáᬠá¡áá±á¬ááºá¡áá¬ážáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážááá¯ááºáááºá á¡á ááá¯ááºážááœááºá ááá±á¬áá»ááºááẠáá±áá¬ááᯠáá±á¬á·/áááºááá¯áž áá±á¬áºáááºááŒáá·áº á á®áá¶ááá·áºááœá²ááá·áº á¡áá°ážááŒá¯ NoSQL ááá¯ááŸá±á¬ááºááŸá¯á¡ááŒá Ạáá®ááœááºáá²á·áá±á¬áºáááºáž ááœááºááŸáááá·áº 1.0 immudb á០á áááºáᬠSQL áá¶á·ááá¯ážááŸá¯ááŒáá·áº á¡ááŒáá·áºá¡á DBMS á¡ááŒá Ạáá±áá¬áá°áá¬ážáááºá ááá±á¬áá»ááºáá¯ááºááᯠGo ááœááºáá±ážáá¬ážááŒá®áž Apache 2.0 ááá¯ááºá ááºá¡á±á¬ááºááœáẠááŒáá·áºáá±áá¬ážáááºá
immudb ááœáẠá¡áá»ááºá¡áááºáá»á¬ážááᯠáááºááŸá ááŸááºáááºážáá»á¬ážá ááœááºážáááºáá áºáá¯áá¯á¶ážá ááá¯ááºáá¬ááŸá¯ááᯠá¡á¬ááá¶ááá·áº blockchain-like ááœá²á·á ááºážáá¯á¶ááᯠá¡áá¯á¶ážááŒá¯á ááááºážáááºážáá¬ážááŒá®áž ááááºážáááºážáá¬ážááŒá®ážáá±á¬ áá±áá¬ááᯠááŒá±á¬ááºážáá²ááŒááºáž ááá¯á·ááá¯áẠá¡áá±á¬ááºážá¡áááºááŸááºáááºážáá²ááá¯á· ááá·áºááœááºážááŒááºáž/ááá·áºááœááºážááŒááºážááá¯á·ááᯠá¡á á¬ážááá¯ážááŒááºážááá¯á·ááᯠááœáá·áºáááŒá¯áá«á ááá¯ááŸá±á¬ááºááŸá¯ááœáẠááá·áºááœááºážááŒá®ážáá¬áž á¡áá»ááºá¡áááºáá»á¬ážááᯠáá»ááºááẠááá¯á·ááá¯áẠááŒá±á¬ááºážáá²ááá¯ááºá áœááºážáááŸááá² áá±áá¬á¡áá áºááá·áºááŒááºážááá¯áᬠáá¶á·ááá¯ážáá±ážáá«áááºá DBMS ááœáẠááŸááºáááºážáá»á¬ážááᯠááŒá±á¬ááºážáá²ááẠááŒáá¯ážáááºážááŒááºážááẠááŸááºáááºážá áá¬ážááŸááºážá¡áá áºááᯠááááºážáááºážáááºáᬠáŠážáááºáááºá áá±áá¬áá±á¬ááºážááẠáá»á±á¬ááºáá¯á¶ážáááœá¬ážáá² ááŒá±á¬ááºážáá²ááŸá¯ááŸááºáááºážááœáẠáááºáááºááŸááá±áááºááŒá áºáááºá
ááá¯á·á¡ááŒááºá áá¯á¶ááŸáẠblockchain-based ááŒá±ááŸááºážáá»ááºáá»á¬ážááŸáá·áºááá°áá²á immudb ááẠááá·áºá¡á¬áž áá áºá áá¹ááá·áºáá»áŸáẠááœá±áá±ážááœá±áá°áááºážáá±á«ááºážáá»á¬ážá áœá¬áá±á¬á¡ááá·áºááœáẠá áœááºážáá±á¬ááºááá¯ááºá á±ááẠááœáá·áºááŒá¯áá±ážááŒá®áž áá±á«á·áá«ážáá±á¬áááºáá±á¬ááºááŸá¯áá»á¬ážááá¯ááœáá·áºááẠááá¯á·ááá¯áẠáááºážááá¯ááºáá±á¬ááºááá¯ááºá áœááºážááᯠá á¬ááŒáá·áºááá¯ááºáá¯á¶á á¶á¡ááá®áá±ážááŸááºážáá»á¬ážááœááºááá·áºááœááºážáááºá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá
áá±áá¬ááá·áºáááºááŸá¯ ááŒáá·áºáá¬ážáá±á¬ ááŒááºážáááºááŸá¯ááŸáá·áºá¡áá° ááŸááºáááºážáá»á¬ážááá¯á· á¡ááŒááºáááºáá±á¬ááºááœáá·áºááᯠáá±ážáá±á¬ááºááá·áº áááºááá¯ážáá»á¬ážááŸááºáááºážáá áºáá¯áá«ááŸááá±á¬ LSM (Log-structured merge-tree) áá áºáááºááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº ááŒáá·áºáá¬ážáá±á¬á áœááºážáá±á¬ááºáááºááᯠáááŸáááá¯ááºáááºá ááá¯ááŸá±á¬ááºááŸá¯á ááá¯ááºáá¬ááŸá¯ááᯠááááºážááááºážáááºá¡ááœáẠMerkle Tree áá¯áá±á«áºáá±á¬ áá áºáááºááœá²á·á ááºážáá¯á¶á¡á¬áž áááºáá±á¬ááºážá¡áá¯á¶ážááŒá¯áá¬ážááŒá®áž á¡ááá¯ááºážáá áºáá¯á á®ááẠá¡áááºážáá¶á¡ááá¯ááºážá¡áááºáá»á¬ážááŸáá·áº áá¯á¶ááŸááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá°ážááœá² (áá áºáááº) áá¬ážáá®ážááŒááºážá¡ááœáẠáá»á±ážáá°ážáááºááŸáá á±áá«áááºá áá±á¬ááºáá¯á¶áž hash áá«ááŸáááŒááºážááŒá±á¬áá·áº á¡áá¯á¶ážááŒá¯áá°ááẠáá¯ááºáá±á¬ááºáá»ááºááŸááºáááºážáá áºáá¯áá¯á¶ážá ááŸááºáááºááŸá¯á¡ááŒáẠáá±áá¬áá±á·á áºá ááááºá¡ááŒá±á¡áá±áá»á¬ážá ááŸááºáááºááŸá¯ááá¯áááºáž á á áºáá±ážááá¯ááºááẠ(áá±áá¬áá±á·á áºá á¡ááŒá±á¡áá±á¡áá áºá á¡ááŒá áºá¡áááºááŒá¯ááŒááºáž hash ááᯠááááºá¡ááŒá±á¡áá±ááŒáá·áº ááœááºáá»ááºáá«áááºá )
áá±á¬ááºáááºáá»á¬ážááŸáá·áº á á¬áááºážá á áºáá»á¬ážááᯠáá±áá¬ááá¯ááºááá¯ááºááŸá¯ááŸáá·áº ááá¯ááºáá¬ááŸá¯ááá¯ááºáᬠáá»áŸáá¯á·ááŸááºáá¯ááºá¡áá±á¬ááºá¡áá¬ážáá»á¬ážááŒáá·áº áá±ážáá¬ážáááºá á¡áá»á¬ážáá°ááŸá¬áá±á¬á·ááŸááºá á¬ááŸááºááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááẠáááá¯ááºážááá·áºá¡á¬áž áá¬áá¬ááá¯áá¯á¶ááŒááºáááºáááá¯á¡ááºáá«á ááŸáá·áº client á¡áá áºáá áºáá¯á á®ááᯠDBMS ááá¯á·áá»áááºáááºááŒááºážááẠááá¯ááŸá±á¬ááºááŸá¯áá áºáá¯áá¯á¶ážá¡ááœáẠá¡áá¯á¶ážá á¯á¶áá¯á¶ááŒááºááŸá¯á¡ááá·áºááᯠááá¯ážá á±áááºá á¡áá»á¬ážáá°ááŸá¬áá±á¬á·áá»á¬ážááŸáá·áº áá±á¬á·ááŒááºáá¯ááºááááºážááŒááºážá á¬áááºážáá»á¬ážááᯠáá±áá¬áá±á·á áºááœáẠááááºážáááºážáá¬ážááŒá®áž áá¯ááºááŸááºááŒááºážááá¯ááºáᬠáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáá¯ááºáá±á¬ááºááá·áºá¡áá« Intel SGX á¡ááœááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
DBMS á áá¯ááºáá±á¬ááºááá¯ááºá áœááºážá SQL áá¶á·ááá¯ážááŸá¯á áá±á¬á·/áááºááá¯áž ááá¯ááŸá±á¬ááºááŸá¯áá¯ááºá á¡ááœáŸááºážááááºážáá»á¬ážá áá±áá¬áá±á·á Ạá¡ááá¯ááºážááœá²áááºááŸááºááŒááºáž (sharding)á áá±áá¬á¡ááŒá±á¡áá±á áá»áŸááºáá áºááŒááºááá¯ááºáá»ááºáá»á¬áž áááºáá®ážááŒááºážá snapshot isolation (SSI) á¡ááœáẠáá¶á·ááá¯ážááŸá¯ááŒáá·áº ACID á¡áá±á¬ááºážá¡áááºáá»á¬ážá ááŒáá·áºáá¬ážáá±á¬á á¬áááºááŒááºážááŸáá·áº á á¬áá±ážááŒááºáž á áœááºážáá±á¬ááºáááºá ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬áẠáá¯ááºáá±á¬ááºááŸá¯áá»á¬ážá SSD ááœáẠáááá±á¬ááºáá±á¬ áá¯ááºáá±á¬ááºáá»ááºááᯠáá±á¬áºááŒáá¬ážáá«áááºá áááá¯ááºáá»á¬ážá áá¬áá¬áá áºáá¯ááŸáá·áº ááŒáŸá¯ááºááœááºážáá¬ážááá·áº á á¬ááŒáá·áºááá¯ááºáá¯á¶á á¶ááŒáá·áº á¡áá¯ááºáá¯ááºááẠáá¶á·ááá¯ážááŸá¯á REST API á¡ááœáẠáá¶á·ááá¯ážááŸá¯ááŸáá·áº á á®áá¶ááá·áºááœá²ááŸá¯á¡ááœáẠáááºá¡ááºáá¬áá±á·á ẠááŸááá±ááŒááºážá immudb áá²á·ááá¯á·áá±á¬ DBMSs áá»á¬ážáááºááá¯á¡á¬ážááŸááá±ááá·áº áá¯á¶ááŸááºá¡ááá®áá±ážááŸááºážáá»á¬ážááœáẠááááºáá áºáááºá¡áá±á¬ááºážá¡áááºááŒá¯áá¯ááºááŒááºážá á¡áá»á¬ážáá°ááŸá¬áá±á¬á·áá»á¬ážááááºážáááºážááŒááºážá áá áºáá»á áºáááºáááºááŸááºáá»á¬ážá checksum ááŸáá·áº ááŸááºáááºážáá»á¬ážááŸáá·áº ááá¯ážáᬠDBMS áá»á¬ážááŸá á¡áá±ážááŒá®ážáá±á¬á¡ááœááºáá»á¬ážá¡ááœáẠá¡áááºááá¯ááŸá±á¬ááºááŸá¯áááºáá®ážááŒááºážááá¯á·áá«áááºáááºá immudb ááŸáá·áº áá¯ááºáá±á¬ááºáááºá¡ááœáẠClient á á¬ááŒáá·áºááá¯ááºáá»á¬ážááᯠGoá Javaá .NETá Python ááŸáá·áº Node.js á¡ááœáẠááŒááºáááºáá¬ážáá«áááºá
immudb 1.0 ááœááºááŸáááŸá¯ááœáẠá¡áááááá¯ážáááºááŸá¯áá»á¬áž-
- áá»áŸáá¯á·ááŸááºááŒá¯ááŒááºááœááºážáá¶ááŒááºážá០á¡áááºážáá»á¬ážááᯠáá¬ááœááºááá¯ááºá áœááºážááŸááá±á¬ SQL áá¶á·ááá¯ážááŸá¯á
- TimeTravel áá¯ááºá áááºážááẠáá±áá¬áá±á·á áºá á¡ááŒá±á¡áá±á¡á¬áž á¡ááááºá០á¡áá»áá¯á·áá±á¬áá±áá¬ááá¯á· ááŒá±á¬ááºážááá¯ááºá á±áááºá á¡áá°ážáááŒáá·áºá ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááŸáá·áº áá±áá¬ááŸáá¯ááºážááŸááºááŸá¯ááᯠááá¯ážááŸááºážááœááºáá°á á±ááá·áº áá±áá¬ááŒááºáá±á¬ááºáá»áááºááᯠáá áºáŠážáá»ááºážáá±ážááŒááºážááŸá¯á¡ááá·áºááœáẠáááºááŸááºááá¯ááºáááºá
- PostgreSQL ááŸáá·áº immudb ááŒáá·áº á¡áá¯ááºáá¯ááºááẠáá®ááá¯ááºážáá¯ááºáá¬ážáá±á¬ áááºááŸáá¡ááºááºáá»á¬ážááŸáá·áº áá áºáá»á áºááá¯ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááẠááœáá·áºááŒá¯ááá·áº PostgreSQL áá±á¬ááºáááºáááá¯ááá¯áá±á¬á¡ááœáẠáá¶á·ááá¯ážááŸá¯á áá°áááºáž client libraries áá»á¬ážá¡ááŒááºá áááºááẠstandard client libraries Rubyá Cá JDBCá PHP ááŸáá·áº Perl ááá¯áá¯á¶ážááá¯ááºáááºá
- á¡ááŒááºá¡ááŸááºá¡áá»áá¯ážááŒá¯áá±á¬áá±áá¬áááºážááœáŸááºááŒááºážááŸáá·áº DBMS á
á®áá¶ááá·áºááœá²ááŸá¯á¡ááœáẠáááºááœááºááá¯ážááºá áááºá¡ááºáá¬áá±á·á
áºááŸáááá·áº áááºááẠáá±á¬ááºážááá¯áá»ááºáá»á¬ážááᯠáá±ážááá¯á·ááá¯ááºáááºá á¡áá¯á¶ážááŒá¯áá°áá»á¬ážááᯠáááºáá®ážáᬠáá±áá¬ááᯠá
á®áá¶ááá·áºááœá²ááá¯ááºáááºá ááá¯á·á¡ááŒááºá Playground áááºáá°ááŸá¯áááºáááºážáá»ááºááᯠáááŸáááá¯ááºáá«áááºá
source: opennet.ru