別の自転車またはTreeDb-NoSQL Databaseの起動

作業タイトルTreeDbを使用して、プロジェクトの開始を紹介します。 私はPRをしていません(まだまだ遠いです...)、自分の考えや推論を個人的なブログに投稿しています。 それに応じて、適切な批判、アイデアの議論、一般的には、ブログの目的はそれだけです;)。 プロジェクトの履歴、計画された内容、出力がどのようなものかを追跡するのは興味深いことです。 または、誰かが参加したいかもしれません。 いつも歓迎します。



名前から、ツリーに基づいたデータベースについて話すことは明らかです。 すぐに予約します。現時点ではコードは1行もありません。 まず、コンセプトを決めます。



よくある質問



用語について少し:



キー -一部の(特定の)データを一意に識別する一意の識別子。

キーには文字\ w [azAZ09_] *が含まれる場合があります*

*-この制限は将来削除されるか、[ay]に拡張される可能性があります。 これに対する要求は、障害を見つけることではありません。

キーは、フルまたはショートにすることができます。



短いキーは、特定のレベル内で一意のノード名です。 より正確に言うと、子ノードの一意の名前は1つだけが1つの親ノードの一部である必要があります(兄弟と姉妹は、1つの大きなファミリで同じ名前を持ちません)。 単純なキーA1、B2、C3の例



完全なキーは、ドットで順番に並べられたすべての親ノードの名前です。

完全なキーA1.B2.C3の例は、ノードC3、その親B2、および偉大な親A1の名前です。



データ -要求時に記憶および発行する必要がある特定のバイトシーケンス。 データは英数字またはバイナリのいずれかです。



ノード(ノード)は、キーによって一意に決定されるデータと子ノードの組み合わせです。 つまり、ノード-名前(キー)、データ、および子ノードへのリンクが含まれます。



子ノードは、親ノードに含まれ、1つの関係を持つノードです。 バター。



子ノードに名前を付けることはできません。つまり、デジタルキーは受信順に自動的に割り当てられます。 例を参照してください...



ルートノードは実際には存在せず、第1レベルのノードがあります。 理論的には、存在するはずです。



交換プロトコルの説明




基本は、memcached交換プロトコルです。 最初は、getとsetの2つのコマンドのみを実装する予定です。



1)ノードA1の書き込み

set A1,<data_len> \r\n

\r\n

>stored error *

*- Ok $



:

set A1,5

12345

>stored







2)

set (<node_name>,<data_len>)+ \r\n

\r\n

>stored

....

\r\n

>stored*

*- ?



:

set A1,5 A2,5 A3,5

12345

>stored

67890

>stored

abcde

>stored








3) A1

g et A1\r\n

>A1 5

>12345\r\n

>ok *

*- ? (optional)







4) A1,A2,A3

g et A1,A2,A3\r\n

>A1 5

>12345\r\n

>A2 5

67890

>A2 5

abcde

>ok *

*- ?







5) A ( ?)

set A.# 5,5,5

12345

>stored

67890

>stored

abcde

>stored

, : #1,#2,#3

, : #4,#5,#6



6) A

get A.#

> A.#1,A.#2,A.#3

>ok







7) A

get A.*

>A.#1 5

>12345\r\n

>A.#2 5

>67890\r\n

>A.#3 5

>abcde

>ok







8) A

*-

set A: B1,5 B2,5 B3,5

12345

>stored

67890

>stored

abcde

>stored







:

set A.B1,5 A.B2,5 A.B3,5



a.*.b.*,

a..b.* a..*.*



, .



FAQ



?

, ... .



?

, ...

- .

,

.



?

, , .

.

.



?

. , .

libevent



, ?

.

. , .



?

. - ,

key-value .

, - .



?

- 32 .



?

32 - ... 16?



?

, . , - !



UPDATE?

set



?

, , .

, - .



?

, ... ...

- .








set A1,<data_len> \r\n

\r\n

>stored error *

*- Ok $



:

set A1,5

12345

>stored







2)

set (<node_name>,<data_len>)+ \r\n

\r\n

>stored

....

\r\n

>stored*

*- ?



:

set A1,5 A2,5 A3,5

12345

>stored

67890

>stored

abcde

>stored








3) A1

g et A1\r\n

>A1 5

>12345\r\n

>ok *

*- ? (optional)







4) A1,A2,A3

g et A1,A2,A3\r\n

>A1 5

>12345\r\n

>A2 5

67890

>A2 5

abcde

>ok *

*- ?







5) A ( ?)

set A.# 5,5,5

12345

>stored

67890

>stored

abcde

>stored

, : #1,#2,#3

, : #4,#5,#6



6) A

get A.#

> A.#1,A.#2,A.#3

>ok







7) A

get A.*

>A.#1 5

>12345\r\n

>A.#2 5

>67890\r\n

>A.#3 5

>abcde

>ok







8) A

*-

set A: B1,5 B2,5 B3,5

12345

>stored

67890

>stored

abcde

>stored







:

set A.B1,5 A.B2,5 A.B3,5



a.*.b.*,

a..b.* a..*.*



, .



FAQ



?

, ... .



?

, ...

- .

,

.



?

, , .

.

.



?

. , .

libevent



, ?

.

. , .



?

. - ,

key-value .

, - .



?

- 32 .



?

32 - ... 16?



?

, . , - !



UPDATE?

set



?

, , .

, - .



?

, ... ...

- .








set A1,<data_len> \r\n

\r\n

>stored error *

*- Ok $



:

set A1,5

12345

>stored







2)

set (<node_name>,<data_len>)+ \r\n

\r\n

>stored

....

\r\n

>stored*

*- ?



:

set A1,5 A2,5 A3,5

12345

>stored

67890

>stored

abcde

>stored








3) A1

g et A1\r\n

>A1 5

>12345\r\n

>ok *

*- ? (optional)







4) A1,A2,A3

g et A1,A2,A3\r\n

>A1 5

>12345\r\n

>A2 5

67890

>A2 5

abcde

>ok *

*- ?







5) A ( ?)

set A.# 5,5,5

12345

>stored

67890

>stored

abcde

>stored

, : #1,#2,#3

, : #4,#5,#6



6) A

get A.#

> A.#1,A.#2,A.#3

>ok







7) A

get A.*

>A.#1 5

>12345\r\n

>A.#2 5

>67890\r\n

>A.#3 5

>abcde

>ok







8) A

*-

set A: B1,5 B2,5 B3,5

12345

>stored

67890

>stored

abcde

>stored







:

set A.B1,5 A.B2,5 A.B3,5



a.*.b.*,

a..b.* a..*.*



, .



FAQ



?

, ... .



?

, ...

- .

,

.



?

, , .

.

.



?

. , .

libevent



, ?

.

. , .



?

. - ,

key-value .

, - .



?

- 32 .



?

32 - ... 16?



?

, . , - !



UPDATE?

set



?

, , .

, - .



?

, ... ...

- .











All Articles