suchen
HeimDatenbankMySQL-TutorialVoltDB内存数据库的十大FAQ

VoltDB内存数据库的十大FAQ

Jun 07, 2016 pm 03:59 PM
faqvoltdb内存Top Ten数据库Was ist das

1. VoltDB是什么? -VoltDB是一家新型关系型 分布式内存 数据库管理系统,以解决OLTP为初衷,正在不断增加处理OLAP,提供BI的功能。VoltDB与传统数据库(如DB2,Oracle,MySQL等)最大的不同点就是,VoltDB把全部数据放在内存里,并且可以scale out,运行在

1. VoltDB是什么?

->VoltDB是一家新型关系型分布式内存数据库管理系统,以解决OLTP为初衷,正在不断增加处理OLAP,提供BI的功能。VoltDB与传统数据库(如DB2,Oracle,MySQL等)最大的不同点就是,VoltDB把全部数据放在内存里,并且可以scale out,运行在一个集群上,集群上的每个节点都可以执行部分数据处理任务。

VoltDB官网:http://voltdb.com/

\

2. VoltDB支持SQL吗?支持Transaction吗?

-> VoltDB支持大多数SQL语句,目前还在不断增加对SQL的支持。VoltDB的单个SQL语句和Stored procedure都支持Transaction的所有ACID属性,是一个完完全全的支持事务处理的系统。这点与key-value等系统等是有很大区别的。

VoltDB还支持JDBC,ODBC(soon)等接口,客户端也支持语言C#,C++,Erlang,Go,Java,JSON,Node.js,PHP,Python,Ruby等。

3. VoltDB适用于什么类型的应用?

->大数据领域可以分两类:a)数据总量大,b)单个数据元小,但数据产生快,有大量高并发。VoltDB主要是来解决Big Data下面Fast Data的问题,同时也在增加处理大数据量的能力。因此,VoltDB更加适合OLTP类型的应用,可以有效提高数据库高并发下的系统吞吐量,常见的应用有几类:a)需要实时交互的大型多人在线游戏,b)在线广告业务,c)移动电信通讯业务,d)银行或股票交易系统,e)在线商城(如淘宝,京东等),f)网络实时监控或传感器应用等

换句话讲,任何需要strong consistency的高并发业务,都是VoltDB最擅长的。同时实时交互的BI和OLAP也是VoltDB很不错的领域。当然如果你的数据规模是PB以上级别的OLAP话,就目前而言,那还是选择基于Hadoop的分析系统比较合适。

4. VoltDB数据库性是用什么语言写的?

VoltDB使用的语言大致分两种,底层引擎是C/C++,上层的SQL语义处理,并发管理,分布式集群等任务都是Java。另外,还有些工具使用Python,JS等做的。

底层Engine的任务包括:数据存储,内存管理及SQL具体执行的数据处理

5. VoltDB数据库性能到底怎么样?

VoltDB的吞吐量很高,尤其是单位节点的吞吐量,应该是市面上数据库系统最高的了。单台家用笔记本上,也能跑出7,8万TPS(transactions per second)。根据不同的笔记本性能,吞吐量也略有差别。

这里推荐两篇关于VoltDB性能的文章:

a)http://www.csdn.net/article/2013-04-11/2814850-877000-tps-with-erlang-and-voltdb :这是一家游戏公司Eonblast Corporation的CEO自己用Erlang客户端测VoltDB性能的博文,文中测试吞吐量的结果为:87.7万的TPS,完成了350万的QPS。

b)http://voltdb.com/blog/voltdb-in-memory-database-achieves-best-in-class-results-running-in-the-cloud-on-the-ycsb-benchmark-3/:文中对比了YCSB benchmark在云端的测量数据,结论是:VoltDB系统吞吐量可以根据集群的节点数线性增长,Workload B用12个节点跑出72.4万的TPS。要知道12年的MySQL和Cassandra在相似的机器上才跑出不到18万的TPS,现在的VoltDB跑Key-Value的应用,性能是当时他们的4倍之多。

C)https://www.sgi.com/pdfs/4238.pdf:SGI公司对VoltDB性能做了测试:10个节点能跑出120万的TPS,30个节点跑出了337万的TPS。

6. VoltDB是内存数据库,数据会不会容易丢失?如何实现高可用性?

数据库中数据的安全,一定是最为关键的问题。作为内存数据库,VoltDB有很多种科技手段来保证数据的可靠性。VoltDB已有不上金融领域的商业应用,这已经证明了内存数据库VoltDB在数据可靠性上是没问题的。

K-safety:VoltDB的数据是分区的,设定K-safety(即同步的分区拷贝数量)参数,可以确保整个集群的稳定性。如果K设置为1,每个分区都在集群内有一个拷贝,如果有一台机器当机了,整个VoltDB集群可以正常运行。

Snapshot(快照):用户可以根据应用设置snapshot的周期,VoltDB可以对数据做snapshot,然后将其写入Disk,数据就永久性的存在了。如果意外当机,VoltDB可以根据磁盘上已有的snapshot文件,进行数据恢复操作。恢复数据速度很快,我自己测试的60多G的数据,完成恢复需要2分钟左右。

Command Logging(命令日志):这个功能是VoltDB特有的,和Snapshot一起使用,记录了保存两次snapshot之间所有写(write)操作的日志,是为了确保不会有任何transaction丢失。读操作(read)不改变数据,所以不被记录。

Database Replication:这个是传统数据库已经有的功能了,就是在另一个地方,做一个完全一摸一样的数据拷贝,如果主集群不工作了(如集体断电),立刻讲服务切换到附属集群上去,通常附属集群要设立在一个物理范围上不同的地区。

以上内容有免费的网上学习视频,会英语的同学强烈推荐:http://voltdb.com/resources/volt-university/tutorials/section-1-6/ 

7. VoltDB是分布式数据库,有哪些特点?

VoltDB分布式内存数据库的性能,没两台机器之间不共享任何内存和数据,可以完全看做独立的两台机器,而只是用网络连接在一起。VoltDB的性能可以线性增长,支持动态添加节点,节点自动恢复等功能。

动态添加节点:不同业务可能会有自己的高峰期,打个比方,如果不满足现在3台机器的性能(吞吐量),可以动态增加节点,提高数据库服务器处理的性能。

节点自动恢复:如果集群中一台机器当机,K-safety参数设置大于或等于1,VoltDB依然可以正常运行。之后,等该机器维修好之后(当然也可换一台新机器),可以动态再添加到集群当中来。 

8. 谁在使用VoltDB?VoltDB的客户有哪些?

VoltDB的客户数量在400多个,合作伙伴也有30个左右,其中包括惠普HP,雅虎这样的大型IT公司。业务范围也大多是之前提到的VoltDB比较擅长的领域,涉及fast data和高并发的应用。具体情况可以参考链接:

http://voltdb.com/about/customers/

http://voltdb.com/partners/voltdb-partners/

9. VoltDB是否开源?有哪些资料参考和学习?

VoltDB有开源版本,免费试用。同时也有商业版,包含有更多功能。下载需要到官网亲自下载,例如数据恢复,command logging等功能是需要需要商业版的,商业版本有30天免费试用的。如果你是开发人员,希望研读源代码或者为VoltDB做贡献,GitHub的Wiki页面上也有如何设置Java eclipse,进行开发。

开源版本下载地址:https://github.com/VoltDB/voltdb/releases,

开源代码在GitHub上:https://github.com/VoltDB/voltdb。

VoltDB免费在线视频学习课程(会英文的同学,强烈推荐学习):http://voltdb.com/resources/volt-university/tutorials/

VoltDB的JIRA系统:https://issues.voltdb.com/

VoltDB的社区论坛:https://forum.voltdb.com/

VoltDB的支持邮箱:有任何疑问都可以发到此邮箱 support@voltdb.com

10. VoltDB商业版本费用如何?

具体的收费规则,我不是很清楚,但我可以确定,一定比传统大型数据库Oracle,SQL Server,DB2啥的便宜好多,比起SAP HANA也要便宜好多好多。

具体情况可以发邮件到support@voltdb.com询问,一定有人会回复相关问题。

如果你又其他相关问题,这里没有涵盖到,也可以留言讨论。

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
MySQL: Blob und andere Nicht-SQL-Speicher, was sind die Unterschiede?MySQL: Blob und andere Nicht-SQL-Speicher, was sind die Unterschiede?May 13, 2025 am 12:14 AM

Mysql'SbloBissableForstoringBinaryDatawithinarelationalDatabase, whilenosqloptionslikemongodb, Redis und CassandraofferFlexible, skalablessolutionenfornernstrukturierteData.blobissimplerbutcanslowdownscalgedlargedDataTTersClaTTersScalgedlargedDataTersClaTTersScalgedlargedDataTersClaTTERSCHITHLARGEGEGEBEN

MySQL Fügen Sie Benutzer hinzu: Syntax-, Optionen und Best Practices für SicherheitsverhältnisseMySQL Fügen Sie Benutzer hinzu: Syntax-, Optionen und Best Practices für SicherheitsverhältnisseMay 13, 2025 am 12:12 AM

ToaddauserinMysql, Verwendung: createUser'username '@' host'identifiedBy'password '; hier'Showtodoitesecurely: 1) choosethehostCrefulyTocon TrolAccess.2) setResourcelimits withOptionslikemax_queries_per_hour.3) UsSeStong, Uniquepasswords.4) Enforcesl/tlsConnectionsWith

MySQL: Wie vermeidet man String -Datentypen gemeinsame Fehler?MySQL: Wie vermeidet man String -Datentypen gemeinsame Fehler?May 13, 2025 am 12:09 AM

ToavoidCommonMistakeswithStringDatatypesinmysql, Verständnisstringtypenuances, ChoosetherightType, und ManageCodingandCollationsetingseffekt.1) UsecharforFixed-Länge-Strings, Varcharforvariable-Länge und Ventionlargerdata.2) -Tetcorrectaracters und Ventionlargerdata.2)

MySQL: String -Datentypen und -Enums?MySQL: String -Datentypen und -Enums?May 13, 2025 am 12:05 AM

MySQLoffersCHAR,VARCHAR,TEXT,andENUMforstringdata.UseCHARforfixed-lengthstrings,VARCHARforvariable-length,TEXTforlargertext,andENUMforenforcingdataintegritywithasetofvalues.

MySQL Blob: So optimieren Sie Blobs -AnfragenMySQL Blob: So optimieren Sie Blobs -AnfragenMay 13, 2025 am 12:03 AM

Die Optimierung von MySQLblob -Anfragen kann durch die folgenden Strategien durchgeführt werden: 1. Reduzieren Sie die Häufigkeit von Blob -Abfragen, verwenden Sie unabhängige Anfragen oder Verzögerungsbelastungen; 2. Wählen Sie den entsprechenden Blob -Typ (z. B. Tinyblob) aus; 3.. Trennen Sie die BLOB -Daten in separate Tabellen. 4.. Komprimieren Sie die BLOB -Daten in der Anwendungsschicht; 5. Index die Blob -Metadaten. Diese Methoden können die Leistung effektiv verbessern, indem Überwachung, Zwischenspeicherung und Datenschärfe in tatsächlichen Anwendungen kombiniert werden.

Adding Users to MySQL: The Complete TutorialAdding Users to MySQL: The Complete TutorialMay 12, 2025 am 12:14 AM

Das Beherrschen der Methode zum Hinzufügen von MySQL -Benutzern ist für Datenbankadministratoren und -entwickler von entscheidender Bedeutung, da sie die Sicherheits- und Zugriffskontrolle der Datenbank gewährleistet. 1) Erstellen Sie einen neuen Benutzer, der den Befehl createUser verwendet, 2) Berechtigungen über den Zuschussbefehl zuweisen, 3) Verwenden Sie FlushPrivileges, um sicherzustellen, dass die Berechtigungen wirksam werden.

Beherrschen MySQL -Zeichenfolge Datentypen: VARCHAR v.Stext vs. charBeherrschen MySQL -Zeichenfolge Datentypen: VARCHAR v.Stext vs. charMay 12, 2025 am 12:12 AM

ChooSeCharforfixed-LengthData, varcharforvariable-LengthData, undTextForLargetEXTFields.1) Charisefficiefforconsistent-LengthDatalikeCodes.2) varcharSefficienpyficyFoximent-Länge-Länge.3) VarcharSuitsVariable-Lengthdatalikenamen, BalancingFlexibilityPerance.3) textissideale

MySQL: String -Datentypen und Indizierung: Best PracticesMySQL: String -Datentypen und Indizierung: Best PracticesMay 12, 2025 am 12:11 AM

Best Practices für die Handhabung von String -Datentypen und -indizes in MySQL gehören: 1) Auswählen des entsprechenden Zeichenfolge -Typs, z. B. Zeichen für feste Länge, Varchar für variable Länge und Text für großen Text; 2) bei der Indexierung vorsichtig sein, über die Indexierung vermeiden und Indizes für gemeinsame Abfragen erstellen; 3) Verwenden Sie Präfixindizes und Volltextindizes, um lange String-Suchvorgänge zu optimieren. 4) Überwachen und optimieren Sie die Indizes regelmäßig, um die Indizes gering und effizient zu halten. Mit diesen Methoden können wir Lese- und Schreibleistung in Einklang bringen und die Datenbankeffizienz verbessern.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Nordhold: Fusionssystem, erklärt
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.