changeset 2:d67370516d8c

change filename "Cassandra/CassHash.pm" to "Cassandra/Cass4YukiWiki.pm"
author Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
date Tue, 15 Jun 2010 19:22:19 +0900
parents 0b233d5d1944
children 7b2d8f8eaa7b
files Cassandra/Cass4YukiWiki.pm Cassandra/CassHash.pm wiki.cgi
diffstat 3 files changed, 159 insertions(+), 167 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cassandra/Cass4YukiWiki.pm	Tue Jun 15 19:22:19 2010 +0900
@@ -0,0 +1,150 @@
+#this perl module for using Cassandra DB on YukiWiki 
+package Cassandra::CassHash;
+
+use strict;
+use warnings;
+
+use lib './Cassandra/lib';
+use Cassandra::Cassandra;
+use Cassandra::Constants;
+use Cassandra::Types;
+
+use Thrift;
+use Thrift::BinaryProtocol;
+use Thrift::Socket;
+use Thrift::BufferedTransport;
+
+sub TIEHASH
+{
+	my ($_pkg,$_host,$_port,$_ksp,$_cf,$_row) = @_;
+
+	my $self;
+
+	$self->{_socket} = new Thrift::Socket($_host,$_port);
+	$self->{_transport} = new Thrift::BufferedTransport($self->{_socket},1024,1024);
+	$self->{_protocol} = new Thrift::BinaryProtocol($self->{_transport});
+	$self->{_client} = new Cassandra::CassandraClient($self->{_protocol});
+	$self->{_keyspace} = $_ksp;
+	$self->{_columnfamily} = $_cf;
+	$self->{_row} = $_row;
+	$self->{_consistency_level} = Cassandra::ConsistencyLevel::ONE;
+
+	$self->{_transport}->open();
+
+	return bless $self,$_pkg;
+}
+
+sub FETCH
+{
+	my $self = shift;
+	my $column = shift;
+	my $client = $self->{_client};
+	my $column_path = new Cassandra::ColumnPath();
+	$column_path->{column_family} = $self->{_columnfamily};
+	$column_path->{super_column} = undef;
+	$column_path->{column} = $column;
+	
+	my $value;
+	eval{
+		$value = $client->get($self->{_keyspace},$self->{_row},$column_path,$self->{_consistency_level});
+	};
+	if($@){
+		return undef;
+	}
+	
+	return $value->{column}->{value};
+}
+
+sub EXIST
+{
+	my $self = shift;
+	my $column = shift;
+	my $client = $self->{_client};
+	my $column_path = new Cassandra::ColumnPath();
+	$column_path->{column_family} = $self->{_columnfamily};
+	$column_path->{super_column} = undef;
+	$column_path->{column} = $column;
+	
+	my $value;
+	eval{
+		$value = $client->get($self->{_keyspace},$self->{_row},$column_path,$self->{_consistency_level});
+	};
+	if($@){
+		return 0;
+	}
+	
+	return 1;
+}
+
+sub STORE
+{
+	my ($_self,$_column,$_value) = @_;
+
+	my $column_path = new Cassandra::ColumnPath();
+	$column_path->{column_family} = $_self->{_columnfamily};
+	$column_path->{super_column} = undef;
+	$column_path->{column} = $_column;
+
+	my $client = $_self->{_client};
+
+	$client->insert($_self->{_keyspace},$_self->{_row},$column_path,$_value,time,$_self->{_consistency_level});
+	
+	return $_value;
+}
+
+sub DELETE
+{
+	my ($_self,$_column) = @_;
+	my $client = $_self->{_client};
+	
+	my $column_path = new Cassandra::ColumnPath();
+	$column_path->{column_family} = $_self->{_columnfamily};
+	$column_path->{super_column} = undef;
+	$column_path->{column} = $_column;
+
+	$client->remove($_self->{_keyspace},$_self->{_row},$column_path,time,$_self->{_consistency_level});	
+	
+	return undef;
+}
+
+sub FIRSTKEY
+{
+	my ($_self) = @_;	
+
+	my $client = $_self->{_client};
+
+	my $column_parent = new Cassandra::ColumnParent();
+	$column_parent->{column_family} = $_self->{_columnfamily};
+	$column_parent->{super_column} = undef;
+	
+	my $slice_range = new Cassandra::SliceRange();
+	$slice_range->{start} = "";
+	$slice_range->{finish} = "";
+
+	my $predicate = new Cassandra::SlicePredicate();
+	my @list = $predicate->{column_names};
+	$predicate->{slice_range} = $slice_range;
+
+	my @result = $client->get_slice($_self->{_keyspace},$_self->{_row},$column_parent,$predicate,$_self->{_consistency_level});
+	$_self->{_column_list} = $result[0];
+
+	my $first_column = shift @{$_self->{_column_list}};	
+
+	return $first_column->{column}->{name};
+}
+
+sub NEXTKEY
+{
+	my $_self = shift;
+	my $next_item = shift @{$_self->{_column_list}};
+	return $next_item->{column}->{name};
+}
+
+sub DESTROY
+{
+	my $self = shift;
+	$self->{_transport}->close();
+	return 1;
+}
+
+1;
--- a/Cassandra/CassHash.pm	Sun Jun 06 22:01:03 2010 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,161 +0,0 @@
-#this perl module for using Cassandra DB on YukiWiki 
-package Cassandra::CassHash;
-
-use strict;
-use warnings;
-
-use lib './Cassandra/lib';
-use Cassandra::Cassandra;
-use Cassandra::Constants;
-use Cassandra::Types;
-
-use Thrift;
-use Thrift::BinaryProtocol;
-use Thrift::Socket;
-use Thrift::BufferedTransport;
-
-
-use Data::Dumper;
-
-sub TIEHASH
-{
-	my ($_pkg,$_host,$_port,$_ksp,$_cf,$_row) = @_;
-
-	my $self = {
-		_socket => undef,
-		_transport => undef,
-		_protocol => undef,
-		_client => undef,
-		_keyspace => undef,
-		_columnfamily => undef,
-		_row => undef,
-		_column_list => undef
-	};
-
-	$self->{_socket} = new Thrift::Socket($_host,$_port);
-	$self->{_transport} = new Thrift::BufferedTransport($self->{_socket},1024,1024);
-	$self->{_protocol} = new Thrift::BinaryProtocol($self->{_transport});
-	$self->{_client} = new Cassandra::CassandraClient($self->{_protocol});
-	$self->{_keyspace} = $_ksp;
-	$self->{_columnfamily} = $_cf;
-	$self->{_row} = $_row;
-
-	$self->{_transport}->open();
-
-	return bless $self,$_pkg;
-}
-
-sub FETCH
-{
-	my $self = shift;
-	my $column = shift;
-	my $client = $self->{_client};
-	my $column_path = new Cassandra::ColumnPath();
-	$column_path->{column_family} = $self->{_columnfamily};
-	$column_path->{super_column} = undef;
-	$column_path->{column} = $column;
-	
-	my $value;
-	eval{
-		$value = $client->get($self->{_keyspace},$self->{_row},$column_path,Cassandra::ConsistencyLevel::ONE);
-	};
-	if($@){
-		return undef;
-	}
-	
-	return $value->{column}->{value};
-}
-
-sub EXIST
-{
-	my $self = shift;
-	my $column = shift;
-	my $client = $self->{_client};
-	my $column_path = new Cassandra::ColumnPath();
-	$column_path->{column_family} = $self->{_columnfamily};
-	$column_path->{super_column} = undef;
-	$column_path->{column} = $column;
-	
-	my $value;
-	eval{
-		$value = $client->get($self->{_keyspace},$self->{_row},$column_path,Cassandra::ConsistencyLevel::ONE);
-	};
-	if($@){
-		return 0;
-	}
-	
-	return 1;
-}
-
-sub STORE
-{
-	my ($_self,$_column,$_value) = @_;
-
-	my $column_path = new Cassandra::ColumnPath();
-	$column_path->{column_family} = $_self->{_columnfamily};
-	$column_path->{super_column} = undef;
-	$column_path->{column} = $_column;
-
-	my $client = $_self->{_client};
-
-	$client->insert($_self->{_keyspace},$_self->{_row},$column_path,$_value,time,Cassandra::ConsistencyLevel::ONE);
-	
-	return $_value;
-}
-
-sub DELETE
-{
-	my ($_self,$_column) = @_;
-	my $client = $_self->{_client};
-	
-	my $column_path = new Cassandra::ColumnPath();
-	$column_path->{column_family} = $_self->{_columnfamily};
-	$column_path->{super_column} = undef;
-	$column_path->{column} = $_column;
-
-	$client->remove($_self->{_keyspace},$_self->{_row},$column_path,time,Cassandra::ConsistencyLevel::ONE);	
-	
-	return undef;
-}
-
-sub FIRSTKEY
-{
-	my ($_self) = @_;	
-
-	my $client = $_self->{_client};
-
-	my $column_parent = new Cassandra::ColumnParent();
-	$column_parent->{column_family} = $_self->{_columnfamily};
-	$column_parent->{super_column} = undef;
-	
-	my $slice_range = new Cassandra::SliceRange();
-	$slice_range->{start} = "";
-	$slice_range->{finish} = "";
-
-	my $predicate = new Cassandra::SlicePredicate();
-	my @list = $predicate->{column_names};
-	$predicate->{slice_range} = $slice_range;
-
-	my @result = $client->get_slice($_self->{_keyspace},$_self->{_row},$column_parent,$predicate,Cassandra::ConsistencyLevel::ONE);
-	@{$_self->{_column_list}} = @{$result[0]};
-
-	my $first_column = shift @{$_self->{_column_list}};	
-
-	return $first_column->{column}->{name};
-}
-
-sub NEXTKEY
-{
-	my $_self = shift;
-	my $next_item = shift @{$_self->{_column_list}};
-	return $next_item->{column}->{name};
-}
-
-sub DESTROY
-{
-	my $self = shift;
-	$self->{_transport}->close();
-	return 1;
-}
-
-1;
--- a/wiki.cgi	Sun Jun 06 22:01:03 2010 +0900
+++ b/wiki.cgi	Tue Jun 15 19:22:19 2010 +0900
@@ -37,8 +37,8 @@
 #
 # You MUST modify following '$modifier_...' variables.
 #
-my $modifier_mail = 'hyuki@hyuki.com';
-my $modifier_url = 'http://www.hyuki.com/';
+my $modifier_mail = 'casawiki@example.com';
+my $modifier_url = 'http://yourwebserver/';
 my $modifier_name = 'Hiroshi Yuki';
 my $modifier_dir_data = '.'; # Your data directory (not URL, but DIRECTORY).
 my $modifier_url_data = '.'; # Your data URL (not DIRECTORY, but URL).
@@ -53,6 +53,9 @@
 #
 #my $modifier_dbtype = 'YukiWikiDB';
 my $modifier_dbtype = 'Cassandra::CassHash';
+my $modifier_dbtype_cass_keyspace = 'Keyspace1';
+my $modifier_dbtype_cass_columnfamily = 'YukiWiki';
+my $modifier_dbtype_cass_row = 'Data';
 my $modifier_sendmail = '';
 # my $modifier_sendmail = '/usr/sbin/sendmail -t -n';
 my $modifier_dir_plugin = './plugin';
@@ -831,10 +834,10 @@
     } elsif ($modifier_dbtype eq 'AnyDBM_File') {
         tie(%database, "AnyDBM_File", $dataname, O_RDWR|O_CREAT, 0666) or &print_error("(tie AnyDBM_File) $dataname");
         tie(%infobase, "AnyDBM_File", $infoname, O_RDWR|O_CREAT, 0666) or &print_error("(tie AnyDBM_File) $infoname");
-	} elsif ($modifier_dbtype eq 'Cassandra::CassHash') {
+	} elsif ($modifier_dbtype eq 'Cassandra::Cass4YukiWiki') {
 		#use cassandra
-        tie(%database, "Cassandra::CassHash","localhost",9161,"Keyspace1","Standard1","yukiwiki3") or &print_error("(tie Cassandra::CassHash) $dataname");
-        tie(%infobase, "Cassandra::CassHash","localhost",9161,"Keyspace1","Standard1","yukiwiki5") or &print_error("(tie Cassandra::CassHash) $infoname");
+        tie(%database, "Cassandra::Cass4YukiWiki","localhost",9161,"YukiWikiKS","YukiWikiCF","database") or &print_error("(tie Cassandra::Cass4YukiWiki) $dataname");
+        tie(%infobase, "Cassandra::Cass4YukiWiki","localhost",9161,"YukiWikiKS","YukiWikiCF","infobase") or &print_error("(tie Cassandra::Cass4YukiWiki) $infoname");
     } else {
         tie(%database, "Yuki::YukiWikiDB", $dataname) or &print_error("(tie Yuki::YukiWikiDB) $dataname");
         tie(%infobase, "Yuki::YukiWikiDB", $infoname) or &print_error("(tie Yuki::YukiWikiDB) $infoname");
@@ -861,7 +864,7 @@
         tie(%diffbase, "AnyDBM_File", $diffname) or &print_error("(tie AnyDBM_File) $diffname");
 	} elsif ($modifier_dbtype eq 'Cassandra::CassHash') {
 		#use cassandra
-        tie(%diffbase, "Cassandra::CassHash","localhost",9161,"Keyspace1","Standard1","yukiwiki4") or &print_error("(tie Cassandra::CassHash) $diffname");
+        tie(%diffbase, "Cassandra::Cass4YukiWiki","localhost",9161,"YukiWikiKS","YukiWikiCF","diffbase") or &print_error("(tie Cassandra::Cass4YukiWiki) $diffname");
     } else {
         tie(%diffbase, "Yuki::YukiWikiDB", $diffname) or &print_error("(tie Yuki::YukiWikiDB) $diffname");
     }