Skip to content

Commit 8cc2a64

Browse files
committed
[googledatastore] Initial commit of the Google Datastore Client
Add a DB client for Google Cloud Datastore. This initial commit includes implementation of all CRUD operations (modulo scan), and integration into the rest of YCSB (pom.xml changes, etc) Next few commits will include Scan/query support, single entity group support, and better documentation.
1 parent 0eb982d commit 8cc2a64

File tree

8 files changed

+437
-0
lines changed

8 files changed

+437
-0
lines changed

bin/ycsb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ DATABASES = {
5656
"dynamodb" : "com.yahoo.ycsb.db.DynamoDBClient",
5757
"elasticsearch": "com.yahoo.ycsb.db.ElasticSearchClient",
5858
"gemfire" : "com.yahoo.ycsb.db.GemFireClient",
59+
"googledatastore" : "com.yahoo.ycsb.db.GoogleDatastoreClient",
5960
"hbase094" : "com.yahoo.ycsb.db.HBaseClient",
6061
"hbase098" : "com.yahoo.ycsb.db.HBaseClient",
6162
"hbase10" : "com.yahoo.ycsb.db.HBaseClient10",

distribution/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,11 @@ LICENSE file.
7474
<artifactId>gemfire-binding</artifactId>
7575
<version>${project.version}</version>
7676
</dependency>
77+
<dependency>
78+
<groupId>com.yahoo.ycsb</groupId>
79+
<artifactId>googledatastore-binding</artifactId>
80+
<version>${project.version}</version>
81+
</dependency>
7782
<dependency>
7883
<groupId>com.yahoo.ycsb</groupId>
7984
<artifactId>hbase094-binding</artifactId>

googledatastore/README.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<!--
2+
Copyright (c) 2010 Yahoo! Inc., 2012 - 2015 YCSB contributors.
3+
All rights reserved.
4+
5+
Licensed under the Apache License, Version 2.0 (the "License"); you
6+
may not use this file except in compliance with the License. You
7+
may obtain a copy of the License at
8+
9+
http://www.apache.org/licenses/LICENSE-2.0
10+
11+
Unless required by applicable law or agreed to in writing, software
12+
distributed under the License is distributed on an "AS IS" BASIS,
13+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
14+
implied. See the License for the specific language governing
15+
permissions and limitations under the License. See accompanying
16+
LICENSE file.
17+
-->
18+
19+
# Google Cloud Datastore Binding
20+
21+
https://cloud.google.com/datastore/docs/concepts/overview?hl=en
22+
23+
## Configure
24+
25+
YCSB_HOME - YCSB home directory
26+
DATASTORE_HOME - Google Cloud Datastore YCSB client package files
27+
28+
Please refer to https://github.com/brianfrankcooper/YCSB/wiki/Using-the-Database-Libraries for more information on setup.
29+
30+
# Benchmark
31+
32+
$YCSB_HOME/bin/ycsb load googledatastore -P workloads/workloada -P googledatastore.properties
33+
$YCSB_HOME/bin/ycsb run googledatastore -P workloads/workloada -P googledatastore.properties
34+
35+
# Properties
36+
37+
$DATASTORE_HOME/conf/googledatastore.properties
38+
39+
# FAQs
40+
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Copyright (c) 2015 YCSB contributors. All rights reserved.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License"); you
4+
# may not use this file except in compliance with the License. You
5+
# may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
12+
# implied. See the License for the specific language governing
13+
# permissions and limitations under the License. See accompanying
14+
# LICENSE file.
15+
16+
#
17+
# Sample property file for Google Cloud Datastore DB client
18+
19+
## Mandatory parameters
20+
21+
## Optional parameters
22+

googledatastore/pom.xml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
Copyright (c) 2012 - 2015 YCSB contributors. All rights reserved.
4+
5+
Licensed under the Apache License, Version 2.0 (the "License"); you
6+
may not use this file except in compliance with the License. You
7+
may obtain a copy of the License at
8+
9+
http://www.apache.org/licenses/LICENSE-2.0
10+
11+
Unless required by applicable law or agreed to in writing, software
12+
distributed under the License is distributed on an "AS IS" BASIS,
13+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
14+
implied. See the License for the specific language governing
15+
permissions and limitations under the License. See accompanying
16+
LICENSE file.
17+
-->
18+
19+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
20+
<modelVersion>4.0.0</modelVersion>
21+
<parent>
22+
<groupId>com.yahoo.ycsb</groupId>
23+
<artifactId>binding-parent</artifactId>
24+
<version>0.6.0-SNAPSHOT</version>
25+
<relativePath>../binding-parent</relativePath>
26+
</parent>
27+
28+
<artifactId>googledatastore-binding</artifactId>
29+
<name>Google Cloud Datastore Binding</name>
30+
<url>https://github.com/GoogleCloudPlatform/google-cloud-datastore</url>
31+
<dependencies>
32+
<dependency>
33+
<groupId>com.google.apis</groupId>
34+
<artifactId>google-api-services-datastore-protobuf</artifactId>
35+
<version>v1beta2-rev1-3.0.2</version>
36+
</dependency>
37+
<dependency>
38+
<groupId>log4j</groupId>
39+
<artifactId>log4j</artifactId>
40+
<version>1.2.17</version>
41+
</dependency>
42+
<dependency>
43+
<groupId>com.yahoo.ycsb</groupId>
44+
<artifactId>core</artifactId>
45+
<version>${project.version}</version>
46+
<scope>provided</scope>
47+
</dependency>
48+
</dependencies>
49+
</project>

0 commit comments

Comments
 (0)