X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=doc%2Findex.html;h=afffa3246c83d5cfb39bdd75fa85c82b7b45d995;hb=f3cc9e04c296bb3cd21446bd3571d20fc2fb4615;hp=99c096e8273acba1850556fe89b5f85fd2a0b00d;hpb=070b9d6bbff9ef4e08c10cb8b1c5cb52800635aa;p=sixth-data.git diff --git a/doc/index.html b/doc/index.html index 99c096e..afffa32 100644 --- a/doc/index.html +++ b/doc/index.html @@ -2,7 +2,7 @@ Sixth Data - Data storage and computing engine - + @@ -201,13 +201,8 @@ $(function() {

1 General

-
-

3 Inspiration

+

3 Inspiration

+
+

3.1 Brain

+
+
+
+ +
+

3.2 CM-1 Connection Machine

+

-https://www.kenneth-truyers.net/2016/10/13/git-nosql-database/ ) +https://en.wikipedia.org/wiki/Connection_Machine +

+ +

+Massively parallel (thousands of CPUs) connected via +machine's internal 12-dimensional hypercube network allows to +efficiently simulate arbitrary dimensional hypercube and network +topology between computational units. So that when we are +solving/simulating for example 5 dimensional problem, we can arrange +computational units into virtual 5D network. See: +http://www.mission-base.com/tamiko/theory/cm_txts/di-ch2.html +

+ +

+we can pre-distribute data across computation units and perform +parallel geometrical computation.

- - +
+
-
-

3.1 Brain

-
+
+

4 Reasons for hypercube as a so called first class citizen

+
+
+

5 Geometrical computation idea

+
-
-

4 Ideas

-
-
-

4.1 Distributed computation and data storage

-
+
+

5.1 Distributed computation and data storage

+

-Maybe every problem can be translated to geometry (use any shapes and -as many dimensions as you need). Solution(s) to such problems would -then appear as relatively simple search/comparison/lookup results. As -a bonus, such geometrical *data storage* AND *computation* can be -naturally made in *parallel* and *distributed*. That's what neurons in -the brain appear to be doing ! :) . Learning means building/updating -the model (the hard part). Question answering is making (relatively -simple) lookups (geometrical queries) against the model. +Lots of problems can be translated to geometry (use any shapes and as +many dimensions as you need). Solution(s) to such problems could be +then found via geometrical search/comparison/lookup results. As a +bonus, such geometrical *data storage* AND *computation* can be +naturally made in *parallel* and *distributed*. +

+ +

+Learning means building/updating/re-balancing the model (the hard +part). Question answering is making (relatively simple) lookups +(geometrical queries) against the model.

-
-

4.2 Mapping of hyperspace to traditional object-oriented model

-
+
+

5.2 Mapping hypercube to object-oriented model and relational database

+

Object oriented programming is inspired by the way human mind operates. It allows programmer to express ideas to computer in a more @@ -375,119 +387,78 @@ human-like terms.

-It is possible to map object model to geometrical hyperspace: +It is actually also possible to map object model and relational +database to geometrical hyperspace:

    -
  • Object is a point in space (universe). Each object member variable -translates to its own dimension. That is: if class declares 4 -variables for an object, then corresponding object can be stored as -a single point inside 4 dimensional space. Variable values translate -to point coordinates in space. That is: Integer, floating point -number and even boolean and string can be translated to linear value -that can be used as a coordinate along particular dimension. +
  • Object or database table row is a point in hypercube arbitrary +dimensional space. Each object member variable or database table +column can be mapped to its own dimension in hypercube. That is: if +class declares 4 variables for an object, then corresponding object +can be stored as a single point inside 4 dimensional +hypercube. Variable values translate to point coordinates in that +hypercube. That is: numbers and string can be translated to linear +value that can be used as a coordinate along particular dimension.
  • -
  • Each class declares its own space (universe). All class instances -(objects) are points inside that particular universe. References -between objects of different types are hyperlinks (portals) between -different universes. +
  • Each object class or database table declares its own hypercube that +contain instances (objects) of that class or rows of a table.
-
-

4.3 Handling of relations

-
+ +
+

5.3 Mapping entity relations in hypercube

+

-Consider we want to create database of books and authors. Book can -have multiple authors, and single person can be author for multiple -books. It is possible to store how many hours of work each author has -contributed to every book, using hyperspace as follows: +Consider we want to create database of:

- -
    -
  • Every dimension corresponds to one particular book author. (10 -authors in the database, would require 10 dimensional space)
      -
    • Point in space corresponds to one particular book. -
        -
      • Point location along particular (author) dimension corresponds -to amount of work contributed by particular author for given -book. +
      • Books.
      • -
      +
    • Authors.
    • -
    +
  • Effort: Amount of time contributed by every author to every book +that he/she wrote.

-Alternatively: +Information above can be represented as 3D cube where dimensions are:

-
    -
  • Every dimension corresponds to one particular book. -
      -
    • Point in space corresponds to one particular author in the entire -database. -
        -
      • Point location along particular (book) dimension corresponds to -amount of work contributed for book by given author (point). +
      • X: Book
      • -
      +
    • Y: Author
    • -
    +
  • Z: Effort
-
-
-
-

4.4 Layered architecture

-
-
-
layer 1
disk / block storage / partition -
- -
layer 2
key/value storage. Keys are unique and are dictated by -storage engine. Value is arbitrary but limited size byte -array. This layer is responsible for handling disk -defragmentation and consistency in case of crash -recovery. -
- -
layer 3
key/value storage. Keys are content hashes. Values are -arbitrary but limited size content byte arrays. This -layer effectively implements content addressable -storage. Content addressible storage enables GIT-like -behavior (possibility for competing branches, retaining -history, transparent deduplication) -
- -
layer 4
Implements arbitrary dimensional multiverse. -
- -
layer 5
Distributed computation engine. -
-
+

+Points in that cube would nicely capture many to many relations +between authors and the books. +

-
-

5 Current status

-
+
+

6 Current status

+
  • More or less defined Vision / goal.
  • -
  • Collected some ideas. +
  • Collected some inspiring ideas.
  • Implemented very simple persistent key-value map.
    • Long term goal is to use it as a backing storage engine and -implement more advanced features on top of this. +implement more advanced features on top of this via layered +architecture.
  • @@ -495,14 +466,45 @@ implement more advanced features on top of this.
-
-

6 See also

-
+
+

7 See also

+

Interesting or competing projects with good ideas:

    +
  • ChrysaLisp +
      +
    • Assembler/C-Script/Lisp 64 bit, MIMD, multi CPU, multi threaded, +multi core, multi user Parallel OS. With GUI, Terminal, OO +Assembler, Class libraries, C-Script compiler, Lisp interpreter, +Debugger, and more… +
    • +
    +
  • + +
  • CM-1 Connection Machine +
  • + +
  • Gemstone/S +
      +
    • Completely distributed smalltalk based computing +system. +
    • +
    +
  • + +
  • Glamorous Toolkit +
      +
    • Moldable development environment. It is a live notebook. It is a +flexible search interface. It is a fancy code editor. It is a +software analysis platform. It is a data visualization engine. All +in one. +
    • +
    +
  • +
  • GRAKN.AI
    • database in the form of a knowledge graph that uses machine @@ -512,6 +514,14 @@ applications. https://grakn.ai/
  • +
  • http://phantomos.org/ +
      +
    • Programs run forever. System crash or reboot does not destroy +state of running program. +
    • +
    +
  • +
  • Magma
    • Multi-user object database for Squeak @@ -519,10 +529,10 @@ applications. https://grakn.ai/
  • -
  • Gemstone/S +
  • Taichi: A Language for High-Performance Computation onSpatially +Sparse Data Structures
  • @@ -534,12 +544,9 @@ system.
-
  • ChrysaLisp +
  • TileDB
      -
    • Assembler/C-Script/Lisp 64 bit, MIMD, multi CPU, multi threaded, -multi core, multi user Parallel OS. With GUI, Terminal, OO -Assembler, Class libraries, C-Script compiler, Lisp interpreter, -Debugger, and more… +
    • Analyze and share complex multi-dimensional data at scale
  • @@ -558,25 +565,26 @@ Debugger, and more…
  • 3. Inspiration
  • -
  • 4. Ideas +
  • 4. Reasons for hypercube as a so called first class citizen
  • +
  • 5. Geometrical computation idea
  • -
  • 5. Current status
  • -
  • 6. See also
  • +
  • 6. Current status
  • +
  • 7. See also