X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=doc%2Findex.html;h=c719c14e1a95c91702ffdb0a7e7b8693eb7925cd;hb=b382105757c3d9a2bb528fa8e4218354feff2429;hp=28f924f76fc0583f20e9a4a859579d8fe4f49dcf;hpb=bb7b2daf4049f53eefbde9912daca7f31a3b6717;p=sixth-data.git diff --git a/doc/index.html b/doc/index.html index 28f924f..c719c14 100644 --- a/doc/index.html +++ b/doc/index.html @@ -2,7 +2,7 @@ Sixth - system for data storage, computation, exploration and interaction - + @@ -220,41 +220,51 @@ License or later as published by the Free Software Foundation. -
  • other applications hosted at svjatoslav.eu +
  • other applications hosted at svjatoslav.eu
  • -

    1 Vision / goal

    +

    1 Vision / goal

    -Provide versioned, clustered, flexible, object-relational database -functionality for the Sixth computation engine. +Provide versioned, clustered, flexible, distributed, multi-dimensional +data storage engine for the Sixth computation engine.

    +
    +
    -
    -

    1.1 Inspiration

    -
    +
    +

    2 Inspiration

    +
    +
    + +
    -
    -

    1.2 Solution (the big idea)

    -
    +
    +

    3 Ideas

    +
    +
    +

    3.1 Distributed computation and data storage

    +

    -I see 4D data structure. +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.

    - - -
    -

    data model.png +

    +
    +
    +

    3.2 Mapping of hyperspace to traditional object-oriented model

    +
    +

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

    -

    -Dimensions: +It is possible to map object model to geometrical hyperspace:

    +
      -
    • List of all the objecs in the system (rows). -
    • -
    • List of all declared unique object fields (columns). -
    • -
    • List of all historical transactions/commits/versions (think of -sheets of paper). -
    • -
    • List of all concurrently running branches/threads. Branches can -appear and merge over time as needed. +
    • 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.
    • -
    • (Every cell is concrete field value within an object) + +
    • 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.
    - +
    +
    +
    +

    3.3 Handling of relations

    +

    -Partitioning/clustering: +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:

    + +
      +
    • Every dimension corresponds to one particular book author. (10 +authors in the database, would require 10 dimensional space)
        -
      • Why not to partition/(load balance) as required across networked -physical computers along arbitrary dimension(s) declared above ? +
      • 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. +
        • +
      - -

      -Indexing (for fast searching): -

      -
        -
      • Why not to index along arbitrary dimensions (as required) ?

      -Further optimizations: +Alternatively:

      + +
        +
      • Every dimension corresponds to one particular book. +
          +
        • Point in space corresponds to one particular author in the entire +database.
            -
          • In current early stage, trying to focus on minimum possible set of -features that would provide maximum possible set of power/benefit :) +
          • Point location along particular (book) dimension corresponds to +amount of work contributed for book by given author (point).
          • -
          • Once featres are locked. Anything can be optimised. Optimization for -size (deduplication) can be solved using Git style content -addressible storage mechanism. +
          +
        • +
    -
    -

    2 Current status

    -
    + + +
    +

    4 Current status

    +
      +
    • More or less defined Vision / goal. +
    • + +
    • Collected some 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. +
      • +
    +
    +
    +
    +

    5 See also

    +

    -Long term goal is to implement more advanced features on top of this. +Interesting or competing projects with good ideas:

    -
    -
    -
    -

    3 TODO

    -
    -
    -

    3.1 check out Magma

    -
    +
    + + +
  • ZetaVM + +
  • +